VEX Distance Sensor C API

Functions

distance_get

Get the currently measured distance from the sensor in mm

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.

Analogous to pros::Distance::get.

int32_t distance_get (uint8_t port)
1
2
3
4
5
6
7
8
#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Value: %d mm\n", distance_get(DISTANCE_PORT));
    delay(20);
  }
}
Parameters  
port The V5 port number from (1-21)

Returns: The mm value or PROS_ERR if the operation failed, setting errno.


distance_get_confidence

Get the confidence in the distance reading

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.

Analogous to pros::Distance::get_confidence.

int32_t distance_get_confidence (uint8_t port)
1
2
3
4
5
6
7
8
#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Confidence Value: %d\n", distance_get_confidence(DISTANCE_PORT));
    delay(20);
  }
}
Parameters  
port The V5 port number from (1-21)

Returns: The confidence value or PROS_ERR if the operation failed, setting errno.


distance_get_object_size

Get the current guess at relative object size

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.

Analogous to pros::Distance::get_object_size.

int32_t distance_get_object_size (uint8_t port)
1
2
3
4
5
6
7
8
#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Object Size: %d\n", distance_get_object_size(DISTANCE_PORT));
    delay(20);
  }
}
Parameters  
port The V5 port number from (1-21)

Returns: The size value or PROS_ERR if the operation failed, setting errno.


distance_get_object_velocity

Get the object velocity in m/s

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.

Analogous to pros::Distance::get_object_size.

int32_t distance_get_object_velocity (uint8_t port)
1
2
3
4
5
6
7
8
#define DISTANCE_PORT 1

void opcontrol() {
  while (true) {
    printf("Distance Object Velocity: %d m/s\n", distance_get_object_velocity(DISTANCE_PORT));
    delay(20);
  }
}
Parameters  
port The V5 port number from (1-21)

Returns: The velocity value or PROS_ERR if the operation failed, setting errno.