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 |
| 17 | // HALF_EXTEND is for partially extending the climber |
| 18 | // RETRACT is for retracting the climber |
| 19 | enum ClimberGoal : ubyte { |
| 20 | FULL_EXTEND = 0, |
| 21 | HALF_EXTEND = 1, |
| 22 | RETRACT = 2, |
| 23 | } |
| 24 | |
Maxwell Henderson | ed97029 | 2024-02-02 20:08:08 -0800 | [diff] [blame] | 25 | table ShooterGoal { |
| 26 | catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 0); |
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 | |
| 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 | 7a79960 | 2024-02-23 12:27:47 -0800 | [diff] [blame] | 39 | // Represents goal for the note movement through the robot |
| 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); |
| 56 | catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 1); |
| 57 | climber_goal:ClimberGoal (id: 2); |
| 58 | shooter_goal:ShooterGoal (id: 3); |
| 59 | note_goal:NoteGoal (id: 4); |
| 60 | fire: bool (id: 5); |
Niko Sohmers | 58e64c8 | 2024-01-14 12:49:54 -0800 | [diff] [blame] | 61 | } |
Niko Sohmers | 3860f8a | 2024-01-12 21:05:19 -0800 | [diff] [blame] | 62 | root_type Goal; |