diff --git a/firmware/controllers/algo/algo.cpp b/firmware/controllers/algo/algo.cpp index 7ba3a08295..75200f3e20 100644 --- a/firmware/controllers/algo/algo.cpp +++ b/firmware/controllers/algo/algo.cpp @@ -26,6 +26,7 @@ #include "settings.h" #include "signal_executor.h" #include "speed_density.h" +#include "fsio_impl.h" EXTERN_ENGINE; @@ -33,6 +34,7 @@ void initDataStructures(DECLARE_ENGINE_PARAMETER_SIGNATURE) { prepareFuelMap(PASS_ENGINE_PARAMETER_SIGNATURE); prepareTimingMap(PASS_ENGINE_PARAMETER_SIGNATURE); initSpeedDensity(PASS_ENGINE_PARAMETER_SIGNATURE); + prepareFsio(); } void initAlgo(Logging *sharedLogger) { diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 443acd675e..e71ea8dcf9 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -347,7 +347,7 @@ void Engine::checkShutdown() { int rpm = rpmCalculator.rpmValue; const float vBattThreshold = 5.0f; - if (isValidRpm(rpm) && sensors.vBatt < vBattThreshold) { + if (isValidRpm(rpm) && sensors.vBatt < vBattThreshold && stopEngineRequestTimeNt == 0) { stopEngine(); // todo: add stepper motor parking } diff --git a/firmware/controllers/core/fsio_impl.cpp b/firmware/controllers/core/fsio_impl.cpp index e85b54d5a4..e5539d9c99 100644 --- a/firmware/controllers/core/fsio_impl.cpp +++ b/firmware/controllers/core/fsio_impl.cpp @@ -512,9 +512,6 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) { #if EFI_PROD_CODE || EFI_SIMULATOR logger = sharedLogger; #endif - for (int i = 0; i < FSIO_COMMAND_COUNT; i++) { - fsioLogics[i] = NULL; - } #if EFI_FUEL_PUMP || defined(__DOXYGEN__) fuelPumpLogic = sysPool.parseExpression(FUEL_PUMP_LOGIC); @@ -577,5 +574,10 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) { } +void prepareFsio(void) { + for (int i = 0; i < FSIO_COMMAND_COUNT; i++) { + fsioLogics[i] = NULL; + } +} #endif /* EFI_FSIO */ diff --git a/firmware/controllers/core/fsio_impl.h b/firmware/controllers/core/fsio_impl.h index 90fbb7a918..484ad5ccbb 100644 --- a/firmware/controllers/core/fsio_impl.h +++ b/firmware/controllers/core/fsio_impl.h @@ -25,5 +25,6 @@ void setFsioExt(int index, brain_pin_e pin, const char * exp, int freq DECLARE_E void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX); void runFsio(void); void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE); +void prepareFsio(void); #endif /* LE_FUNCTIONS_H_ */