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 =