Give DrivetrainCANPosition a static length
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: Ia18a4d37f8f157f818bb129ec6a8ef91b4e45291
diff --git a/frc971/control_loops/drivetrain/drivetrain_can_position.fbs b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
index b451ea9..29c0b85 100644
--- a/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
+++ b/frc971/control_loops/drivetrain/drivetrain_can_position.fbs
@@ -1,9 +1,10 @@
include "frc971/control_loops/can_talonfx.fbs";
namespace frc971.control_loops.drivetrain;
+attribute "static_length";
// CAN readings from the CAN sensor reader loop
table CANPosition {
- talonfxs: [CANTalonFX] (id: 0);
+ talonfxs: [CANTalonFX] (id: 0, static_length: 6);
// The timestamp of the measurement on the canivore clock in nanoseconds
// This will have less jitter than the
diff --git a/y2024/wpilib_interface.cc b/y2024/wpilib_interface.cc
index b708266..b1675db 100644
--- a/y2024/wpilib_interface.cc
+++ b/y2024/wpilib_interface.cc
@@ -375,6 +375,8 @@
auto drivetrain_falcon_vector =
drivetrain_can_builder->add_talonfxs();
+ CHECK(drivetrain_falcon_vector->reserve(drivetrain_talonfxs.size()));
+
for (auto talonfx : drivetrain_talonfxs) {
talonfx->SerializePosition(
drivetrain_falcon_vector->emplace_back(),
diff --git a/y2024_defense/wpilib_interface.cc b/y2024_defense/wpilib_interface.cc
index 1584dbd..6dec3c9 100644
--- a/y2024_defense/wpilib_interface.cc
+++ b/y2024_defense/wpilib_interface.cc
@@ -324,6 +324,8 @@
auto falcon_vector = builder->add_talonfxs();
+ CHECK(falcon_vector->reserve(falcons.size()));
+
for (auto falcon : falcons) {
falcon->SerializePosition(
falcon_vector->emplace_back(),