After losing many rounds of auton due to not having a unified auton selector system, I took it upon myself to create an auton selector that is user-friendly.
**Introducing ACCESS_OS: a GUI operating system (OS) that runs on the V5 Controller’s screen that allows users to modify the robot’s auton + preset options. **
Disclaimer: this isn’t really an OS, but it could be, if someone modifies it
HOW IT WORKS:
- Program starts
- While not connected to the competition switch, users can use the arrow keys to modify auton row (front or back), auton color (red or blue). It also lets drivers to pick their driving mode (Tank or RC). Pressing the A button will set the configuration.
- After exiting the selection menu, users are presented with the status GUI, a page that displays useful information about the options selected and current robot status (disabled, auton mode, driver mode, etc.)
- Everything else follows the normal procedures.
WARNING: MAKE SURE YOU’RE NOT CONNECTED TO THE COMPETITION SWITCH WHEN YOU ARE TRYING TO CHANGE OPTIONS! IF THE SWITCH IS DISABLING YOUR ROBOT, YOU CAN’T MAKE ANY CHANGES!
Move the cursor with the up/down arrow buttons and change options with the left/right buttons.
Press A to comfirm and exit the configuation page.
Status GUI is just FYI, use it for brief checks on the robot’s status.
WARNING: YOU WILL NEED TO MERGE YOUR AUTONS CONTROLS INTO THE PRESET FUNCTIONS FOR ACCESS_OS TO WORK!
Create blue autons for autonFrontRow and autonBackRow. Use autonTurnTile when programming blue auton, it will automatically swap your left/right for red.
Put drive modes into tankDrive and RCDrive respectively. The driver will select the prefered mode during pre_auton.
If you want to print out some text, use GUI_printMSG() as replacement for the Controller.Screen.print() function. Currently you can only print up to 15 characters, future releases will include scrolling.
- When the competition switch changes from driver/disabled to auton, the options page might not refresh to reflect changes until the user presses A.
- There’s a delay in clearing the screen. Probably have to use built-in Screen.clearScreen() and Screen.clearLine().
- ??? (Please comment if you find some more bugs!)
- Text scrolling to pass the 15 char limit.
- Better code optimization.
- Make GUI_clearScreen and GUI_clearLine run faster.
This is my first project using C++ Pro, so comments, complaints, critiques, and commits are greatly appreciated!