From ec6b1e9b3555de50479c7cde6afa7ef8064b5428 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Thu, 2 Oct 2014 22:03:25 -0500 Subject: [PATCH] auto-sync --- firmware/controllers/algo/engine_configuration.cpp | 2 ++ firmware/controllers/algo/engine_configuration.h | 5 ++++- firmware/controllers/algo/fuel_math.cpp | 2 +- firmware/controllers/algo/wave_chart.cpp | 8 ++++++-- firmware/controllers/engine_controller.cpp | 5 +++-- firmware/controllers/trigger/main_trigger_callback.cpp | 3 ++- firmware/controllers/trigger/rpm_calculator.cpp | 5 +++++ 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index d96b45d978..ed4d9a30af 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -194,6 +194,8 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_ engineConfiguration->tpsMin = convertVoltageTo10bitADC(1.250); engineConfiguration->tpsMax = convertVoltageTo10bitADC(4.538); + engineConfiguration->tpsErrorLowValue = convertVoltageTo10bitADC(0.2); + engineConfiguration->tpsErrorHighValue = convertVoltageTo10bitADC(6); engineConfiguration->can_nbc_type = CAN_BUS_NBC_BMW; engineConfiguration->can_sleep_period = 50; diff --git a/firmware/controllers/algo/engine_configuration.h b/firmware/controllers/algo/engine_configuration.h index dc051c0543..9fbfeed687 100644 --- a/firmware/controllers/algo/engine_configuration.h +++ b/firmware/controllers/algo/engine_configuration.h @@ -450,7 +450,10 @@ typedef struct { */ int engineCycle; - int unused3[5]; + short int tpsErrorLowValue; + short int tpsErrorHighValue; + + int unused3[4]; } engine_configuration_s; diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index 62caaa4289..0232361850 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -74,7 +74,7 @@ static int getNumberOfInjections(engine_configuration_s const *engineConfigurati float getFuelMs(int rpm, Engine *engine) { engine_configuration_s *engineConfiguration = engine->engineConfiguration; float theoreticalInjectionLength; - if (isCranking()) { + if (isCrankingR(rpm)) { theoreticalInjectionLength = getCrankingFuel(engine) / getNumberOfInjections(engineConfiguration, engineConfiguration->crankingInjectionMode); } else { float baseFuel = getBaseFuel(engine, rpm); diff --git a/firmware/controllers/algo/wave_chart.cpp b/firmware/controllers/algo/wave_chart.cpp index 3168c1188e..aa41ec093c 100644 --- a/firmware/controllers/algo/wave_chart.cpp +++ b/firmware/controllers/algo/wave_chart.cpp @@ -55,8 +55,8 @@ extern engine_configuration_s *engineConfiguration; int waveChartUsedSize; -static int isChartActive = TRUE; -//static int isChartActive = FALSE; +static int isChartActive = true; +//static int isChartActive = false; //#define DEBUG_WAVE 1 @@ -141,6 +141,10 @@ static char timeBuffer[10]; * @brief Register an event for digital sniffer */ void WaveChart::addWaveChartEvent3(const char *name, const char * msg, const char * msg2) { + if(!isChartActive) { + return; + } + efiAssertVoid(isInitialized, "chart not initialized"); #if DEBUG_WAVE scheduleSimpleMsg(&debugLogging, "current", chart->counter); diff --git a/firmware/controllers/engine_controller.cpp b/firmware/controllers/engine_controller.cpp index 6b8cc1717d..a6aab10d6c 100644 --- a/firmware/controllers/engine_controller.cpp +++ b/firmware/controllers/engine_controller.cpp @@ -94,8 +94,9 @@ static msg_t csThread(void) { chRegSetThreadName("status"); #if EFI_SHAFT_POSITION_INPUT while (TRUE) { - int is_cranking = isCranking(); - int is_running = getRpm() > 0 && !is_cranking; + int rpm = getRpm(); + int is_cranking = isCrankingR(rpm); + int is_running = rpm > 0 && !is_cranking; if (is_running) { // blinking while running setOutputPinValue(LED_RUNNING, 0); diff --git a/firmware/controllers/trigger/main_trigger_callback.cpp b/firmware/controllers/trigger/main_trigger_callback.cpp index 2bdb84ebde..1e06f52b95 100644 --- a/firmware/controllers/trigger/main_trigger_callback.cpp +++ b/firmware/controllers/trigger/main_trigger_callback.cpp @@ -101,12 +101,13 @@ static void handleFuel(Engine *engine, MainTriggerCallback *mainTriggerCallback, efiAssertVoid(getRemainingStack(chThdSelf()) > 16, "stack#3"); efiAssertVoid(eventIndex < mainTriggerCallback->engineConfiguration2->triggerShape.getLength(), "event index"); + engine_configuration_s *engineConfiguration = engine->engineConfiguration; /** * Ignition events are defined by addFuelEvents() according to selected * fueling strategy */ ActuatorEventList *source = - isCranking() ? + isCrankingR(rpm) ? &mainTriggerCallback->engineConfiguration2->engineEventConfiguration.crankingInjectionEvents : &mainTriggerCallback->engineConfiguration2->engineEventConfiguration.injectionEvents; diff --git a/firmware/controllers/trigger/rpm_calculator.cpp b/firmware/controllers/trigger/rpm_calculator.cpp index 0deb1b7e44..7dd19ed130 100644 --- a/firmware/controllers/trigger/rpm_calculator.cpp +++ b/firmware/controllers/trigger/rpm_calculator.cpp @@ -39,6 +39,8 @@ extern WaveChart waveChart; #define TOP_DEAD_CENTER_MESSAGE "r" /** + * WARNING: this is a heavy method because 'getRpm()' is relatively heavy + * * @return -1 in case of isNoisySignal(), current RPM otherwise */ int getRpmE(Engine *engine) { @@ -83,6 +85,9 @@ bool isValidRpm(int rpm) { } #if (EFI_PROD_CODE || EFI_SIMULATOR) || defined(__DOXYGEN__) +/** + * WARNING: this is a heavy method because 'getRpm()' is relatively heavy + */ bool isCranking(void) { int rpm = getRpm(); return isCrankingR(rpm);