From 649e7cf1498de8db67d4078e579e0852b1f7a70b Mon Sep 17 00:00:00 2001 From: David Holdeman Date: Sat, 20 Apr 2024 12:59:36 -0500 Subject: [PATCH] Only allow manual +/- if in manual range --- firmware/controllers/tcu/gc_generic.cpp | 6 ++++-- firmware/controllers/tcu/gc_generic.h | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/firmware/controllers/tcu/gc_generic.cpp b/firmware/controllers/tcu/gc_generic.cpp index 5ae27493b0..dfd525c403 100644 --- a/firmware/controllers/tcu/gc_generic.cpp +++ b/firmware/controllers/tcu/gc_generic.cpp @@ -96,7 +96,7 @@ void GenericGearController::update() { setDesiredGear(NEUTRAL); break; case SelectedGear::ManualPlus : - if (!shiftTimer.hasElapsedMs(500)) { + if (!shiftTimer.hasElapsedMs(500) || lastRange != SelectedGear::Manual) { break; } shiftTimer.reset(); @@ -115,7 +115,7 @@ void GenericGearController::update() { } break; case SelectedGear::ManualMinus : - if (!shiftTimer.hasElapsedMs(500)) { + if (!shiftTimer.hasElapsedMs(500) || lastRange != SelectedGear::Manual) { break; } shiftTimer.reset(); @@ -139,6 +139,8 @@ void GenericGearController::update() { default: break; } + + lastRange = gear; } GearControllerBase::update(); diff --git a/firmware/controllers/tcu/gc_generic.h b/firmware/controllers/tcu/gc_generic.h index 03430de46a..6ec2dd0ea9 100644 --- a/firmware/controllers/tcu/gc_generic.h +++ b/firmware/controllers/tcu/gc_generic.h @@ -15,6 +15,7 @@ public: } private: Timer shiftTimer; + SelectedGear lastRange; bool isNearest(float value, int pinIndex, float* rangeStates); SensorType getAnalogSensorType(int zeroBasedSensorIndex); };