Convert y2014 AutoMode queue to an EventLoop
Change-Id: Ic9d6e80da8c955eb8c61e6b2b2fba220da1b62ec
diff --git a/y2014/actors/autonomous_actor.cc b/y2014/actors/autonomous_actor.cc
index e241d11..d4818e2 100644
--- a/y2014/actors/autonomous_actor.cc
+++ b/y2014/actors/autonomous_actor.cc
@@ -33,6 +33,8 @@
::frc971::autonomous::AutonomousActionQueueGroup *s)
: frc971::autonomous::BaseAutonomousActor(
event_loop, s, control_loops::GetDrivetrainConfig()),
+ auto_mode_fetcher_(event_loop->MakeFetcher<::y2014::sensors::AutoMode>(
+ ".y2014.sensors.auto_mode")),
hot_goal_fetcher_(
event_loop->MakeFetcher<::y2014::HotGoal>(".y2014.hot_goal")) {}
@@ -239,18 +241,17 @@
LOG(INFO, "Handling auto mode\n");
AutoVersion auto_version;
- ::y2014::sensors::auto_mode.FetchLatest();
- if (!::y2014::sensors::auto_mode.get()) {
+ auto_mode_fetcher_.Fetch();
+ if (!auto_mode_fetcher_.get()) {
LOG(WARNING, "not sure which auto mode to use\n");
auto_version = AutoVersion::kStraight;
} else {
static const double kSelectorMin = 0.2, kSelectorMax = 4.4;
const double kSelectorStep = (kSelectorMax - kSelectorMin) / 3.0;
- if (::y2014::sensors::auto_mode->voltage < kSelectorStep + kSelectorMin) {
+ if (auto_mode_fetcher_->voltage < kSelectorStep + kSelectorMin) {
auto_version = AutoVersion::kSingleHot;
- } else if (::y2014::sensors::auto_mode->voltage <
- 2 * kSelectorStep + kSelectorMin) {
+ } else if (auto_mode_fetcher_->voltage < 2 * kSelectorStep + kSelectorMin) {
auto_version = AutoVersion::kStraight;
} else {
auto_version = AutoVersion::kDoubleHot;