From 69521790fbc440b0f62665d3463d8046dd91bf9d Mon Sep 17 00:00:00 2001 From: rusEfi Date: Thu, 4 Dec 2014 14:03:27 -0600 Subject: [PATCH] auto-sync --- firmware/controllers/algo/ec2.h | 3 +-- .../controllers/algo/engine_configuration.cpp | 2 +- firmware/controllers/settings.cpp | 3 +-- firmware/controllers/trigger/rpm_calculator.cpp | 17 +++++++++++++---- firmware/rusefi.cpp | 2 +- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/firmware/controllers/algo/ec2.h b/firmware/controllers/algo/ec2.h index 4de7c03dae..719d0021cb 100644 --- a/firmware/controllers/algo/ec2.h +++ b/firmware/controllers/algo/ec2.h @@ -59,8 +59,7 @@ public: */ IgnitionEventList ignitionEvents[2]; - uint64_t stopEngineRequestTime; - bool_t isStopEngineRequestPending; + uint64_t stopEngineRequestTimeNt; }; void initializeIgnitionActions(float advance, float dwellAngle, diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index c4943ff765..54cf532236 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -578,7 +578,7 @@ void resetConfigurationExt(Logging * logger, engine_type_e engineType, Engine *e engine_configuration2_s::engine_configuration2_s() { engineConfiguration = NULL; - isStopEngineRequestPending = false; + stopEngineRequestTimeNt = 0; } void engine_configuration2_s::precalc() { diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 1a22ffa0cd..a8dc9abce4 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -728,8 +728,7 @@ static void disableIgnition(void) { } static void stopEngine(Engine *engine) { - engine->engineConfiguration2->stopEngineRequestTime = getTimeNowUs(); - engine->engineConfiguration2->isStopEngineRequestPending = true; + engine->engineConfiguration2->stopEngineRequestTimeNt = getTimeNowNt(); } #if EFI_WAVE_CHART diff --git a/firmware/controllers/trigger/rpm_calculator.cpp b/firmware/controllers/trigger/rpm_calculator.cpp index 65b21af92c..f9cdedab85 100644 --- a/firmware/controllers/trigger/rpm_calculator.cpp +++ b/firmware/controllers/trigger/rpm_calculator.cpp @@ -38,11 +38,13 @@ extern WaveChart waveChart; #define TOP_DEAD_CENTER_MESSAGE "r" -EXTERN_ENGINE; +EXTERN_ENGINE +; #if EFI_PROD_CODE || EFI_SIMULATOR static Logging logger; -EXTERN_ENGINE; +EXTERN_ENGINE +; #endif RpmCalculator::RpmCalculator() { @@ -63,8 +65,15 @@ RpmCalculator::RpmCalculator() { * @return true if there was a full shaft revolution within the last second */ bool RpmCalculator::isRunning(DECLARE_ENGINE_PARAMETER_F) { + engine_configuration2_s *engineConfiguration2 = engine->engineConfiguration2; uint64_t nowNt = getTimeNowNt(); - return nowNt - lastRpmEventTimeNt < US2NT(US_PER_SECOND); + if (engineConfiguration2->stopEngineRequestTimeNt != 0) { + if (nowNt - lastRpmEventTimeNt < 3 * US2NT(US_PER_SECOND_LL)) { + return false; + } + } + + return nowNt - lastRpmEventTimeNt < US2NT(US_PER_SECOND_LL); } void RpmCalculator::setRpmValue(int value) { @@ -184,7 +193,7 @@ static char rpmBuffer[10]; */ static void onTdcCallback(void) { itoa10(rpmBuffer, getRpm()); - addWaveChartEvent(TOP_DEAD_CENTER_MESSAGE, (char*) rpmBuffer); + addWaveChartEvent(TOP_DEAD_CENTER_MESSAGE, (char* ) rpmBuffer); } /** diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index a9628a0d75..0420b11e3a 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -265,5 +265,5 @@ int getRusEfiVersion(void) { return 1; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE == 0) return 1; // this is here to make the compiler happy about the unused array - return 20141203; + return 20141204; }