Add end effector to superstructure

Add superstructure state machine for the end
effector, update flatbuffers to match, and send to
status.

Signed-off-by: Nathan Leong <nathanrleong@gmail.com>
Change-Id: I7f0c60f05a147ba6b3aec1e3488855c8e674c670
diff --git a/y2023/control_loops/superstructure/superstructure_status.fbs b/y2023/control_loops/superstructure/superstructure_status.fbs
index db86687..2555134 100644
--- a/y2023/control_loops/superstructure/superstructure_status.fbs
+++ b/y2023/control_loops/superstructure/superstructure_status.fbs
@@ -57,6 +57,19 @@
   failed_solutions:uint32 (id: 17);
 }
 
+// State of the superstructure state machine
+enum EndEffectorState : ubyte {
+  // Not doing anything
+  IDLE = 0,
+  // Intaking the game object into the end effector
+  INTAKING = 1,
+  // The game object is loaded into the end effector
+  LOADED = 2,
+  // Waiting for the arm to be at shooting goal and then telling the
+  // end effector to spit
+  SPITTING = 3,
+}
+
 table Status {
   // All subsystems know their location.
   zeroed:bool (id: 0);
@@ -67,6 +80,8 @@
   arm:ArmStatus (id: 2);
 
   wrist:frc971.control_loops.AbsoluteEncoderProfiledJointStatus (id: 3);
+
+  end_effector_state:EndEffectorState (id: 4);
 }
 
 root_type Status;