Both VEXCode and PROS provide methods for switching between “modes” of detection with the V5 optical sensor. Generally you’re supposed to “enable gesture detection” through either VEXCode’s vex::optical
constructor or pros’ pros::Optical::enable_gesture
/pros::optical::disable_gesture
if you want to use the sensor’s gesture detection features.
The PROS docs claim that methods for getting color-related data (such as ) off the sensor are “not available” when gesture detection is running (example below from pros::optical::get_proximity
):
Strangely in my testing this appears to not be true. The sensor is capable of getting RGBC data during gesture detection mode, as well as detecting gesture types at once:
Code used to generate this data:
This generally leaves me with two questions:
- Is there any downside to getting RGBC data from the sensor when in gesture detection mode?
- Is there any reason why the sensor shouldn’t always be in gesture detection mode, considering all data seems to be reported correctly?
The PROS C API is essentially just wrapping the V5 SDK functions provided by libv5rt, so it’s unclear what’s actually going on here to me, since this behavior seems to be incorrectly documented.