We use Blocks, self-hosted on the robot controller. We have not encountered any reason to switch to Java and many reasons to remain with Blocks.
There are two programs that serve the needs of the robot during a match:
- An autonomous program for use in the first 30 seconds. We use a traditional state machine approach in which a long cascade of if-then-else statements test the value of a State variable that determines what section of code is run at a given time. Each year we must create multiple programs to fit different sides of the field as well as the autonomous program of our alliance partner.
- A TeleOp program that allows the driver to operate the various functions using a gamepad. This year, we choose to have two drivers because of the many tasks that need to be performed at once. These two drivers must work well as a team and communicate well to ensure efficient and effective gameplay.