Recognizing whether or not Competition Control is plugged in
The question was recently asked on the VEX forums
if there was a way to use ROBOTC to check if a VEXNet-connected Joystick Controller was plugged into a Competition Switch or not. We would like to share the answer here for future reference and in case anyone had any similar questions:Quote:
You can absolutely use the vrCompetitionSwitch value to determine whether a switch is connected or not. To do so, you would use the 'nVexRCReceiveState' to evaluate the bitmasked value being sent from the VEXNet Joystick. For example:
Since you are evaluating the individual bit's value (and not the whole bit mask), you will need to use the single ampersand (bitwise AND operation) instead of the double ampersand (logical AND operation) that is normally used in conditional statements.
There are also other values that you can check for using the 'nVexRCReceiveState' command, such as if a main/partner joystick is connected, if VEXNet is connected, etc:vrNoXmiters vrXmit1 vrXmit2 vrCompetitionSwitch vrGameController vrAutonomousMode vrDisabled
As another example; suppose you wanted to check and display which joysticks are connected (main and partner):
This code will first check for the main joystick and display if it is connected on the first line of the LCD screen, then check for a partner joystick and display if it is connected on the second line of the LCD screen.
Let us know if you have any other questions on this, we are more than happy to help!
Check out our Blog
! And our Facebook page
Need help? Take a look at our updated help documentation
and the ROBOTC Forums.