From 4e263b31e6ff209c862dd676af9a9ea980f9341c Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 21 Mar 2015 10:13:24 -0500 Subject: [PATCH] auto-sync --- firmware/config/engines/bmw_e34.cpp | 5 ++-- .../config/engines/citroenBerlingoTU3JP.cpp | 4 +-- firmware/config/engines/honda_accord.cpp | 4 +-- firmware/config/engines/mazda_626.cpp | 4 +-- firmware/controllers/settings.cpp | 26 +++++++++++++++---- firmware/controllers/settings.h | 1 + firmware/rusefi.cpp | 2 +- 7 files changed, 32 insertions(+), 14 deletions(-) diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index 454dcb17b5..8516a22953 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -14,14 +14,15 @@ #include "global.h" #include "bmw_e34.h" #include "thermistors.h" +#include "settings.h" EXTERN_ENGINE; void setBmwE34(DECLARE_ENGINE_PARAMETER_F) { board_configuration_s * boardConfiguration = &engineConfiguration->bc; -// engineConfiguration->algorithm = LM_PLAIN_MAF; - engineConfiguration->algorithm = LM_SPEED_DENSITY; +// setAlgorithm(LM_PLAIN_MAF); + setAlgorithm(LM_SPEED_DENSITY); engineConfiguration->injector.flow = 750; boardConfiguration->tunerStudioSerialSpeed = 38400; diff --git a/firmware/config/engines/citroenBerlingoTU3JP.cpp b/firmware/config/engines/citroenBerlingoTU3JP.cpp index b4595afd0b..838d2985aa 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.cpp +++ b/firmware/config/engines/citroenBerlingoTU3JP.cpp @@ -15,6 +15,7 @@ #include "engine_math.h" #include "thermistors.h" #include "citroenBerlingoTU3JP.h" +#include "settings.h" void setLCD(board_configuration_s *boardConfiguration) { boardConfiguration->HD44780_rs = GPIOE_7; @@ -99,10 +100,9 @@ void setCitroenBerlingoTU3JPConfiguration(DECLARE_ENGINE_PARAMETER_F) { /** * Algorithm Alpha-N setting */ - engineConfiguration->algorithm = LM_ALPHA_N; + setAlgorithm(LM_ALPHA_N); setFuelLoadBin(0, 100 PASS_ENGINE_PARAMETER); setFuelRpmBin(800, 7000 PASS_ENGINE_PARAMETER); - setTimingLoadBin(0, 100 PASS_ENGINE_PARAMETER); setTimingRpmBin(800, 7000 PASS_ENGINE_PARAMETER); /** diff --git a/firmware/config/engines/honda_accord.cpp b/firmware/config/engines/honda_accord.cpp index e3ab47fdd0..a9210c6462 100644 --- a/firmware/config/engines/honda_accord.cpp +++ b/firmware/config/engines/honda_accord.cpp @@ -17,6 +17,7 @@ #include "thermistors.h" #include "honda_accord.h" #include "engine_math.h" +#include "settings.h" void setFrankenso_01_LCD(board_configuration_s *boardConfiguration) { boardConfiguration->HD44780_rs = GPIOE_7; @@ -51,9 +52,8 @@ static void setHondaAccordConfigurationCommon(DECLARE_ENGINE_PARAMETER_F) { // engineConfiguration->algorithm = LM_SPEED_DENSITY; // I want to start with a simple Alpha-N - engineConfiguration->algorithm = LM_ALPHA_N; + setAlgorithm(LM_ALPHA_N); setFuelLoadBin(0, 100 PASS_ENGINE_PARAMETER); - setTimingLoadBin(0, 100 PASS_ENGINE_PARAMETER); /** * 18K Ohm @ -20C diff --git a/firmware/config/engines/mazda_626.cpp b/firmware/config/engines/mazda_626.cpp index 4cd01750b1..63f5109923 100644 --- a/firmware/config/engines/mazda_626.cpp +++ b/firmware/config/engines/mazda_626.cpp @@ -14,6 +14,7 @@ #include "custom_engine.h" #include "allsensors.h" #include "fsio_impl.h" +#include "settings.h" EXTERN_ENGINE; @@ -41,9 +42,8 @@ void setMazda626EngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { engineConfiguration->tpsMin = 80; engineConfiguration->tpsMax = 764; - engineConfiguration->algorithm = LM_ALPHA_N; + setAlgorithm(LM_ALPHA_N); setFuelLoadBin(0, 100 PASS_ENGINE_PARAMETER); - setTimingLoadBin(0, 100 PASS_ENGINE_PARAMETER); // set_whole_fuel_map 9 setWholeFuelMap(9 PASS_ENGINE_PARAMETER); diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 31ce3e02ca..aa769aa856 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -21,6 +21,7 @@ #include "console_io.h" #include "engine.h" #include "efiGpio.h" +#include "engine_math.h" #if EFI_PROD_CODE || defined(__DOXYGEN__) #include "rusefi.h" @@ -38,7 +39,6 @@ extern int waveChartUsedSize; extern WaveChart waveChart; #endif /* EFI_WAVE_CHART */ - static char LOGGING_BUFFER[1000]; static Logging logger("settings control", LOGGING_BUFFER, sizeof(LOGGING_BUFFER)); @@ -99,7 +99,8 @@ static void printOutputs(engine_configuration_s *engineConfiguration) { scheduleMsg(&logger, "mainRelay: mode %s @ %s", getPin_output_mode_e(boardConfiguration->mainRelayPinMode), hwPortname(boardConfiguration->mainRelayPin)); - scheduleMsg(&logger, "alternator field: mode %s @ %s", getPin_output_mode_e(boardConfiguration->alternatorControlPinMode), + scheduleMsg(&logger, "alternator field: mode %s @ %s", + getPin_output_mode_e(boardConfiguration->alternatorControlPinMode), hwPortname(boardConfiguration->alternatorControlPin)); } @@ -433,8 +434,23 @@ static void setCrankingRpm(int value) { doPrintConfiguration(engine); } -static void setAlgorithm(int value) { - engineConfiguration->algorithm = (engine_load_mode_e) value; +/** + * this method sets algorithm and ignition table scale + */ +void setAlgorithm(engine_load_mode_e algo) { + engineConfiguration->algorithm = algo; + if (algo == LM_ALPHA_N) { + setTimingLoadBin(0, 100 PASS_ENGINE_PARAMETER); + } else if (algo == LM_SPEED_DENSITY) { + setTimingLoadBin(0, 160 PASS_ENGINE_PARAMETER); + } +} + +/** + * this method is used in console - it also prints current configuration + */ +static void setAlgorithmInt(int value) { + setAlgorithmInt((engine_load_mode_e) value); doPrintConfiguration(engine); } @@ -921,7 +937,7 @@ void initSettings(engine_configuration_s *engineConfiguration) { addConsoleActionI("set_rpm_hard_limit", setRpmHardLimit); addConsoleActionI("set_firing_order", setFiringOrder); - addConsoleActionI("set_algorithm", setAlgorithm); + addConsoleActionI("set_algorithm", setAlgorithmInt); addConsoleAction("stopengine", (Void) stopEngine); // todo: refactor this - looks like all boolean flags should be controlled with less code duplication diff --git a/firmware/controllers/settings.h b/firmware/controllers/settings.h index b539d6578c..88e5cebeb7 100644 --- a/firmware/controllers/settings.h +++ b/firmware/controllers/settings.h @@ -12,6 +12,7 @@ #include "engine.h" void initSettings(engine_configuration_s *engineConfiguration); +void setAlgorithm(engine_load_mode_e algo); void printSpiState(Logging *logger, board_configuration_s *boardConfiguration); void printConfiguration(engine_configuration_s *engineConfiguration); void stopEngine(void); diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 124b5e38bf..7fed271bf1 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -276,5 +276,5 @@ int getRusEfiVersion(void) { return 1; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE[0] == 0) return 1; // this is here to make the compiler happy about the unused array - return 20150319; + return 20150321; }