VEX Distance Sensor C API module

Contents

Files

file distance.h

Functions

int32_t distance_get(uint8_t port)
Get the currently measured distance from the sensor in mm.
int32_t distance_get_confidence(uint8_t port)
Get the confidence in the distance reading.
int32_t distance_get_object_size(uint8_t port)
Get the current guess at relative object size.
double distance_get_object_velocity(uint8_t port)
Get the object velocity in m/s.

Function documentation

int32_t distance_get(uint8_t port)

Get the currently measured distance from the sensor in mm.

Parameters
port The V5 Distance Sensor port number from 1-21
Returns The distance value or PROS_ERR if the operation failed, setting errno.

This function uses the following values of errno when an error state is reached: ENXIO - The given value is not within the range of V5 ports (1-21). ENODEV - The port cannot be configured as an Distance Sensor

Example

#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Value: %d mm\n", distance_get(DISTANCE_PORT));
    delay(20);
  }
}

int32_t distance_get_confidence(uint8_t port)

Get the confidence in the distance reading.

Parameters
port The V5 Distance Sensor port number from 1-21
Returns The confidence value or PROS_ERR if the operation failed, setting errno.

This is a value that has a range of 0 to 63. 63 means high confidence, lower values imply less confidence. Confidence is only available when distance is > 200mm (the value 10 is returned in this scenario).

This function uses the following values of errno when an error state is reached: ENXIO - The given value is not within the range of V5 ports (1-21). ENODEV - The port cannot be configured as an Distance Sensor

Example

#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Confidence Value: %d\n", distance_get_confidence(DISTANCE_PORT));
    delay(20);
  }
}

int32_t distance_get_object_size(uint8_t port)

Get the current guess at relative object size.

Parameters
port The V5 Distance Sensor port number from 1-21
Returns The size value or PROS_ERR if the operation failed, setting errno.

This is a value that has a range of 0 to 400. A 18" x 30" grey card will return a value of approximately 75 in typical room lighting.

This function uses the following values of errno when an error state is reached: ENXIO - The given value is not within the range of V5 ports (1-21). ENODEV - The port cannot be configured as an Distance Sensor

Example

#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Object Size: %d\n", distance_get_object_size(DISTANCE_PORT));
    delay(20);
  }
}

double distance_get_object_velocity(uint8_t port)

Get the object velocity in m/s.

Parameters
port The V5 Distance Sensor port number from 1-21
Returns The velocity value or PROS_ERR if the operation failed, setting errno.

This function uses the following values of errno when an error state is reached: ENXIO - The given value is not within the range of V5 ports (1-21). ENODEV - The port cannot be configured as an Distance Sensor

Example

#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Object Velocity: %f\n", distance_get_object_velocity(DISTANCE_PORT));
    delay(20);
  }
}