Convert gyro_reading over to event loops.
LPD8806 wasn't going to fit in well, but it's never been used on a
robot. So take the easy way out and remove it.
Change-Id: Ib4d29b40d63a8663878ff1b074057be8b2df9259
diff --git a/frc971/control_loops/drivetrain/drivetrain.cc b/frc971/control_loops/drivetrain/drivetrain.cc
index e7cfae6..b45f016 100644
--- a/frc971/control_loops/drivetrain/drivetrain.cc
+++ b/frc971/control_loops/drivetrain/drivetrain.cc
@@ -20,7 +20,6 @@
#include "frc971/shifter_hall_effect.h"
#include "frc971/wpilib/imu.q.h"
-using frc971::sensors::gyro_reading;
using ::aos::monotonic_clock;
namespace chrono = ::std::chrono;
@@ -39,6 +38,9 @@
".frc971.control_loops.drivetrain.localizer_control")),
imu_values_fetcher_(
event_loop->MakeFetcher<::frc971::IMUValues>(".frc971.imu_values")),
+ gyro_reading_fetcher_(
+ event_loop->MakeFetcher<::frc971::sensors::GyroReading>(
+ ".frc971.sensors.gyro_reading")),
localizer_(localizer),
kf_(dt_config_.make_kf_drivetrain_loop()),
dt_openloop_(dt_config_, &kf_),
@@ -209,16 +211,16 @@
}
break;
case GyroType::SPARTAN_GYRO:
- if (gyro_reading.FetchLatest()) {
- LOG_STRUCT(DEBUG, "using", *gyro_reading.get());
- last_gyro_rate_ = gyro_reading->velocity;
+ if (gyro_reading_fetcher_.Fetch()) {
+ LOG_STRUCT(DEBUG, "using", *gyro_reading_fetcher_.get());
+ last_gyro_rate_ = gyro_reading_fetcher_->velocity;
last_gyro_time_ = monotonic_now;
}
break;
case GyroType::FLIPPED_SPARTAN_GYRO:
- if (gyro_reading.FetchLatest()) {
- LOG_STRUCT(DEBUG, "using", *gyro_reading.get());
- last_gyro_rate_ = -gyro_reading->velocity;
+ if (gyro_reading_fetcher_.Fetch()) {
+ LOG_STRUCT(DEBUG, "using", *gyro_reading_fetcher_.get());
+ last_gyro_rate_ = -gyro_reading_fetcher_->velocity;
last_gyro_time_ = monotonic_now;
}
break;