Put reused auto code in a different class
To keep old years using the same API I opted to make a new class which
new autonomous_actors can use.
Signed-off-by: Maxwell Henderson <mxwhenderson@gmail.com>
Change-Id: I991db4f65491994a718c5c8714f051fa071a128e
diff --git a/y2023/autonomous/autonomous_actor.h b/y2023/autonomous/autonomous_actor.h
index 31ae4f5..5a5cd06 100644
--- a/y2023/autonomous/autonomous_actor.h
+++ b/y2023/autonomous/autonomous_actor.h
@@ -3,7 +3,7 @@
#include "aos/actions/actions.h"
#include "aos/actions/actor.h"
-#include "frc971/autonomous/base_autonomous_actor.h"
+#include "frc971/autonomous/user_button_localized_autonomous_actor.h"
#include "frc971/control_loops/control_loops_generated.h"
#include "frc971/control_loops/drivetrain/drivetrain_config.h"
#include "frc971/control_loops/drivetrain/localizer_generated.h"
@@ -14,13 +14,11 @@
namespace y2023 {
namespace autonomous {
-class AutonomousActor : public ::frc971::autonomous::BaseAutonomousActor {
+class AutonomousActor
+ : public ::frc971::autonomous::UserButtonLocalizedAutonomousActor {
public:
explicit AutonomousActor(::aos::EventLoop *event_loop);
- bool RunAction(
- const ::frc971::autonomous::AutonomousActionParams *params) override;
-
private:
void set_arm_goal_position(uint32_t requested_arm_goal_position) {
arm_goal_position_ = requested_arm_goal_position;
@@ -48,39 +46,27 @@
void IntakeCube();
void Balance();
+ bool Run(const ::frc971::autonomous::AutonomousActionParams *params) override;
+ void Replan() override;
+ void SendStartingPosition(const Eigen::Vector3d &start) override;
+ void Reset() override;
+
[[nodiscard]] bool WaitForArmGoal(double distance_to_go = 0.01);
[[nodiscard]] bool WaitForPreloaded();
- void Reset();
-
- void SendStartingPosition(const Eigen::Vector3d &start);
- void MaybeSendStartingPosition();
void SplineAuto();
void ChargedUp();
void ChargedUpCableSide();
- void Replan();
aos::Sender<frc971::control_loops::drivetrain::LocalizerControl>
localizer_control_sender_;
- aos::Fetcher<aos::JoystickState> joystick_state_fetcher_;
- aos::Fetcher<aos::RobotState> robot_state_fetcher_;
double wrist_goal_;
control_loops::superstructure::RollerGoal roller_goal_ =
control_loops::superstructure::RollerGoal::IDLE;
- aos::TimerHandler *replan_timer_;
- aos::TimerHandler *button_poll_;
-
- aos::Alliance alliance_ = aos::Alliance::kInvalid;
AutonomousSplines auto_splines_;
- bool user_indicated_safe_to_reset_ = false;
- bool sent_starting_position_ = false;
-
- bool is_planned_ = false;
-
- std::optional<Eigen::Vector3d> starting_position_;
uint32_t arm_goal_position_;
bool preloaded_ = false;