diff --git a/firmware/controllers/algo/aux_pid.cpp b/firmware/controllers/algo/aux_pid.cpp index ece83c8f9b..7cd579fda2 100644 --- a/firmware/controllers/algo/aux_pid.cpp +++ b/firmware/controllers/algo/aux_pid.cpp @@ -64,7 +64,7 @@ static msg_t auxPidThread(int param) { while (true) { auxPid.sleep(); - if (parametersVersion.isOld()) { + if (parametersVersion.isOld(getGlobalConfigurationVersion())) { pidReset(); } diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 34797a976b..7b5c82b82e 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -318,7 +318,7 @@ static void periodicSlowCallback(Engine *engine) { updatePrimeInjectionPulseState(PASS_ENGINE_PARAMETER_SIGNATURE); } - if (versionForConfigurationListeners.isOld()) { + if (versionForConfigurationListeners.isOld(getGlobalConfigurationVersion())) { updateAccelParameters(); engine->engineState.warmupAfrPid.reset(); } diff --git a/firmware/controllers/trigger/main_trigger_callback.cpp b/firmware/controllers/trigger/main_trigger_callback.cpp index e72822932b..0ac0b89ef6 100644 --- a/firmware/controllers/trigger/main_trigger_callback.cpp +++ b/firmware/controllers/trigger/main_trigger_callback.cpp @@ -489,7 +489,7 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t trgEventIndex D if (trgEventIndex == 0) { - if (checkIfTriggerConfigChanged()) { + if (checkIfTriggerConfigChanged(PASS_ENGINE_PARAMETER_SIGNATURE)) { engine->ignitionEvents.isReady = false; // we need to rebuild ignition schedule engine->injectionEvents.isReady = false; // moved 'triggerIndexByAngle' into trigger initialization (why was it invoked from here if it's only about trigger shape & optimization?) diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index b034be7a86..dfb392a3fb 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -691,8 +691,8 @@ void onConfigurationChangeTriggerCallback(engine_configuration_s *previousConfig /** * @returns true if configuration just changed, and if that change has affected trigger */ -bool checkIfTriggerConfigChanged(void) { - bool result = triggerVersion.isOld() && isTriggerConfigChanged; +bool checkIfTriggerConfigChanged(DECLARE_ENGINE_PARAMETER_SIGNATURE) { + bool result = triggerVersion.isOld(getGlobalConfigurationVersion()) && isTriggerConfigChanged; isTriggerConfigChanged = false; // whoever has called the method is supposed to react to changes return result; } diff --git a/firmware/controllers/trigger/trigger_central.h b/firmware/controllers/trigger/trigger_central.h index 08e0e7c6cd..f114599784 100644 --- a/firmware/controllers/trigger/trigger_central.h +++ b/firmware/controllers/trigger/trigger_central.h @@ -71,7 +71,7 @@ int isSignalDecoderError(void); void resetMaxValues(); void onConfigurationChangeTriggerCallback(engine_configuration_s *previousConfiguration DECLARE_ENGINE_PARAMETER_SUFFIX); -bool checkIfTriggerConfigChanged(void); +bool checkIfTriggerConfigChanged(DECLARE_ENGINE_PARAMETER_SIGNATURE); bool readIfTriggerConfigChangedForUnitTest(void); void resetTriggerConfigChangedForUnitTest(void); diff --git a/firmware/util/LocalVersionHolder.cpp b/firmware/util/LocalVersionHolder.cpp index ab8d8faa7b..bdee308cfd 100644 --- a/firmware/util/LocalVersionHolder.cpp +++ b/firmware/util/LocalVersionHolder.cpp @@ -7,11 +7,6 @@ #include "LocalVersionHolder.h" -/** - * we rely on external source of global version - */ -int getGlobalConfigurationVersion(void); - LocalVersionHolder::LocalVersionHolder() { /** * we want local version to be 'old' on instantiation @@ -23,8 +18,7 @@ int LocalVersionHolder::getVersion() { return localVersion; } -bool LocalVersionHolder::isOld() { - int global = getGlobalConfigurationVersion(); +bool LocalVersionHolder::isOld(int global) { if (global > localVersion) { localVersion = global; return true; diff --git a/firmware/util/LocalVersionHolder.h b/firmware/util/LocalVersionHolder.h index 871277eb7e..6ab97fe653 100644 --- a/firmware/util/LocalVersionHolder.h +++ b/firmware/util/LocalVersionHolder.h @@ -23,7 +23,7 @@ public: * * @return true if getGlobalConfigurationVersion() has changed since last time we've invoked this method */ - bool isOld(); + bool isOld(int currentVersion); int getVersion(); private: