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.