| After creating a new autonomous template, you will see segments of code that you may be unfamiliar with. The first three #pragma statements are automatically generated by ROBOTC to set up a basic TETRIX bot and will more than likely be changed as ROBOTC is configured for your specific robot (through the Motors and Sensors Setup page).
| The next line of code is what is called an include directive. These directives tell ROBOTC to look at other files (in this case, the file named "JoystickDriver.c") for functions and commands. This is useful if certain segments of code are used in multiple programs; instead of having to copy the code into every program that would use it, said programs only have to have to 'include' the include file. For instance, the JoystickDriver.c file has all of the commands and functions needed to use the Logitech USB Joystick Controller with ROBOTC. By right-clicking on the 'JoystickDriver.c' line of code in the Autonomous Template and selecting "Open include file 'JoystickDriver.c', we can see all the code that is in the include file. Again, without the include directive this code would be needed in every program that needed to use a Joystick Controller.|
| After the include directive there is a function called 'initializeRobot' of the void type. This function is used to 'initialize' the robot before the autonomous period. It should be used to perform pre-autonomous actions such as setting servo positions and calibrating sensors; normally, it should not be used to move the robot, as most competitions require the robots to be still before the start of the match.
| The next segment of code is task main. It first calls the 'initializeRobot' function and (when program flow is returned to it from the function) it has a 'waitForStart();' command. This command tells the robot to wait for the start signal from the FTC Field Control System (FCS) before it runs the autonomous code. If this command was not in the code, the robot would have no way of knowing when to start running its autonomous code. When the autonomous period ends the FCS will end the program whether it has completed its code or not. |
//Autonomous code goes here.