Update Hood to use AbsoluteAndAbsolute position

Change-Id: I3e88718560a6e3983681a3430dc31b5431c1a743
diff --git a/y2020/wpilib_interface.cc b/y2020/wpilib_interface.cc
index 4f39acf..e7b7b86 100644
--- a/y2020/wpilib_interface.cc
+++ b/y2020/wpilib_interface.cc
@@ -136,6 +136,11 @@
     hood_encoder_.set_absolute_pwm(::std::move(absolute_pwm));
   }
 
+  void set_hood_single_turn_absolute_pwm(
+      ::std::unique_ptr<frc::DigitalInput> absolute_pwm) {
+    hood_encoder_.set_single_turn_absolute_pwm(::std::move(absolute_pwm));
+  }
+
   // Intake
 
   void set_intake_encoder(::std::unique_ptr<frc::Encoder> encoder) {
@@ -221,12 +226,13 @@
 
       // TODO(alex): check new absolute encoder api.
       // Hood
-      frc971::AbsolutePositionT hood;
+      frc971::AbsoluteAndAbsolutePositionT hood;
       CopyPosition(hood_encoder_, &hood,
                    Values::kHoodEncoderCountsPerRevolution(),
-                   Values::kHoodEncoderRatio(), true);
-      flatbuffers::Offset<frc971::AbsolutePosition> hood_offset =
-          frc971::AbsolutePosition::Pack(*builder.fbb(), &hood);
+                   Values::kHoodEncoderRatio(),
+                   Values::kHoodSingleTurnEncoderRatio(), false);
+      flatbuffers::Offset<frc971::AbsoluteAndAbsolutePosition> hood_offset =
+          frc971::AbsoluteAndAbsolutePosition::Pack(*builder.fbb(), &hood);
 
       // Intake
       frc971::AbsolutePositionT intake_joint;
@@ -311,7 +317,9 @@
 
   ::frc971::wpilib::AbsoluteEncoderAndPotentiometer turret_encoder_;
 
-  ::frc971::wpilib::AbsoluteEncoder hood_encoder_, intake_joint_encoder_;
+  ::frc971::wpilib::AbsoluteAndAbsoluteEncoder hood_encoder_;
+
+  ::frc971::wpilib::AbsoluteEncoder intake_joint_encoder_;
 
   ::std::unique_ptr<::frc::Encoder> finisher_encoder_,
       left_accelerator_encoder_, right_accelerator_encoder_,
@@ -486,10 +494,13 @@
     sensor_reader.set_drivetrain_left_encoder(make_encoder(0));
     sensor_reader.set_drivetrain_right_encoder(make_encoder(1));
     // TODO: pin numbers
+    // TODO(Ravago): Hood pin numbers
     sensor_reader.set_hood_encoder(
         make_unique<frc::Encoder>(22, 23, false, frc::Encoder::k4X));
 
-    sensor_reader.set_hood_absolute_pwm(make_unique<frc::DigitalInput>(24));
+    sensor_reader.set_hood_absolute_pwm(make_unique<frc::DigitalInput>(25));
+    sensor_reader.set_hood_single_turn_absolute_pwm(
+        make_unique<frc::DigitalInput>(24));
 
     sensor_reader.set_intake_encoder(make_encoder(5));
     sensor_reader.set_intake_absolute_pwm(make_unique<frc::DigitalInput>(1));