From 84716ce67252680a1e579c2be1e96eda8322f7f1 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 11 May 2017 08:32:08 -0400 Subject: [PATCH] #412 --- firmware/controllers/algo/engine.cpp | 1 + firmware/controllers/algo/engine.h | 2 ++ firmware/controllers/sensors/thermistors.cpp | 3 +++ 3 files changed, 6 insertions(+) diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 0ccde37c9d..c3eeda8b85 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -119,6 +119,7 @@ void Engine::reset() { isRunningPwmTest = false; isTestMode = false; isSpinning = false; + isCltBroken = false; adcToVoltageInputDividerCoefficient = NAN; sensors.reset(); memset(&ignitionPin, 0, sizeof(ignitionPin)); diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index 654596f378..b161a4bbc5 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -274,6 +274,8 @@ public: */ bool isAlternatorControlEnabled; + bool isCltBroken; + // floatms_t callToPitEndTime; diff --git a/firmware/controllers/sensors/thermistors.cpp b/firmware/controllers/sensors/thermistors.cpp index e6dd610e48..880136e30e 100644 --- a/firmware/controllers/sensors/thermistors.cpp +++ b/firmware/controllers/sensors/thermistors.cpp @@ -106,14 +106,17 @@ bool hasCltSensor(DECLARE_ENGINE_PARAMETER_F) { */ float getCoolantTemperature(DECLARE_ENGINE_PARAMETER_F) { if (!hasCltSensor(PASS_ENGINE_PARAMETER_F)) { + engine->isCltBroken = false; return NO_CLT_SENSOR_TEMPERATURE; } float temperature = getTemperatureC(&engineConfiguration->clt, &engine->engineState.cltCurve); if (!isValidCoolantTemperature(temperature)) { efiAssert(engineConfiguration!=NULL, "NULL engineConfiguration", NAN); warning(OBD_Engine_Coolant_Temperature_Circuit_Malfunction, "unrealistic CLT %f", temperature); + engine->isCltBroken = true; return LIMPING_MODE_CLT_TEMPERATURE; } + engine->isCltBroken = false; return temperature; }