From 43df4f83c6b829a6da972530d252358c9be0da45 Mon Sep 17 00:00:00 2001 From: rusefi Date: Sat, 3 Mar 2018 19:26:59 -0500 Subject: [PATCH] refactoring: extract method --- firmware/controllers/trigger/trigger_central.cpp | 2 +- firmware/controllers/trigger/trigger_decoder.cpp | 4 ++++ firmware/controllers/trigger/trigger_decoder.h | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index e68145c21e..19dec6498e 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -266,7 +266,7 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal DECLARE_ENGINE_PAR * We are here if there is a time gap between now and previous shaft event - that means the engine is not runnig. * That means we have lost synchronization since the engine is not running :) */ - triggerState.shaft_is_synchronized = false; + triggerState.onSynchronizationLost(PASS_ENGINE_PARAMETER_SIGNATURE); } previousShaftEventTimeNt = nowNt; diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index b1ee2b1c94..32de003402 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -167,6 +167,10 @@ void TriggerState::resetCurrentCycleState() { currentCycle.current_index = 0; } +void TriggerState::onSynchronizationLost(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + shaft_is_synchronized = false; +} + /** * @brief Trigger decoding happens here * This method is invoked every time we have a fall or rise on one of the trigger sensors. diff --git a/firmware/controllers/trigger/trigger_decoder.h b/firmware/controllers/trigger/trigger_decoder.h index fc7fc4cc26..e52f6b2c15 100644 --- a/firmware/controllers/trigger/trigger_decoder.h +++ b/firmware/controllers/trigger/trigger_decoder.h @@ -60,6 +60,10 @@ public: efitime_t getTotalEventCounter(); efitime_t getStartOfRevolutionIndex(); void decodeTriggerEvent(trigger_event_e const signal, efitime_t nowUs DECLARE_ENGINE_PARAMETER_SUFFIX); + /** + * Resets synchronization flag and alerts rpm_calculator to reset engine spinning flag. + */ + void onSynchronizationLost(DECLARE_ENGINE_PARAMETER_SIGNATURE); bool isValidIndex(DECLARE_ENGINE_PARAMETER_SIGNATURE); float getTriggerDutyCycle(int index);