Niko Sohmers | 3860f8a | 2024-01-12 21:05:19 -0800 | [diff] [blame] | 1 | include "frc971/control_loops/profiled_subsystem.fbs"; |
Nathan Leong | dd72800 | 2024-02-03 15:26:53 -0800 | [diff] [blame] | 2 | include "frc971/control_loops/catapult/catapult_goal.fbs"; |
Niko Sohmers | 3860f8a | 2024-01-12 21:05:19 -0800 | [diff] [blame] | 3 | |
| 4 | namespace y2024.control_loops.superstructure; |
| 5 | |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 6 | // Represents goal for the intake pivot and rollers |
| 7 | // INTAKE will extend the pivot and turn on the rollers to intake the note. |
| 8 | // SPIT will extend the pivot and turn on the rollers (in reverse) to spit out the note. |
| 9 | enum IntakeGoal : ubyte { |
Niko Sohmers | 58e64c8 | 2024-01-14 12:49:54 -0800 | [diff] [blame] | 10 | NONE = 0, |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 11 | INTAKE = 1, |
| 12 | SPIT = 2, |
Niko Sohmers | 78f7135 | 2024-02-02 16:47:40 -0800 | [diff] [blame] | 13 | } |
| 14 | |
Filip Kujawa | 5750715 | 2024-01-31 20:09:25 -0800 | [diff] [blame] | 15 | // Represents goal for climber |
| 16 | // FULL_EXTEND is for fully extending the climber |
Filip Kujawa | 5750715 | 2024-01-31 20:09:25 -0800 | [diff] [blame] | 17 | // RETRACT is for retracting the climber |
| 18 | enum ClimberGoal : ubyte { |
| 19 | FULL_EXTEND = 0, |
Filip Kujawa | a7c8b41 | 2024-02-24 18:29:29 -0800 | [diff] [blame^] | 20 | RETRACT = 1, |
Filip Kujawa | 5750715 | 2024-01-31 20:09:25 -0800 | [diff] [blame] | 21 | } |
| 22 | |
Maxwell Henderson | ed97029 | 2024-02-02 20:08:08 -0800 | [diff] [blame] | 23 | table ShooterGoal { |
| 24 | catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 0); |
Filip Kujawa | a7c8b41 | 2024-02-24 18:29:29 -0800 | [diff] [blame^] | 25 | |
| 26 | // If true we ignore the other provided positions |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 27 | auto_aim: bool (id: 1); |
Maxwell Henderson | ed97029 | 2024-02-02 20:08:08 -0800 | [diff] [blame] | 28 | |
| 29 | // Position for the turret when we aren't auto aiming |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 30 | turret_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 2); |
Maxwell Henderson | ed97029 | 2024-02-02 20:08:08 -0800 | [diff] [blame] | 31 | |
| 32 | // Position for the altitude when we aren't auto aiming |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 33 | altitude_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 3); |
Niko Sohmers | c4d2c50 | 2024-02-19 19:35:35 -0800 | [diff] [blame] | 34 | |
Filip Kujawa | a7c8b41 | 2024-02-24 18:29:29 -0800 | [diff] [blame^] | 35 | // If true, we started with the ball loaded and should proceed to that state. |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 36 | preloaded:bool = false (id: 4); |
Maxwell Henderson | ed97029 | 2024-02-02 20:08:08 -0800 | [diff] [blame] | 37 | } |
| 38 | |
Filip Kujawa | a7c8b41 | 2024-02-24 18:29:29 -0800 | [diff] [blame^] | 39 | // Represents goal for the note movement through the robot |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 40 | // to various scoring positions |
| 41 | // NONE represents no goal for the note |
| 42 | // AMP represents the goal to move the note and the extend to the AMP scoring position |
| 43 | // TRAP represents the goal to move the note and the extend to the TRAP scoring position |
| 44 | // CATAPULT represents the goal to load the note in the catapult. |
| 45 | // It will complete the catapult goal before accepting new goals. |
| 46 | enum NoteGoal : ubyte { |
| 47 | NONE = 0, |
Filip Kujawa | 102a9b2 | 2024-02-18 09:40:23 -0800 | [diff] [blame] | 48 | AMP = 1, |
| 49 | TRAP = 2, |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 50 | CATAPULT = 3, |
Filip Kujawa | 102a9b2 | 2024-02-18 09:40:23 -0800 | [diff] [blame] | 51 | } |
| 52 | |
Filip Kujawa | 102a9b2 | 2024-02-18 09:40:23 -0800 | [diff] [blame] | 53 | |
Niko Sohmers | 58e64c8 | 2024-01-14 12:49:54 -0800 | [diff] [blame] | 54 | table Goal { |
Filip Kujawa | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 55 | intake_goal:IntakeGoal = NONE (id: 0); |
Filip Kujawa | a7c8b41 | 2024-02-24 18:29:29 -0800 | [diff] [blame^] | 56 | climber_goal:ClimberGoal (id: 1); |
| 57 | shooter_goal:ShooterGoal (id: 2); |
| 58 | note_goal:NoteGoal (id: 3); |
| 59 | fire: bool (id: 4); |
Niko Sohmers | 58e64c8 | 2024-01-14 12:49:54 -0800 | [diff] [blame] | 60 | } |
Niko Sohmers | 3860f8a | 2024-01-12 21:05:19 -0800 | [diff] [blame] | 61 | root_type Goal; |