Convert y2014 AutoMode queue to an EventLoop

Change-Id: Ic9d6e80da8c955eb8c61e6b2b2fba220da1b62ec
diff --git a/y2014/wpilib_interface.cc b/y2014/wpilib_interface.cc
index 3bc5e39..c9d15dd 100644
--- a/y2014/wpilib_interface.cc
+++ b/y2014/wpilib_interface.cc
@@ -119,7 +119,9 @@
 class SensorReader : public ::frc971::wpilib::SensorReader {
  public:
   SensorReader(::aos::EventLoop *event_loop)
-      : ::frc971::wpilib::SensorReader(event_loop) {
+      : ::frc971::wpilib::SensorReader(event_loop),
+        auto_mode_sender_(event_loop->MakeSender<::y2014::sensors::AutoMode>(
+            ".y2014.sensors.auto_mode")) {
     // Set it to filter out anything shorter than 1/4 of the minimum pulse width
     // we should ever see.
     UpdateMediumEncoderFilterHz(kMaximumEncoderPulsesPerSecond);
@@ -265,9 +267,11 @@
       drivetrain_message.Send();
     }
 
-    ::y2014::sensors::auto_mode.MakeWithBuilder()
-        .voltage(auto_selector_analog_->GetVoltage())
-        .Send();
+    {
+      auto auto_mode_message = auto_mode_sender_.MakeMessage();
+      auto_mode_message->voltage = auto_selector_analog_->GetVoltage();
+      auto_mode_message.Send();
+    }
   }
 
   void RunDmaIteration() {
@@ -390,6 +394,8 @@
         shooter_translate(counter->last_negative_encoder_value());
   }
 
+  ::aos::Sender<::y2014::sensors::AutoMode> auto_mode_sender_;
+
   ::std::unique_ptr<AnalogInput> auto_selector_analog_;
 
   ::std::unique_ptr<AnalogInput> low_left_drive_hall_;