The CCRE

(The Common Chicken Runtime Engine)

Team 1540, the Flaming Chickens, is proud to introduce the CCRE - the Common Chicken Runtime Engine! The CCRE, a programming framework, was created to make it easy to write maintainable code for an FRC robot -- after too many years of badly structured code, we wanted better tools than we had access to. Created by Cel Skeggs, Team 1540's Software Manager, the CCRE is versatile enough for use on any competition robot. 

Major Distinguishing Features

- Reactive code, not iterative code: write better code with less effort.
- A software emulator that allows you to test code without a robot.
- An integrated publish-subscribe networking system and touchscreen control panel.
- A fully rewritten code download tool: deploy code in seven seconds.
- Control bindings and Tunable variables: configure the robot without depending on programmers.
- Data recording systems to help you understand your robot's behavior in the field.
- Imperative autonomous system to streamline autonomous modes.
- Behavior arbitration: intelligently select the behavior of your robot in the face of ambiguous instructions.
- We take reliability seriously.
- We take backwards compatibility seriously.
- We take user experience seriously.
- We take proper API design seriously.
- Built with care: you deserve a framework done right, not fast.

CCRE Statistics and Information

With over sixty thousand lines of code to implement nearly eight hundred available API methods and multiple developer and user tools, written and proven over the last nearly four years, the CCRE is capable of supporting whatever you can throw at it. With several dozen pull requests and over half a dozen contributors, who have contributed up over thirteen hundred git commits to produce nearly thirty releases, you can be sure that this project is going strong and will continue to exist in the coming years.

Code Sample

Here is the code required to pilot a robot with one-joystick arcade drive:

Drive.arcade(FRC.joystick1,
             FRC.talon(1, FRC.MOTOR_FORWARD),
             FRC.talon(2, FRC.MOTOR_REVERSE));

Please visit the CCRE on GitHub to view the source code, read the documentation, and receive information on any questions that you have.