Merge "Add climber to wpilib interface"
diff --git a/y2020/joystick_reader.cc b/y2020/joystick_reader.cc
index 89de4b9..75a4b26 100644
--- a/y2020/joystick_reader.cc
+++ b/y2020/joystick_reader.cc
@@ -43,7 +43,9 @@
 const ButtonLocation kFeed(4, 1);
 const ButtonLocation kIntakeExtend(3, 9);
 const ButtonLocation kIntakeIn(4, 4);
-const ButtonLocation kSpit(4, 5);
+const ButtonLocation kSpit(4, 3);
+
+const ButtonLocation kWinch(3, 14);
 
 class Reader : public ::aos::input::ActionJoystickInput {
  public:
@@ -75,6 +77,7 @@
     float roller_speed = 0.0f;
     double accelerator_speed = 0.0;
     double finisher_speed = 0.0;
+    double climber_speed = 0.0;
 
     if (data.IsPressed(kTurret)) {
       turret_pos = 3.5;
@@ -105,6 +108,10 @@
       roller_speed = -6.0f;
     }
 
+    if (data.IsPressed(kWinch)) {
+      climber_speed = 12.0f;
+    }
+
     auto builder = superstructure_goal_sender_.MakeBuilder();
 
     flatbuffers::Offset<superstructure::Goal> superstructure_goal_offset;
@@ -137,6 +144,7 @@
       superstructure_goal_builder.add_roller_voltage(roller_speed);
       superstructure_goal_builder.add_shooter(shooter_offset);
       superstructure_goal_builder.add_shooting(data.IsPressed(kFeed));
+      superstructure_goal_builder.add_climber_voltage(climber_speed);
 
       if (!builder.Send(superstructure_goal_builder.Finish())) {
         AOS_LOG(ERROR, "Sending superstructure goal failed.\n");
diff --git a/y2020/wpilib_interface.cc b/y2020/wpilib_interface.cc
index 91182fc..8c30918 100644
--- a/y2020/wpilib_interface.cc
+++ b/y2020/wpilib_interface.cc
@@ -427,7 +427,7 @@
     if (climber_falcon_) {
       climber_falcon_->Set(
           ctre::phoenix::motorcontrol::ControlMode::PercentOutput,
-          std::clamp(output.climber_voltage(), -kMaxBringupPower,
+          std::clamp(-output.climber_voltage(), -kMaxBringupPower,
                      kMaxBringupPower) /
               12.0);
     }
@@ -550,8 +550,8 @@
         make_unique<::frc::TalonFX>(4));
     superstructure_writer.set_flywheel_falcon(make_unique<::frc::TalonFX>(9));
     // TODO: check port
-    //superstructure_writer.set_climber_falcon(
-        //make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(11));
+    superstructure_writer.set_climber_falcon(
+        make_unique<::ctre::phoenix::motorcontrol::can::TalonFX>(1));
 
     AddLoop(&output_event_loop);