Change CopyPosition to use static flatbuffers
This also changes previous years code to use static flatbuffers when
sending position while using CopyPosition.
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I07c523a882dfd6fa7f6fb0cbc6eb807f3f04fa88
diff --git a/y2022_bot3/wpilib_interface.cc b/y2022_bot3/wpilib_interface.cc
index 4641e84..c441f6e 100644
--- a/y2022_bot3/wpilib_interface.cc
+++ b/y2022_bot3/wpilib_interface.cc
@@ -51,7 +51,7 @@
#include "frc971/wpilib/wpilib_robot_base.h"
#include "y2022_bot3/constants.h"
#include "y2022_bot3/control_loops/superstructure/superstructure_output_generated.h"
-#include "y2022_bot3/control_loops/superstructure/superstructure_position_generated.h"
+#include "y2022_bot3/control_loops/superstructure/superstructure_position_static.h"
using ::aos::monotonic_clock;
using ::y2022_bot3::constants::Values;
@@ -112,7 +112,7 @@
event_loop->MakeSender<::frc971::autonomous::AutonomousMode>(
"/autonomous")),
superstructure_position_sender_(
- event_loop->MakeSender<superstructure::Position>(
+ event_loop->MakeSender<superstructure::PositionStatic>(
"/superstructure")),
drivetrain_position_sender_(
event_loop
@@ -195,11 +195,11 @@
void RunIteration() override {
{
- auto builder = superstructure_position_sender_.MakeBuilder();
+ aos::Sender<superstructure::PositionStatic>::StaticBuilder builder =
+ superstructure_position_sender_.MakeStaticBuilder();
// Climbers
- frc971::PotAndAbsolutePositionT climber_right;
- CopyPosition(climber_encoder_right_, &climber_right,
+ CopyPosition(climber_encoder_right_, builder->add_climber_right(),
Values::kClimberEncoderCountsPerRevolution(),
(Values::kClimberEncoderRatio() *
Values::kClimberEncoderCountsPerRevolution()) /
@@ -207,8 +207,7 @@
climber_pot_translate, true,
values_->climber_right.potentiometer_offset);
- frc971::PotAndAbsolutePositionT climber_left;
- CopyPosition(climber_encoder_left_, &climber_left,
+ CopyPosition(climber_encoder_left_, builder->add_climber_left(),
Values::kClimberEncoderCountsPerRevolution(),
(Values::kClimberEncoderRatio() *
Values::kClimberEncoderCountsPerRevolution()) /
@@ -217,25 +216,12 @@
values_->climber_left.potentiometer_offset);
// Intake
- frc971::PotAndAbsolutePositionT intake;
- CopyPosition(intake_encoder_, &intake,
+ CopyPosition(intake_encoder_, builder->add_intake(),
Values::kIntakeEncoderCountsPerRevolution(),
Values::kIntakeEncoderRatio(), intake_pot_translate, true,
values_->intake.potentiometer_offset);
- flatbuffers::Offset<frc971::PotAndAbsolutePosition> intake_offset =
- frc971::PotAndAbsolutePosition::Pack(*builder.fbb(), &intake);
- flatbuffers::Offset<frc971::PotAndAbsolutePosition> climber_offset_right =
- frc971::PotAndAbsolutePosition::Pack(*builder.fbb(), &climber_right);
- flatbuffers::Offset<frc971::PotAndAbsolutePosition> climber_offset_left =
- frc971::PotAndAbsolutePosition::Pack(*builder.fbb(), &climber_left);
-
- superstructure::Position::Builder position_builder =
- builder.MakeBuilder<superstructure::Position>();
- position_builder.add_intake(intake_offset);
- position_builder.add_climber_right(climber_offset_right);
- position_builder.add_climber_left(climber_offset_left);
- builder.CheckOk(builder.Send(position_builder.Finish()));
+ builder.CheckOk(builder.Send());
}
{
@@ -318,7 +304,7 @@
std::shared_ptr<const Values> values_;
aos::Sender<frc971::autonomous::AutonomousMode> auto_mode_sender_;
- aos::Sender<superstructure::Position> superstructure_position_sender_;
+ aos::Sender<superstructure::PositionStatic> superstructure_position_sender_;
aos::Sender<frc971::control_loops::drivetrain::Position>
drivetrain_position_sender_;
::aos::Sender<::frc971::sensors::GyroReading> gyro_sender_;