Got intake working and initial elevator working.

Change-Id: I7b8af78b768072c0b912730a2f7a7eb21609852b
diff --git a/bot3/control_loops/intake/intake.cc b/bot3/control_loops/intake/intake.cc
index 126e491..bfa71bf 100644
--- a/bot3/control_loops/intake/intake.cc
+++ b/bot3/control_loops/intake/intake.cc
@@ -13,7 +13,6 @@
     const control_loops::IntakeQueue::Position * /*position*/,
     control_loops::IntakeQueue::Output *output,
     control_loops::IntakeQueue::Status * /*status*/) {
-
   if (output != nullptr) {
     output->Zero();
 
diff --git a/bot3/wpilib/wpilib_interface.cc b/bot3/wpilib/wpilib_interface.cc
index 0c7df64..831c0e8 100644
--- a/bot3/wpilib/wpilib_interface.cc
+++ b/bot3/wpilib/wpilib_interface.cc
@@ -168,6 +168,12 @@
 
       elevator_message.Send();
     }
+
+    // Intake
+    {
+      auto intake_message = intake_queue.position.MakeMessage();
+      intake_message.Send();
+    }
   }
 
   void Quit() { run_ = false; }
@@ -228,8 +234,8 @@
         elevator_.FetchLatest();
         if (elevator_.get()) {
           LOG_STRUCT(DEBUG, "solenoids", *elevator_);
-          elevator_passive_support_->Set(elevator_->passive_support);
-          elevator_can_support_->Set(elevator_->passive_support);
+          elevator_passive_support_->Set(!elevator_->passive_support);
+          elevator_can_support_->Set(!elevator_->can_support);
         }
       }
 
@@ -334,7 +340,7 @@
     auto &queue = ::bot3::control_loops::elevator_queue.output;
     LOG_STRUCT(DEBUG, "will output", *queue);
     elevator_talon1_->Set(queue->elevator / 12.0);
-    elevator_talon2_->Set(queue->elevator / 12.0);
+    elevator_talon2_->Set(-queue->elevator / 12.0);
   }
 
   virtual void Stop() override {
@@ -367,7 +373,7 @@
     auto &queue = ::bot3::control_loops::intake_queue.output;
     LOG_STRUCT(DEBUG, "will output", *queue);
     intake_talon1_->Set(queue->intake / 12.0);
-    intake_talon2_->Set(queue->intake / 12.0);
+    intake_talon2_->Set(-queue->intake / 12.0);
   }
 
   virtual void Stop() override {
@@ -424,10 +430,12 @@
     ElevatorWriter elevator_writer;
     elevator_writer.set_elevator_talon1(::std::unique_ptr<Talon>(new Talon(1)));
     elevator_writer.set_elevator_talon2(::std::unique_ptr<Talon>(new Talon(6)));
+    ::std::thread elevator_writer_thread(::std::ref(elevator_writer));
 
     IntakeWriter intake_writer;
     intake_writer.set_intake_talon1(::std::unique_ptr<Talon>(new Talon(2)));
     intake_writer.set_intake_talon2(::std::unique_ptr<Talon>(new Talon(5)));
+    ::std::thread intake_writer_thread(::std::ref(intake_writer));
 
     ::std::unique_ptr<::frc971::wpilib::BufferedPcm> pcm(
         new ::frc971::wpilib::BufferedPcm());
@@ -455,6 +463,13 @@
 
     drivetrain_writer.Quit();
     drivetrain_writer_thread.join();
+
+    elevator_writer.Quit();
+    elevator_writer_thread.join();
+
+    intake_writer.Quit();
+    intake_writer_thread.join();
+
     solenoid_writer.Quit();
     solenoid_thread.join();