Add auto cancel button
Change-Id: I3f026dce7478edfdb71bde9683c42f204c765e58
diff --git a/aos/input/action_joystick_input.cc b/aos/input/action_joystick_input.cc
index 061f4dc..6a38967 100644
--- a/aos/input/action_joystick_input.cc
+++ b/aos/input/action_joystick_input.cc
@@ -23,7 +23,8 @@
}
}
- if (!auto_running_ || (run_teleop_in_auto_ && !action_queue_.Running())) {
+ if (!auto_running_ ||
+ (input_config_.run_teleop_in_auto && !action_queue_.Running())) {
if (auto_was_running_) {
AutoEnded();
auto_was_running_ = false;
@@ -36,6 +37,11 @@
HandleTeleop(data);
}
+ if (auto_action_running_ &&
+ data.IsPressed(input_config_.cancel_auto_button)) {
+ StopAuto();
+ }
+
// Process pending actions.
action_queue_.Tick();
was_running_ = action_queue_.Running();
@@ -45,11 +51,13 @@
LOG(INFO, "Starting auto mode\n");
action_queue_.EnqueueAction(
::frc971::autonomous::MakeAutonomousAction(GetAutonomousMode()));
+ auto_action_running_ = true;
}
void ActionJoystickInput::StopAuto() {
LOG(INFO, "Stopping auto mode\n");
action_queue_.CancelAllActions();
+ auto_action_running_ = false;
}
} // namespace input