blob: abfd405d7647733fa7f4eac52903679bf35b639e [file] [log] [blame]
Niko Sohmers3860f8a2024-01-12 21:05:19 -08001include "frc971/control_loops/profiled_subsystem.fbs";
Nathan Leongdd728002024-02-03 15:26:53 -08002include "frc971/control_loops/catapult/catapult_goal.fbs";
Niko Sohmers3860f8a2024-01-12 21:05:19 -08003
4namespace y2024.control_loops.superstructure;
5
Filip Kujawa7a799602024-02-23 12:27:47 -08006// 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.
9enum IntakeGoal : ubyte {
Niko Sohmers58e64c82024-01-14 12:49:54 -080010 NONE = 0,
Filip Kujawa7a799602024-02-23 12:27:47 -080011 INTAKE = 1,
12 SPIT = 2,
Niko Sohmers78f71352024-02-02 16:47:40 -080013}
14
James Kuszmauldf3a3cb2024-03-15 22:03:37 -070015enum IntakePivotGoal : ubyte {
16 UP = 0,
17 DOWN = 1,
18}
19
Filip Kujawa57507152024-01-31 20:09:25 -080020// Represents goal for climber
21// FULL_EXTEND is for fully extending the climber
Filip Kujawa57507152024-01-31 20:09:25 -080022// RETRACT is for retracting the climber
23enum ClimberGoal : ubyte {
24 FULL_EXTEND = 0,
Filip Kujawaa7c8b412024-02-24 18:29:29 -080025 RETRACT = 1,
Maxwell Henderson7db29782024-02-24 20:10:26 -080026 STOWED = 2,
Filip Kujawa57507152024-01-31 20:09:25 -080027}
28
Maxwell Hendersoned970292024-02-02 20:08:08 -080029table ShooterGoal {
30 catapult_goal:frc971.control_loops.catapult.CatapultGoal (id: 0);
Filip Kujawaa7c8b412024-02-24 18:29:29 -080031
32 // If true we ignore the other provided positions
Filip Kujawa7a799602024-02-23 12:27:47 -080033 auto_aim: bool (id: 1);
Maxwell Hendersoned970292024-02-02 20:08:08 -080034
35 // Position for the turret when we aren't auto aiming
Filip Kujawa7a799602024-02-23 12:27:47 -080036 turret_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 2);
Maxwell Hendersoned970292024-02-02 20:08:08 -080037
38 // Position for the altitude when we aren't auto aiming
Filip Kujawa7a799602024-02-23 12:27:47 -080039 altitude_position: frc971.control_loops.StaticZeroingSingleDOFProfiledSubsystemGoal (id: 3);
Niko Sohmersc4d2c502024-02-19 19:35:35 -080040
Filip Kujawaa7c8b412024-02-24 18:29:29 -080041 // If true, we started with the ball loaded and should proceed to that state.
Filip Kujawa7a799602024-02-23 12:27:47 -080042 preloaded:bool = false (id: 4);
Maxwell Hendersoned970292024-02-02 20:08:08 -080043}
44
Filip Kujawaa7c8b412024-02-24 18:29:29 -080045// Represents goal for the note movement through the robot
Filip Kujawa7a799602024-02-23 12:27:47 -080046// to various scoring positions
47// NONE represents no goal for the note
48// AMP represents the goal to move the note and the extend to the AMP scoring position
49// TRAP represents the goal to move the note and the extend to the TRAP scoring position
50// CATAPULT represents the goal to load the note in the catapult.
51// It will complete the catapult goal before accepting new goals.
52enum NoteGoal : ubyte {
53 NONE = 0,
Filip Kujawa102a9b22024-02-18 09:40:23 -080054 AMP = 1,
55 TRAP = 2,
Filip Kujawa7a799602024-02-23 12:27:47 -080056 CATAPULT = 3,
Filip Kujawa102a9b22024-02-18 09:40:23 -080057}
58
Filip Kujawa102a9b22024-02-18 09:40:23 -080059
Niko Sohmers58e64c82024-01-14 12:49:54 -080060table Goal {
Filip Kujawa7a799602024-02-23 12:27:47 -080061 intake_goal:IntakeGoal = NONE (id: 0);
James Kuszmauldf3a3cb2024-03-15 22:03:37 -070062 intake_pivot:IntakePivotGoal = UP (id: 5);
Filip Kujawaa7c8b412024-02-24 18:29:29 -080063 climber_goal:ClimberGoal (id: 1);
64 shooter_goal:ShooterGoal (id: 2);
65 note_goal:NoteGoal (id: 3);
66 fire: bool (id: 4);
James Kuszmauldf3a3cb2024-03-15 22:03:37 -070067
68 // Tells the climber to go absurdly slow on FULL_EXTEND
69 slow_climber: bool = false (id: 6);
Maxwell Henderson45878502024-03-15 19:35:25 -070070
71 // Spit on the extend motors
72 spit_extend: bool = false (id: 7);
Niko Sohmers58e64c82024-01-14 12:49:54 -080073}
Niko Sohmers3860f8a2024-01-12 21:05:19 -080074root_type Goal;