Add slow-down button to pistol grip
Change-Id: I4b76f566bdf499add0d605dc68e55e60dcb9de0c
diff --git a/aos/input/drivetrain_input.cc b/aos/input/drivetrain_input.cc
index 248f1ce..631f97d 100644
--- a/aos/input/drivetrain_input.cc
+++ b/aos/input/drivetrain_input.cc
@@ -170,6 +170,10 @@
throttle = ::std::max(-1.0, throttle / 0.7);
}
+ if (data.IsPressed(slow_down_)) {
+ throttle *= 0.5;
+ }
+
if (!data.GetControlBit(ControlBit::kEnabled)) {
high_gear_ = default_high_gear_;
}
@@ -242,6 +246,7 @@
const ButtonLocation TopButton(1, 1);
const ButtonLocation SecondButton(1, 2);
+ const ButtonLocation BottomButton(1, 4);
// Non-existant button for nops.
const ButtonLocation DummyButton(1, 10);
@@ -264,7 +269,8 @@
kWheelHigh, kWheelLow, kTriggerVelocityHigh, kTriggerVelocityLow,
kTriggerTorqueHigh, kTriggerTorqueLow, kTriggerHigh, kTriggerLow,
kWheelVelocityHigh, kWheelVelocityLow, kWheelTorqueHigh,
- kWheelTorqueLow, kQuickTurn, kShiftHigh, kShiftLow, kTurn1, kTurn2));
+ kWheelTorqueLow, kQuickTurn, kShiftHigh, kShiftLow, kTurn1, kTurn2,
+ BottomButton));
result->set_default_high_gear(default_high_gear);
return result;
diff --git a/aos/input/drivetrain_input.h b/aos/input/drivetrain_input.h
index f4b0212..ec52368 100644
--- a/aos/input/drivetrain_input.h
+++ b/aos/input/drivetrain_input.h
@@ -182,7 +182,8 @@
driver_station::ButtonLocation shift_high,
driver_station::ButtonLocation shift_low,
driver_station::ButtonLocation turn1,
- driver_station::ButtonLocation turn2)
+ driver_station::ButtonLocation turn2,
+ driver_station::ButtonLocation slow_down)
: DrivetrainInputReader(wheel_high, throttle_high, quick_turn, turn1,
TurnButtonUse::kLineFollow, turn2,
TurnButtonUse::kControlLoopDriving),
@@ -197,7 +198,8 @@
throttle_torque_high_(throttle_torque_high),
throttle_torque_low_(throttle_torque_low),
shift_high_(shift_high),
- shift_low_(shift_low) {}
+ shift_low_(shift_low),
+ slow_down_(slow_down) {}
WheelAndThrottle GetWheelAndThrottle(
const ::aos::input::driver_station::Data &data) override;
@@ -222,6 +224,7 @@
const driver_station::ButtonLocation shift_high_;
const driver_station::ButtonLocation shift_low_;
+ const driver_station::ButtonLocation slow_down_;
bool high_gear_;
bool default_high_gear_;