Skip to content
Colby Skeggs edited this page Nov 11, 2015 · 17 revisions

v

v

v


WARNING: THIS DOCUMENTATION IS FOR CCRE v2, NOT CCRE v3!

See the readme on the main page for the correct documentation.


^

^

^

^

^

What is the Common Chicken Runtime Engine?

Developed by FRC Team 1540, the Flaming Chickens, the Common Chicken Runtime Engine (the CCRE) provides a powerful yet easy-to-use software framework for use by FRC teams during competition season and beyond. It has a number of major features:

  • Separation of concerns: separation of concerns is where all code for specific functionality is in exactly one place, and is regarded as good for maintainability. The CCRE helps foster this using its higher-level abstraction and composition techniques.
  • Emulation: the CCRE has a fully functional emulator built right in! This means that robot code can be tested before deployment - very useful during build season when the robot that the code’s written for doesn’t exist for a few weeks.
  • Networked operator interface: the CCRE features a match-ready frontend known as the Poultry Inspector. It’s designed to replace (when used on a touch screen) or augment the physical control panels used by many teams with customizable information displays and controls.
  • Code portability: code written with the CCRE can run on both cRIOs and roboRIOs, from the exact same project. This minimizes the time needed for teams to get up to speed on roboRIO software. (The CCRE runs in Eclipse, which is the standard development environment next year.)
  • Support: the CCRE is completely open-source, and the primary developer can be directly contacted at skeggsc [at] catlin [dot] edu.
  • Prebuilt modules: the CCRE includes more complex self-contained modules of code that are useful for most robots, such as the Logging Framework, the Networking Framework, the Autonomous Framework, etc. This means that you get lots of helpful functionality with minimal work on your part.

The current maintainer of the CCRE can be contacted at skeggsc (at) catlin (dot) edu.

Resources

  • We have a forum thread on Chief Delphi!

  • This repository used to be hosted at BitBucket.

  • We have a Trello board! Currently, we're mostly working on getting it working for the 2015 RoboRIO-based control system (we're a Beta team). You can report bugs here, if you want.

  • You can browse the Javadoc online!

Updating the CCRE

If you've already installed the CCRE, view [the update guide](Update Guide).

Getting Started / Beginner-level Tutorials

To get started with the CCRE, follow along with the following tutorials.

Note that you don't need a real robot to try these - everything can be run in the CCRE's emulator!

  1. [Setting up the CCRE]([Tutorial 1.1] Setting up the CCRE)
  2. [Your first Igneous project]([Tutorial 1.2] Your first Igneous project)
  3. [Making your robot drive]([Tutorial 1.3] Making your robot drive)
  4. [Making your robot shift and use other pneumatics]([Tutorial 1.4] Making your robot shift and use other pneumatics)
  5. [Organizing your code]([Tutorial 1.5] Organizing your code)
  6. [Basic Autonomous]([Tutorial 1.6] Basic Autonomous)

Intermediate-level Tutorials

You'll want to also go through these if you want to write good code using the CCRE.

  1. [The Logging Framework]([Tutorial 2.1] The Logging Framework)
  2. [Control Structures - ExpirationTimer, PauseTimer, MultipleSourceBooleanController, Ticker]([Tutorial 2.2] Control Structures - ExpirationTimer, PauseTimer, MultipleSourceBooleanController, Ticker)
  3. [The CCRE Collections Framework]([Tutorial 2.3] The CCRE Collections Framework)
  4. [The Cluck Communication System - Basic Usage]([Tutorial 2.4] The Cluck Communication System - Basic Usage)
  5. [Using the Poultry Inspector]([Tutorial 2.5] Using the Poultry Inspector)
  6. [Constant Tuning]([Tutorial 2.6] Constant Tuning)
  7. More coming soon!
  8. Advanced Autonomous
  9. Channel Filters
  10. Miscellaneous Utilities

Advanced Tutorials

These are more rarely used, but still good to understand.

  1. [The Concurrency Framework]([Tutorial 3.1] The Concurrency Framework)
  2. [The Networking Framework]([Tutorial 3.2] The Networking Framework)
  3. [The Storage Framework]([Tutorial 3.3] The Storage Framework)
  4. More coming soon!
  5. The Cluck Communication System - Advanced Usage
  6. The Remote Procedure Call Framework
  7. The Phidget I/O Board

CCRE License

The CCRE is licensed as follows:

Copyright 2013-2015 Colby Skeggs

This file is part of the CCRE, the Common Chicken Runtime Engine.

The CCRE is free software: you can redistribute it and/or modify it under the
terms of the GNU Lesser General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.

The CCRE is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
details.

You should have received a copy of the GNU Lesser General Public License
along with the CCRE.  If not, see <http://www.gnu.org/licenses/>.

The documentation is licensed as follows:

Copyright 2013-2015 Colby Skeggs

Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.3 or any later version published by the Free Software
Foundation; with the Invariant Sections being just "CCRE License",
with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the section
entitled "GNU Free Documentation License".

The CCRE was originally created by Colby Skeggs while a member of Team 1540.