Added joystick reader to y2017_bot3

Change-Id: Ic1b9e6344d43acce889650e49c22aaea420b8f5c
diff --git a/y2017_bot3/BUILD b/y2017_bot3/BUILD
index 9ff13fd..9fc50f8 100644
--- a/y2017_bot3/BUILD
+++ b/y2017_bot3/BUILD
@@ -1,6 +1,27 @@
 load('/aos/downloader/downloader', 'aos_downloader')
 
 cc_binary(
+  name = 'joystick_reader',
+  srcs = [
+    'joystick_reader.cc',
+  ],
+  deps = [
+    '//aos/common/actions:action_lib',
+    '//aos/common/logging',
+    '//aos/common/util:log_interval',
+    '//aos/common:time',
+    '//aos/input:drivetrain_input',
+    '//aos/input:joystick_input',
+    '//aos/linux_code:init',
+    '//frc971/autonomous:auto_queue',
+    '//frc971/control_loops/drivetrain:drivetrain_queue',
+    '//frc971/autonomous:base_autonomous_actor',
+    '//y2017_bot3/control_loops/superstructure:superstructure_queue',
+    '//y2017_bot3/control_loops/superstructure:superstructure_lib',
+  ],
+)
+
+cc_binary(
   name = 'wpilib_interface',
   srcs = [
     'wpilib_interface.cc',
@@ -43,6 +64,7 @@
   start_srcs = [
     '//aos:prime_start_binaries',
     '//y2017_bot3/control_loops/drivetrain:drivetrain',
+    '//y2017_bot3/control_loops/superstructure:superstructure',
     ':wpilib_interface',
   ],
   srcs = [
@@ -56,6 +78,7 @@
   start_srcs = [
     '//aos:prime_start_binaries_stripped',
     '//y2017_bot3/control_loops/drivetrain:drivetrain.stripped',
+    '//y2017_bot3/control_loops/superstructure:superstructure.stripped',
     ':wpilib_interface.stripped',
   ],
   srcs = [
diff --git a/y2017_bot3/joystick_reader.cc b/y2017_bot3/joystick_reader.cc
index 0d43efd..40a8d12 100644
--- a/y2017_bot3/joystick_reader.cc
+++ b/y2017_bot3/joystick_reader.cc
@@ -14,7 +14,6 @@
 #include "frc971/autonomous/auto.q.h"
 #include "frc971/autonomous/base_autonomous_actor.h"
 #include "frc971/control_loops/drivetrain/drivetrain.q.h"
-#include "y2017_bot3/actors/autonomous_actor.h"
 #include "y2017_bot3/control_loops/superstructure/superstructure.q.h"
 
 using ::frc971::control_loops::drivetrain_queue;
@@ -46,7 +45,12 @@
   }
 
   void RunIteration(const ::aos::input::driver_station::Data &data) override {
-    bool last_auto_running = auto_running_;
+    if (!data.GetControlBit(ControlBit::kEnabled)) {
+      action_queue_.CancelAllActions();
+      LOG(DEBUG, "Canceling\n");
+    }
+
+    const bool last_auto_running = auto_running_;
     auto_running_ = data.GetControlBit(ControlBit::kAutonomous) &&
                     data.GetControlBit(ControlBit::kEnabled);
     if (auto_running_ != last_auto_running) {
@@ -67,11 +71,6 @@
     was_running_ = action_queue_.Running();
   }
 
-  if (!data.GetControlBit(ControlBit::kEnabled)) {
-    action_queue_.CancelAllActions();
-    LOG(DEBUG, "Canceling\n");
-  }
-
   void HandleDrivetrain(const ::aos::input::driver_station::Data &data) {
     drivetrain_input_reader_->HandleDrivetrain(data);
     robot_velocity_ = drivetrain_input_reader_->robot_velocity();