Data Classes - MontclairRobotics/cyborg GitHub Wiki
CBRequestData, CBControlData
In cyborg the crossing points at the borders between the layers are some specific data classes. The link between the mapper classes in the interface layer, and the rules and behaviors of the logic layer is the CBRequestData class. Between the logic layer and the controllers of the interface layer is the CBControlData class. In both cases, it is expected that you will extend these classes to add custom data to be passed.
CBDriveRequestData, CBDriveControlData
Each of these classes contains a drivetrain specific property CBDriveRequestData and CBDriveControlData respectively. This is done to facilitate the use of pre-built data classes that may need no extension in order to use pre-built drive behaviors and controllers. If the standard classes don't serve your needs, simply override these classes and make your own.
CBLogicData
Additionally, there is another class that is meant as a logic level scratch pad. CBLogicData exists primarily for organizational purposes to keep clarity between inputs (CBRequestData), output (CBControlData), and working data (CBLogicData).
CBDifferentialDriveControlData, CBStdDriveRequestData, CBStdDriveControlData, CBTankDriveRequestData
These are pre-built data classes which can be used as is or extended to implement whatever needs you have.