From 5a052f192475ce192e1296d890dde5c8c42b37f3 Mon Sep 17 00:00:00 2001 From: David Holdeman Date: Thu, 4 Apr 2024 15:56:53 -0500 Subject: [PATCH] Use assumed shift time if ISS isn't configured --- firmware/controllers/tcu/tcu.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/firmware/controllers/tcu/tcu.cpp b/firmware/controllers/tcu/tcu.cpp index 1364188db0..0a98f08322 100644 --- a/firmware/controllers/tcu/tcu.cpp +++ b/firmware/controllers/tcu/tcu.cpp @@ -45,9 +45,14 @@ void TransmissionControllerBase::measureShiftTime(gear_e gear) { } float TransmissionControllerBase::isShiftCompleted() { - if (m_shiftTime && m_shiftTimeGear == Sensor::getOrZero(SensorType::DetectedGear)) { + auto detected = Sensor::get(SensorType::DetectedGear); + auto iss = Sensor::get(SensorType::InputShaftSpeed); + if (detected.Valid && m_shiftTime && m_shiftTimeGear == detected.Value) { m_shiftTime = false; return m_shiftTimer.getElapsedSeconds(); + } else if (!iss.Valid && m_shiftTime && m_shiftTimer.hasElapsedMs(config->tcu_shiftTime)) { + m_shiftTime = false; + return config->tcu_shiftTime * 0.001; } else { return 0; }