| include "frc971/control_loops/control_loops.fbs"; |
| include "frc971/control_loops/profiled_subsystem.fbs"; |
| |
| namespace y2024.control_loops.superstructure; |
| |
| // Contains if intake is intaking |
| enum IntakeRollerStatus : ubyte { |
| NONE = 0, |
| SPITTING = 1, |
| INTAKING = 2, |
| } |
| |
| enum CatapultStatus: ubyte { |
| // Means we are waiting for a game piece |
| IDLE = 0, |
| // Means we have a game piece |
| LOADED = 1, |
| // Means we are firing a game piece |
| FIRING = 2, |
| } |
| |
| table ShooterStatus { |
| // Estimated angle and angular velocitiy of the turret. |
| turret:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 0); |
| |
| // Estimated angle and angular velocitiy of the catapult. |
| catapult:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 1); |
| |
| // Estimated angle and angular velocitiy of the altitude. |
| altitude:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 2); |
| |
| catapult_state: CatapultStatus (id: 3); |
| } |
| |
| // Contains status of transfer rollers |
| enum TransferRollerStatus : ubyte { |
| NONE = 0, |
| TRANSFERING_IN = 1, |
| TRANSFERING_OUT = 2, |
| } |
| |
| // Contains status of extend rollers |
| // HAS_GAME_PIECE means we have a game piece |
| // EMPTY means we don't have a game piece |
| enum ExtendRollerStatus: ubyte { |
| HAS_GAME_PIECE = 0, |
| EMPTY = 1 |
| } |
| |
| table Status { |
| // All subsystems know their location. |
| zeroed:bool (id: 0); |
| |
| // If true, we have aborted. This is the or of all subsystem estops. |
| estopped:bool (id: 1); |
| |
| // Status of the rollers |
| intake_roller:IntakeRollerStatus (id: 2); |
| |
| // Estimated angle and angular velocitiy of the intake. |
| intake_pivot:frc971.control_loops.AbsoluteEncoderProfiledJointStatus (id: 3); |
| |
| // Status of transfer rollers |
| transfer_roller:TransferRollerStatus (id: 4); |
| |
| // Estimated angle and angular velocitiy of the climber. |
| climber:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 5); |
| |
| // Status of the subsytems involved in the shooter |
| shooter:ShooterStatus (id: 6); |
| |
| // Estimated angle and angular velocitiy of the extend. |
| extend:frc971.control_loops.PotAndAbsoluteEncoderProfiledJointStatus (id: 7); |
| |
| // State of the extender rollers |
| extend_roller:ExtendRollerStatus (id: 8); |
| } |
| |
| root_type Status; |