From 217333941d26f5c0cf6a13ebc6966fd4c6221b1f Mon Sep 17 00:00:00 2001 From: rusEfi Date: Mon, 24 Nov 2014 21:03:19 -0600 Subject: [PATCH] auto-sync --- firmware/console/status_loop.cpp | 4 ++-- firmware/controllers/algo/engine.cpp | 7 ++++--- firmware/controllers/algo/engine.h | 2 +- firmware/controllers/engine_controller.cpp | 2 +- firmware/controllers/lcd_controller.cpp | 2 +- firmware/controllers/math/engine_math.cpp | 2 +- firmware/controllers/math/speed_density.cpp | 2 +- firmware/controllers/sensors/tps.cpp | 8 +++++--- firmware/controllers/sensors/tps.h | 2 +- firmware/controllers/settings.cpp | 2 +- unit_tests/test_trigger_decoder.cpp | 15 ++++++++------- win32_functional_tests/simulator/global.h | 1 + 12 files changed, 27 insertions(+), 22 deletions(-) diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 0d7f07a58d..c7725b5f1a 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -140,7 +140,7 @@ void printSensors(Engine *engine) { reportSensorF("TRG_0_DUTY", getTriggerDutyCycle(0), 2); reportSensorF("TRG_1_DUTY", getTriggerDutyCycle(1), 2); - reportSensorF(getCaption(LP_THROTTLE), getTPS(engineConfiguration), 2); + reportSensorF(getCaption(LP_THROTTLE), getTPS(PASS_ENGINE_PARAMETER_F), 2); if (engineConfiguration->hasCltSensor) { reportSensorF(getCaption(LP_ECT), getCoolantTemperature(engine), 2); @@ -416,7 +416,7 @@ void updateTunerStudioState(Engine *engine, TunerStudioOutputChannels *tsOutputC engine_configuration_s *engineConfiguration = engine->engineConfiguration; - float tps = getTPS(engineConfiguration); + float tps = getTPS(PASS_ENGINE_PARAMETER_F); float coolant = getCoolantTemperature(engine); float intake = getIntakeAirTemperature(engine); diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 8570d5bb6a..7148ef2f04 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -24,6 +24,8 @@ static Logging logger; #endif +EXTERN_ENGINE; + /** * We are executing these heavy (logarithm) methods from outside the trigger callbacks for performance reasons. */ @@ -119,10 +121,9 @@ void StartupFuelPumping::setPumpsCounter(engine_configuration_s *engineConfigura } } -void StartupFuelPumping::update(Engine *engine) { - engine_configuration_s *engineConfiguration = engine->engineConfiguration; +void StartupFuelPumping::update(DECLARE_ENGINE_PARAMETER_F) { if (engine->rpmCalculator.rpm() == 0) { - bool isTpsAbove50 = getTPS(engineConfiguration) >= 50; + bool isTpsAbove50 = getTPS(PASS_ENGINE_PARAMETER_F) >= 50; if (this->isTpsAbove50 != isTpsAbove50) { setPumpsCounter(engineConfiguration, pumpsCounter + 1); diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index 6f1d51b407..de24fc4745 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -79,7 +79,7 @@ private: class StartupFuelPumping { public: StartupFuelPumping(); - void update(Engine *engine); + void update(DECLARE_ENGINE_PARAMETER_F); bool isTpsAbove50; int pumpsCounter; private: diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 85857fa4bf..89ccca7a6a 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -179,7 +179,7 @@ int getTimeNowSeconds(void) { static void cylinderCleanupControl(Engine *engine) { bool newValue; if (engineConfiguration->isCylinderCleanupEnabled) { - newValue = isCrankingE(engine) && getTPS(engine->engineConfiguration) > CLEANUP_MODE_TPS; + newValue = isCrankingE(engine) && getTPS(PASS_ENGINE_PARAMETER_F) > CLEANUP_MODE_TPS; } else { newValue = false; } diff --git a/firmware/controllers/lcd_controller.cpp b/firmware/controllers/lcd_controller.cpp index f86ad955f9..b249d84ade 100644 --- a/firmware/controllers/lcd_controller.cpp +++ b/firmware/controllers/lcd_controller.cpp @@ -51,7 +51,7 @@ static char * prepareCltIatTpsLine(Engine *engine, char *buffer) { ptr = ftoa(ptr, getIntakeAirTemperature(engine), 10.0f); ptr = appendStr(ptr, " TP"); - ptr = itoa10(ptr, (int) getTPS(engine->engineConfiguration)); + ptr = itoa10(ptr, (int) getTPS(PASS_ENGINE_PARAMETER_F)); return ptr; } diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index 39ab5550b6..b42c283ff2 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -77,7 +77,7 @@ float getEngineLoadT(DECLARE_ENGINE_PARAMETER_F) { case LM_MAP: return getMap(); case LM_ALPHA_N: - return getTPS(engineConfiguration); + return getTPS(PASS_ENGINE_PARAMETER_F); default: firmwareError("Unexpected engine load parameter: %d", engineConfiguration->algorithm); return -1; diff --git a/firmware/controllers/math/speed_density.cpp b/firmware/controllers/math/speed_density.cpp index b60ac6bd50..a376b60a29 100644 --- a/firmware/controllers/math/speed_density.cpp +++ b/firmware/controllers/math/speed_density.cpp @@ -66,7 +66,7 @@ float getSpeedDensityFuel(Engine *engine, int rpm) { engine_configuration_s *engineConfiguration = engine->engineConfiguration; - float tps = getTPS(engineConfiguration); + float tps = getTPS(PASS_ENGINE_PARAMETER_F); float coolantC = getCoolantTemperature(engine); float intakeC = getIntakeAirTemperature(engine); float tChargeK = convertCelsiusToKelvin(getTCharge(rpm, tps, coolantC, intakeC)); diff --git a/firmware/controllers/sensors/tps.cpp b/firmware/controllers/sensors/tps.cpp index b3dadea505..b624442d5e 100644 --- a/firmware/controllers/sensors/tps.cpp +++ b/firmware/controllers/sensors/tps.cpp @@ -12,6 +12,8 @@ extern engine_configuration_s *engineConfiguration; int mockTps; #endif + EXTERN_ENGINE; + /** * We are using one instance for read and another for modification, this is how we get lock-free thread-safety * @@ -91,7 +93,7 @@ int getTPS10bitAdc(void) { /** * @brief Position on physical primary TPS */ -static float getPrimatyRawTPS(engine_configuration_s *engineConfiguration) { +static float getPrimatyRawTPS(DECLARE_ENGINE_PARAMETER_F) { // blue, 1st board /* PA7 - blue TP */ float tpsValue = getTpsValue(engineConfiguration, getTPS10bitAdc()); @@ -105,12 +107,12 @@ static float getPrimatyRawTPS(engine_configuration_s *engineConfiguration) { * * @return Current TPS position, percent of WOT. 0 means idle and 100 means Wide Open Throttle */ -float getTPS(engine_configuration_s *engineConfiguration) { +float getTPS(DECLARE_ENGINE_PARAMETER_F) { // todo: if (config->isDualTps) // todo: blah blah // todo: if two TPS do not match - show OBD code via malfunction_central.c - return getPrimatyRawTPS(engineConfiguration); + return getPrimatyRawTPS(PASS_ENGINE_PARAMETER_F); } int convertVoltageTo10bitADC(float voltage) { diff --git a/firmware/controllers/sensors/tps.h b/firmware/controllers/sensors/tps.h index 8e3da0c53d..6ded79a02c 100644 --- a/firmware/controllers/sensors/tps.h +++ b/firmware/controllers/sensors/tps.h @@ -13,7 +13,7 @@ #include "global.h" #include "engine_configuration.h" -float getTPS(engine_configuration_s *engineConfiguration); +float getTPS(DECLARE_ENGINE_PARAMETER_F); int convertVoltageTo10bitADC(float voltage); int getTPS10bitAdc(void); float getTPSVoltage(void); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 1ccb41af1c..6222e5b0f4 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -315,7 +315,7 @@ static void printTPSInfo(void) { scheduleMsg(&logger, "tps min %d/max %d v=%f @%s%d", engineConfiguration->tpsMin, engineConfiguration->tpsMax, getTPSVoltage(), portname(port), pin); #endif - scheduleMsg(&logger, "current 10bit=%d value=%f rate=%f", getTPS10bitAdc(), getTPS(engineConfiguration), + scheduleMsg(&logger, "current 10bit=%d value=%f rate=%f", getTPS10bitAdc(), getTPS(PASS_ENGINE_PARAMETER_F), getTpsRateOfChange()); } diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index 683fcd0c16..82f49ea3b7 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -336,6 +336,7 @@ static void testStartupFuelPumping(void) { StartupFuelPumping sf; Engine * engine = ð.engine; + engine_configuration_s *engineConfiguration = engine->engineConfiguration; engine->rpmCalculator.mockRpm = 0; @@ -343,31 +344,31 @@ static void testStartupFuelPumping(void) { engine->engineConfiguration->tpsMax = 10; mockTps = 6; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#1", 1, sf.pumpsCounter); mockTps = 3; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#2", 1, sf.pumpsCounter); - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#3", 1, sf.pumpsCounter); engine->rpmCalculator.mockRpm = 10; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#4", 0, sf.pumpsCounter); mockTps = 7; engine->rpmCalculator.mockRpm = 0; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#5", 1, sf.pumpsCounter); mockTps = 3; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#6", 1, sf.pumpsCounter); mockTps = 7; - sf.update(engine); + sf.update(PASS_ENGINE_PARAMETER_F); assertEqualsM("pc#7", 2, sf.pumpsCounter); } diff --git a/win32_functional_tests/simulator/global.h b/win32_functional_tests/simulator/global.h index 22ddbafea4..c0991f66f7 100644 --- a/win32_functional_tests/simulator/global.h +++ b/win32_functional_tests/simulator/global.h @@ -94,4 +94,5 @@ typedef EventListener event_listener_t; #define DECLARE_ENGINE_PARAMETER_F void #define DECLARE_ENGINE_PARAMETER_S +#define PASS_ENGINE_PARAMETER_F #define PASS_ENGINE_PARAMETER