Separate CANFalcon from drivetrain_can_position

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: Id72fb1e402b2fb756cd7005056c299726e1df8b4
diff --git a/frc971/control_loops/BUILD b/frc971/control_loops/BUILD
index a62b45f..3cdb6ab 100644
--- a/frc971/control_loops/BUILD
+++ b/frc971/control_loops/BUILD
@@ -199,6 +199,13 @@
     ],
 )
 
+flatbuffer_cc_library(
+    name = "can_falcon_fbs",
+    srcs = [
+        "can_falcon.fbs",
+    ],
+)
+
 cc_test(
     name = "position_sensor_sim_test",
     srcs = [
diff --git a/frc971/control_loops/can_falcon.fbs b/frc971/control_loops/can_falcon.fbs
new file mode 100644
index 0000000..2adbae0
--- /dev/null
+++ b/frc971/control_loops/can_falcon.fbs
@@ -0,0 +1,26 @@
+namespace frc971.control_loops;
+
+table CANFalcon {
+  // The CAN id of the falcon
+  id:int (id: 0);
+
+  // In Amps
+  supply_current:float (id: 1);
+
+  // In Amps
+  // Stator current where positive current means torque is applied in
+  // the motor's forward direction as determined by its Inverted setting.
+  torque_current:float (id: 2);
+
+  // In Volts
+  supply_voltage:float (id: 3);
+
+  // In degrees Celsius
+  device_temp:float (id: 4);
+
+  // In meters traveled on the drivetrain
+  position:float (id: 5);
+
+  // Nominal range is -1 to 1, but can be -2 to +2
+  duty_cycle: float (id: 6);
+}
diff --git a/frc971/control_loops/drivetrain/BUILD b/frc971/control_loops/drivetrain/BUILD
index 93b4a11..29a0e1d 100644
--- a/frc971/control_loops/drivetrain/BUILD
+++ b/frc971/control_loops/drivetrain/BUILD
@@ -11,6 +11,7 @@
     name = "drivetrain_can_position_fbs",
     srcs = ["drivetrain_can_position.fbs"],
     gen_reflections = 1,
+    deps = ["//frc971/control_loops:can_falcon_fbs"],
 )
 
 flatbuffer_cc_library(
diff --git a/frc971/control_loops/drivetrain/drivetrain_can_position.fbs b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
index a44ef50..192f23d 100644
--- a/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
+++ b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
@@ -1,30 +1,6 @@
+include "frc971/control_loops/can_falcon.fbs";
 namespace frc971.control_loops.drivetrain;
 
-table CANFalcon {
-  // The CAN id of the falcon
-  id:int (id: 0);
-
-  // In Amps
-  supply_current:float (id: 1);
-
-  // In Amps
-  // Stator current where positive current means torque is applied in
-  // the motor's forward direction as determined by its Inverted setting.
-  torque_current:float (id: 2);
-
-  // In Volts
-  supply_voltage:float (id: 3);
-
-  // In degrees Celsius
-  device_temp:float (id: 4);
-
-  // In meters traveled on the drivetrain
-  position:float (id: 5);
-
-  // Nominal range is -1 to 1, but can be -2 to +2
-  duty_cycle: float (id: 6);
-}
-
 // CAN readings from the CAN sensor reader loop
 table CANPosition {
   falcons: [CANFalcon] (id: 0);
diff --git a/y2023/wpilib_interface.cc b/y2023/wpilib_interface.cc
index fc6a4ae..d043e6f 100644
--- a/y2023/wpilib_interface.cc
+++ b/y2023/wpilib_interface.cc
@@ -224,9 +224,9 @@
 
   ctre::phoenixpro::hardware::TalonFX *talon() { return &talon_; }
 
-  flatbuffers::Offset<frc971::control_loops::drivetrain::CANFalcon>
-  WritePosition(flatbuffers::FlatBufferBuilder *fbb) {
-    frc971::control_loops::drivetrain::CANFalcon::Builder builder(*fbb);
+  flatbuffers::Offset<frc971::control_loops::CANFalcon> WritePosition(
+      flatbuffers::FlatBufferBuilder *fbb) {
+    frc971::control_loops::CANFalcon::Builder builder(*fbb);
     builder.add_id(device_id_);
     builder.add_device_temp(device_temp());
     builder.add_supply_voltage(supply_voltage());
@@ -342,9 +342,8 @@
       falcon->RefreshNontimesyncedSignals();
     }
 
-    aos::SizedArray<
-        flatbuffers::Offset<frc971::control_loops::drivetrain::CANFalcon>,
-        kCANFalconCount>
+    aos::SizedArray<flatbuffers::Offset<frc971::control_loops::CANFalcon>,
+                    kCANFalconCount>
         falcons;
 
     for (auto falcon : {right_front_, right_back_, right_under_, left_front_,
@@ -354,8 +353,8 @@
 
     auto falcons_list =
         builder.fbb()
-            ->CreateVector<flatbuffers::Offset<
-                frc971::control_loops::drivetrain::CANFalcon>>(falcons);
+            ->CreateVector<
+                flatbuffers::Offset<frc971::control_loops::CANFalcon>>(falcons);
 
     frc971::control_loops::drivetrain::CANPosition::Builder
         can_position_builder =