Support static flatbuffers in ContinuousAbsoluteEncoderZeroingEstimator
Change-Id: Ic4dac2ff1084e987b2b20286018821c02967975b
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/frc971/zeroing/continuous_absolute_encoder.cc b/frc971/zeroing/continuous_absolute_encoder.cc
index 3381833..733d46d 100644
--- a/frc971/zeroing/continuous_absolute_encoder.cc
+++ b/frc971/zeroing/continuous_absolute_encoder.cc
@@ -165,4 +165,14 @@
return builder.Finish();
}
+void ContinuousAbsoluteEncoderZeroingEstimator::GetEstimatorState(
+ AbsoluteEncoderEstimatorStateStatic *fbs) const {
+ errors_.ToStaticFlatbuffer(fbs->add_errors());
+
+ fbs->set_error(error_);
+ fbs->set_zeroed(zeroed_);
+ fbs->set_position(position_);
+ fbs->set_absolute_position(filtered_absolute_encoder_);
+}
+
} // namespace frc971::zeroing
diff --git a/frc971/zeroing/continuous_absolute_encoder.h b/frc971/zeroing/continuous_absolute_encoder.h
index 4994280..5e700ee 100644
--- a/frc971/zeroing/continuous_absolute_encoder.h
+++ b/frc971/zeroing/continuous_absolute_encoder.h
@@ -47,6 +47,8 @@
virtual flatbuffers::Offset<State> GetEstimatorState(
flatbuffers::FlatBufferBuilder *fbb) const override;
+ void GetEstimatorState(AbsoluteEncoderEstimatorStateStatic *fbs) const;
+
private:
struct PositionStruct {
PositionStruct(const AbsolutePosition &position_buffer)
diff --git a/frc971/zeroing/zeroing.h b/frc971/zeroing/zeroing.h
index 68ef38f..01c2c61 100644
--- a/frc971/zeroing/zeroing.h
+++ b/frc971/zeroing/zeroing.h
@@ -10,7 +10,7 @@
#include "flatbuffers/flatbuffers.h"
#include "frc971/constants.h"
-#include "frc971/control_loops/control_loops_generated.h"
+#include "frc971/control_loops/control_loops_static.h"
// TODO(pschrader): Flag an error if encoder index pulse is not n revolutions
// away from the last one (i.e. got extra counts from noise, etc..)