Make talonfx use static flatbuffer api

Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I3ebc2e27c4bf3f5f715ce02fd6d80de63240c8e5
diff --git a/frc971/wpilib/talonfx.cc b/frc971/wpilib/talonfx.cc
index dd30f9d..5e77618 100644
--- a/frc971/wpilib/talonfx.cc
+++ b/frc971/wpilib/talonfx.cc
@@ -113,26 +113,13 @@
 
   return status;
 }
-
-void TalonFX::SerializePosition(flatbuffers::FlatBufferBuilder *fbb,
+void TalonFX::SerializePosition(control_loops::CANTalonFXStatic *can_talonfx,
                                 double gear_ratio) {
-  control_loops::CANTalonFX::Builder builder(*fbb);
-  builder.add_id(device_id_);
-  builder.add_device_temp(device_temp());
-  builder.add_supply_voltage(supply_voltage());
-  builder.add_supply_current(supply_current());
-  builder.add_torque_current(torque_current());
-  builder.add_duty_cycle(duty_cycle());
-  builder.add_position(position() * gear_ratio);
-
-  last_position_offset_ = builder.Finish();
-}
-
-std::optional<flatbuffers::Offset<control_loops::CANTalonFX>>
-TalonFX::TakeOffset() {
-  auto option_offset = last_position_offset_;
-
-  last_position_offset_.reset();
-
-  return option_offset;
+  can_talonfx->set_id(device_id_);
+  can_talonfx->set_device_temp(device_temp());
+  can_talonfx->set_supply_voltage(supply_voltage());
+  can_talonfx->set_supply_current(supply_current());
+  can_talonfx->set_torque_current(torque_current());
+  can_talonfx->set_duty_cycle(duty_cycle());
+  can_talonfx->set_position(position() * gear_ratio);
 }
diff --git a/frc971/wpilib/talonfx.h b/frc971/wpilib/talonfx.h
index 603f4a2..c25fa81 100644
--- a/frc971/wpilib/talonfx.h
+++ b/frc971/wpilib/talonfx.h
@@ -11,7 +11,7 @@
 #include "aos/commonmath.h"
 #include "aos/init.h"
 #include "aos/logging/logging.h"
-#include "frc971/control_loops/drivetrain/drivetrain_can_position_generated.h"
+#include "frc971/control_loops/can_talonfx_static.h"
 
 namespace control_loops = ::frc971::control_loops;
 
@@ -48,11 +48,9 @@
   ctre::phoenix6::hardware::TalonFX *talon() { return &talon_; }
 
   // The position of the TalonFX output shaft is multiplied by gear_ratio
-  void SerializePosition(flatbuffers::FlatBufferBuilder *fbb,
+  void SerializePosition(control_loops::CANTalonFXStatic *can_falcon,
                          double gear_ratio);
 
-  std::optional<flatbuffers::Offset<control_loops::CANTalonFX>> TakeOffset();
-
   int device_id() const { return device_id_; }
   float device_temp() const { return device_temp_.GetValue().value(); }
   float supply_voltage() const { return supply_voltage_.GetValue().value(); }
@@ -101,9 +99,6 @@
 
   double stator_current_limit_;
   double supply_current_limit_;
-
-  std::optional<flatbuffers::Offset<control_loops::CANTalonFX>>
-      last_position_offset_;
 };
 }  // namespace wpilib
 }  // namespace frc971