From 162264fe08303a3f3d90173fa3104825c3a49761 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 29 Aug 2019 23:50:20 -0400 Subject: [PATCH] progress towards idle unit test --- .../actuators/alternator_controller.cpp | 2 +- .../controllers/actuators/alternator_controller.h | 2 +- firmware/controllers/actuators/idle_thread.cpp | 14 +++++++------- firmware/controllers/actuators/idle_thread.h | 2 +- firmware/controllers/algo/engine_configuration.cpp | 13 +++++++------ unit_tests/efifeatures.h | 2 ++ 6 files changed, 19 insertions(+), 16 deletions(-) diff --git a/firmware/controllers/actuators/alternator_controller.cpp b/firmware/controllers/actuators/alternator_controller.cpp index 14614fa8ce..c39a353b12 100644 --- a/firmware/controllers/actuators/alternator_controller.cpp +++ b/firmware/controllers/actuators/alternator_controller.cpp @@ -138,7 +138,7 @@ static void applyAlternatorPinState(int stateIndex, PwmConfig *state) /* pwm_gen output->setValue(value); } -void setDefaultAlternatorParameters(void) { +void setDefaultAlternatorParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) { engineConfiguration->alternatorOffAboveTps = 120; engineConfiguration->targetVBatt = 14; diff --git a/firmware/controllers/actuators/alternator_controller.h b/firmware/controllers/actuators/alternator_controller.h index fd7c65b80c..48769c57d6 100644 --- a/firmware/controllers/actuators/alternator_controller.h +++ b/firmware/controllers/actuators/alternator_controller.h @@ -16,7 +16,7 @@ void setAltPFactor(float p); void setAltIFactor(float p); void setAltDFactor(float p); void showAltInfo(void); -void setDefaultAlternatorParameters(void); +void setDefaultAlternatorParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE); void onConfigurationChangeAlternatorCallback(engine_configuration_s *previousConfiguration); diff --git a/firmware/controllers/actuators/idle_thread.cpp b/firmware/controllers/actuators/idle_thread.cpp index c8ca924981..a45219b666 100644 --- a/firmware/controllers/actuators/idle_thread.cpp +++ b/firmware/controllers/actuators/idle_thread.cpp @@ -395,6 +395,13 @@ static void applyPidSettings(DECLARE_ENGINE_PARAMETER_SIGNATURE) { idlePid.updateFactors(engineConfiguration->idleRpmPid.pFactor, engineConfiguration->idleRpmPid.iFactor, engineConfiguration->idleRpmPid.dFactor); } +void setDefaultIdleParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) { + engineConfiguration->idleRpmPid.pFactor = 0.1f; + engineConfiguration->idleRpmPid.iFactor = 0.05f; + engineConfiguration->idleRpmPid.dFactor = 0.0f; + engineConfiguration->idleRpmPid.periodMs = 10; +} + #if ! EFI_UNIT_TEST void onConfigurationChangeIdleCallback(engine_configuration_s *previousConfiguration) { @@ -446,13 +453,6 @@ void startIdleBench(void) { showIdleInfo(); } -void setDefaultIdleParameters(void) { - engineConfiguration->idleRpmPid.pFactor = 0.1f; - engineConfiguration->idleRpmPid.iFactor = 0.05f; - engineConfiguration->idleRpmPid.dFactor = 0.0f; - engineConfiguration->idleRpmPid.periodMs = 10; -} - static void applyIdleSolenoidPinState(int stateIndex, PwmConfig *state) /* pwm_gen_callback */ { efiAssertVoid(CUSTOM_ERR_6645, stateIndex < PWM_PHASE_MAX_COUNT, "invalid stateIndex"); efiAssertVoid(CUSTOM_ERR_6646, state->multiWave.waveCount == 1, "invalid idle waveCount"); diff --git a/firmware/controllers/actuators/idle_thread.h b/firmware/controllers/actuators/idle_thread.h index 0a799a5280..cdca561f23 100644 --- a/firmware/controllers/actuators/idle_thread.h +++ b/firmware/controllers/actuators/idle_thread.h @@ -14,7 +14,7 @@ percent_t getIdlePosition(void); void setIdleValvePosition(int positionPercent); void startIdleThread(Logging*sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX); -void setDefaultIdleParameters(void); +void setDefaultIdleParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE); void startIdleBench(void); void setIdleDT(int value); void setIdleOffset(float value); diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index 585889242b..45a1626dc8 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -179,7 +179,7 @@ void incrementGlobalConfigurationVersion(DECLARE_ENGINE_PARAMETER_SIGNATURE) { onConfigurationChangeElectronicThrottleCallback(&activeConfiguration); #endif /* EFI_ELECTRONIC_THROTTLE_BODY */ -#if EFI_IDLE_CONTROL +#if EFI_IDLE_CONTROL && ! EFI_UNIT_TEST onConfigurationChangeIdleCallback(&activeConfiguration); #endif /* EFI_IDLE_CONTROL */ @@ -303,10 +303,6 @@ void prepareVoidConfiguration(engine_configuration_s *engineConfiguration) { engineConfiguration->high_fuel_pressure_sensor_1 = EFI_ADC_NONE; engineConfiguration->high_fuel_pressure_sensor_2 = EFI_ADC_NONE; -#if EFI_IDLE_CONTROL - setDefaultIdleParameters(); -#endif /* EFI_IDLE_CONTROL */ - boardConfiguration->clutchDownPinMode = PI_PULLUP; boardConfiguration->clutchUpPinMode = PI_PULLUP; engineConfiguration->brakePedalPinMode = PI_PULLUP; @@ -585,9 +581,14 @@ static void setDefaultEngineConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) { prepareVoidConfiguration(engineConfiguration); #if EFI_ALTERNATOR_CONTROL - setDefaultAlternatorParameters(); + setDefaultAlternatorParameters(PASS_CONFIG_PARAMETER_SIGNATURE); #endif /* EFI_ALTERNATOR_CONTROL */ +#if EFI_IDLE_CONTROL + setDefaultIdleParameters(PASS_CONFIG_PARAMETER_SIGNATURE); +#endif /* EFI_IDLE_CONTROL */ + + #if EFI_ELECTRONIC_THROTTLE_BODY setDefaultEtbParameters(PASS_ENGINE_PARAMETER_SIGNATURE); setDefaultEtbBiasCurve(PASS_ENGINE_PARAMETER_SIGNATURE); diff --git a/unit_tests/efifeatures.h b/unit_tests/efifeatures.h index 84117bbc7a..278b035bdb 100644 --- a/unit_tests/efifeatures.h +++ b/unit_tests/efifeatures.h @@ -14,6 +14,8 @@ #define EFI_CJ125 TRUE +#define EFI_IDLE_CONTROL TRUE + #define SPARK_EXTREME_LOGGING TRUE #define EFI_ENABLE_CRITICAL_ENGINE_STOP TRUE