Set requested intake in autonomous

Signed-off-by: Milind Upadhyay <milind.upadhyay@gmail.com>
Change-Id: Id0e67f05b735063f93dc075e369817afbb720830
diff --git a/y2022/actors/autonomous_actor.cc b/y2022/actors/autonomous_actor.cc
index bf4fd13..fc02071 100644
--- a/y2022/actors/autonomous_actor.cc
+++ b/y2022/actors/autonomous_actor.cc
@@ -331,6 +331,9 @@
   superstructure_builder.add_roller_speed_compensation(1.5);
   superstructure_builder.add_roller_speed_front(roller_front_voltage_);
   superstructure_builder.add_roller_speed_back(roller_back_voltage_);
+  if (requested_intake_.has_value()) {
+    superstructure_builder.add_turret_intake(*requested_intake_);
+  }
   superstructure_builder.add_transfer_roller_speed_front(
       transfer_roller_front_voltage_);
   superstructure_builder.add_transfer_roller_speed_back(
@@ -347,6 +350,7 @@
 }
 
 void AutonomousActor::ExtendFrontIntake() {
+  set_requested_intake(RequestedIntake::kFront);
   set_intake_front_goal(kExtendIntakeGoal);
   set_roller_front_voltage(kRollerVoltage);
   set_transfer_roller_front_voltage(kRollerVoltage);
@@ -355,6 +359,7 @@
 }
 
 void AutonomousActor::RetractFrontIntake() {
+  set_requested_intake(std::nullopt);
   set_intake_front_goal(kRetractIntakeGoal);
   set_roller_front_voltage(kRollerVoltage);
   set_transfer_roller_front_voltage(0.0);
@@ -363,6 +368,7 @@
 }
 
 void AutonomousActor::ExtendBackIntake() {
+  set_requested_intake(RequestedIntake::kBack);
   set_intake_back_goal(kExtendIntakeGoal);
   set_roller_back_voltage(kRollerVoltage);
   set_transfer_roller_back_voltage(kRollerVoltage);
@@ -371,6 +377,7 @@
 }
 
 void AutonomousActor::RetractBackIntake() {
+  set_requested_intake(std::nullopt);
   set_intake_back_goal(kRetractIntakeGoal);
   set_roller_back_voltage(kRollerVoltage);
   set_transfer_roller_front_voltage(0.0);
diff --git a/y2022/actors/autonomous_actor.h b/y2022/actors/autonomous_actor.h
index 3286f10..b7d89bf 100644
--- a/y2022/actors/autonomous_actor.h
+++ b/y2022/actors/autonomous_actor.h
@@ -14,6 +14,7 @@
 namespace y2022 {
 namespace actors {
 
+using control_loops::superstructure::RequestedIntake;
 using frc971::control_loops::StaticZeroingSingleDOFProfiledSubsystemGoal;
 
 namespace superstructure = y2022::control_loops::superstructure;
@@ -46,6 +47,9 @@
   void set_transfer_roller_back_voltage(double voltage) {
     transfer_roller_back_voltage_ = voltage;
   }
+  void set_requested_intake(std::optional<RequestedIntake> requested_intake) {
+    requested_intake_ = requested_intake;
+  }
 
   void set_fire_at_will(bool fire) { fire_ = fire; }
   void set_preloaded(bool preloaded) { preloaded_ = preloaded; }
@@ -75,6 +79,7 @@
   double roller_back_voltage_ = 0.0;
   double transfer_roller_front_voltage_ = 0.0;
   double transfer_roller_back_voltage_ = 0.0;
+  std::optional<RequestedIntake> requested_intake_ = std::nullopt;
   bool fire_ = false;
   bool preloaded_ = false;