From 6bdbacb5db9d08b8b2961d3c09425711b406f2e2 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sun, 24 Jul 2016 23:02:52 -0400 Subject: [PATCH] auto-sync --- firmware/config/engines/bmw_e34.cpp | 3 ++- firmware/controllers/algo/engine_configuration.cpp | 1 - .../algo/engine_configuration_generated_structures.h | 6 +++--- firmware/controllers/algo/fuel_math.cpp | 4 ++-- firmware/controllers/math/engine_math.cpp | 6 ++++++ firmware/controllers/math/engine_math.h | 1 + firmware/controllers/settings.cpp | 4 ---- firmware/integration/rusefi_config.txt | 2 +- firmware/tunerstudio/rusefi.input | 4 ++-- java_console/models/src/com/rusefi/config/Fields.java | 6 +++--- unit_tests/test_fuel_map.cpp | 9 ++++----- unit_tests/test_trigger_decoder.cpp | 2 +- 12 files changed, 25 insertions(+), 23 deletions(-) diff --git a/firmware/config/engines/bmw_e34.cpp b/firmware/config/engines/bmw_e34.cpp index f8d04db771..e35e20596f 100644 --- a/firmware/config/engines/bmw_e34.cpp +++ b/firmware/config/engines/bmw_e34.cpp @@ -52,7 +52,8 @@ void setBmwE34(DECLARE_ENGINE_PARAMETER_F) { // Injection settings - engineConfiguration->injector.lag = 1.15; + setInjectorLag(1.15 PASS_ENGINE_PARAMETER); + engineConfiguration->injector.flow = 750; // General settings diff --git a/firmware/controllers/algo/engine_configuration.cpp b/firmware/controllers/algo/engine_configuration.cpp index b47e42d35c..e97f94ac03 100644 --- a/firmware/controllers/algo/engine_configuration.cpp +++ b/firmware/controllers/algo/engine_configuration.cpp @@ -323,7 +323,6 @@ void setDefaultConfiguration(DECLARE_ENGINE_PARAMETER_F) { boardConfiguration->startConsoleInBinaryMode = true; - engineConfiguration->injector.lag = 0.0; setBosch02880155868(PASS_ENGINE_PARAMETER_F); engineConfiguration->acCutoffLowRpm = 700; diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 07e6b8cf81..e3a1af1d60 100644 --- a/firmware/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Jul 23 20:32:57 EDT 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 24 22:10:22 EDT 2016 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -180,7 +180,7 @@ typedef struct { float flow; /** * Base injector lag - * See also vBatt correction curve + * See also extra vBatt correction curve * offset 4 */ float lag; @@ -1906,4 +1906,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Jul 23 20:32:57 EDT 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 24 22:10:22 EDT 2016 diff --git a/firmware/controllers/algo/fuel_math.cpp b/firmware/controllers/algo/fuel_math.cpp index 58e92a6b95..c81f5aa607 100644 --- a/firmware/controllers/algo/fuel_math.cpp +++ b/firmware/controllers/algo/fuel_math.cpp @@ -148,11 +148,11 @@ floatms_t getRunningFuel(floatms_t baseFuel, int rpm DECLARE_ENGINE_PARAMETER_S) floatms_t getInjectorLag(float vBatt DECLARE_ENGINE_PARAMETER_S) { if (cisnan(vBatt)) { warning(OBD_System_Voltage_Malfunction, "vBatt=%f", vBatt); - return engineConfiguration->injector.lag; + return 0; } float vBattCorrection = interpolate2d(vBatt, engineConfiguration->injector.battLagCorrBins, engineConfiguration->injector.battLagCorr, VBAT_INJECTOR_CURVE_SIZE); - return engineConfiguration->injector.lag + vBattCorrection; + return vBattCorrection; } /** diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index e9e311fb3f..2a2efc70a3 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -455,3 +455,9 @@ void setAlgorithm(engine_load_mode_e algo DECLARE_ENGINE_PARAMETER_S) { buildTimingMap(35 PASS_ENGINE_PARAMETER); } } + +void setInjectorLag(float value DECLARE_ENGINE_PARAMETER_S) { + for (int i=0;iinjector.battLagCorr[i] = value; + } +} diff --git a/firmware/controllers/math/engine_math.h b/firmware/controllers/math/engine_math.h index db7120493b..bcb6931372 100644 --- a/firmware/controllers/math/engine_math.h +++ b/firmware/controllers/math/engine_math.h @@ -30,6 +30,7 @@ void initializeIgnitionActions(angle_t advance, angle_t dwellAngle, #define assertAngleRange(angle) {} #endif +void setInjectorLag(float value DECLARE_ENGINE_PARAMETER_S); /** diff --git a/firmware/controllers/settings.cpp b/firmware/controllers/settings.cpp index 0fc3a3b2c2..1d3ecae86d 100644 --- a/firmware/controllers/settings.cpp +++ b/firmware/controllers/settings.cpp @@ -942,10 +942,6 @@ static void printAllInfo(void) { #endif } -static void setInjectorLag(float value) { - engineConfiguration->injector.lag = value; -} - static void getValue(const char *paramStr) { if (strEqualCaseInsensitive(paramStr, "warningPeriod")) { scheduleMsg(&logger, "warningPeriod=%d", engineConfiguration->warningPeriod); diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index e429ac6eca..29eaf4e7e5 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -172,7 +172,7 @@ int engineSnifferRpmThreshold;Engine sniffer would be disabled above this rpm;"R struct injector_s float flow;+cc/min, cubic centimeter per minute\nBy the way, g/s = 0.125997881 * (lb/hr)\ng/s = 0.125997881 * (cc/min)/10.5\ng/s = 0.0119997981 * cc/min;"cm3/min", 1, 0, 0, 1000, 2 - float lag;+Base injector lag\nSee also vBatt correction curve;"msec", 1, 0, -10, 25.50, 2 + float lag;+Base injector lag\nSee also extra vBatt correction curve;"msec", 1, 0, -10, 25.50, 2 float[VBAT_INJECTOR_CURVE_SIZE] battLagCorrBins;;"V", 1, 0, 0.0, 20.0, 2 float[VBAT_INJECTOR_CURVE_SIZE] battLagCorr;;"ms/V", 1, 0, 0.0, 50.0, 2 diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 4a4cb7415f..ba14fa8f02 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -897,7 +897,7 @@ fileVersion = { 20160702 } yBins = map_samplingWindow gauge = rpm - curve = injectorsDeadTime, "Injector Dead Time Battery Correction" + curve = injectorsDeadTime, "Injector Extra Dead Time Battery Correction" columnLabel = "Voltage", "Dead Time" xAxis = 8, 21, 10 yAxis = -3, 3, 10 @@ -1446,7 +1446,7 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" ; Engine->Injection Settings dialog = injChars, "Injector Settings", yAxis - field = "Injector Open Time", injector_lag + field = "Base Injector Dead Time", injector_lag field = "Injector Flow", injector_flow field = "phase offset", injectionOffset diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index 44779e0391..9d553d4b99 100644 --- a/java_console/models/src/com/rusefi/config/Fields.java +++ b/java_console/models/src/com/rusefi/config/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config; -// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Fri Jul 22 17:07:24 EDT 2016 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 24 22:23:59 EDT 2016 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int FSIO_ADC_COUNT = 4; @@ -43,7 +43,7 @@ public class Fields { public static final int injector_offset_hex = 8; public static final int injector_flow_offset = 8; public static final int injector_flow_offset_hex = 8; - public static final int injector_lag_offset = 12; + public static final int injector_unusedlag_offset = 12; public static final int injector_battLagCorrBins_offset = 16; public static final int injector_battLagCorrBins_offset_hex = 10; public static final int injector_battLagCorr_offset = 48; @@ -965,7 +965,7 @@ public class Fields { public static final Field ENGINETYPE = Field.create("ENGINETYPE", 0, FieldType.INT); public static final Field ENGINESNIFFERRPMTHRESHOLD = Field.create("ENGINESNIFFERRPMTHRESHOLD", 4, FieldType.INT); public static final Field INJECTOR_FLOW = Field.create("INJECTOR_FLOW", 8, FieldType.FLOAT); - public static final Field INJECTOR_LAG = Field.create("INJECTOR_LAG", 12, FieldType.FLOAT); + public static final Field INJECTOR_UNUSEDLAG = Field.create("INJECTOR_UNUSEDLAG", 12, FieldType.FLOAT); public static final Field DIRECTSELFSTIMULATION = Field.create("DIRECTSELFSTIMULATION", 80, FieldType.BIT, 0); public static final Field ACTIVATEAUXPID1 = Field.create("ACTIVATEAUXPID1", 80, FieldType.BIT, 1); public static final Field ISVERBOSEAUXPID1 = Field.create("ISVERBOSEAUXPID1", 80, FieldType.BIT, 2); diff --git a/unit_tests/test_fuel_map.cpp b/unit_tests/test_fuel_map.cpp index 9a5df34c7d..34ef096dd5 100644 --- a/unit_tests/test_fuel_map.cpp +++ b/unit_tests/test_fuel_map.cpp @@ -60,11 +60,9 @@ void testFuelMap(void) { printf("*** getInjectorLag\r\n"); assertEqualsM("lag", 1.04, getInjectorLag(12 PASS_ENGINE_PARAMETER)); - eth.engine.engineConfiguration->injector.lag = 0.5; - for (int i = 0; i < VBAT_INJECTOR_CURVE_SIZE; i++) { eth.engine.engineConfiguration->injector.battLagCorrBins[i] = i; - eth.engine.engineConfiguration->injector.battLagCorr[i] = 2 * i; + eth.engine.engineConfiguration->injector.battLagCorr[i] = 0.5 + 2 * i; } eth.engine.updateSlowSensors(PASS_ENGINE_PARAMETER_F); @@ -88,7 +86,8 @@ void testFuelMap(void) { eth.engine.config->cltFuelCorrBins[i] = i; eth.engine.config->cltFuelCorr[i] = 100; } - eth.engine.engineConfiguration->injector.lag = 0; + + setInjectorLag(0 PASS_ENGINE_PARAMETER); assertEquals(NAN, getIntakeAirTemperature(PASS_ENGINE_PARAMETER_F)); float iatCorrection = getIatCorrection(-KELV PASS_ENGINE_PARAMETER); @@ -96,7 +95,7 @@ void testFuelMap(void) { float cltCorrection = getCltCorrection(getCoolantTemperature(PASS_ENGINE_PARAMETER_F) PASS_ENGINE_PARAMETER); assertEqualsM("CLT", 1, cltCorrection); float injectorLag = getInjectorLag(getVBatt(PASS_ENGINE_PARAMETER_F) PASS_ENGINE_PARAMETER); - assertEquals(0, injectorLag); + assertEqualsM("injectorLag", 0, injectorLag); testMafValue = 5; diff --git a/unit_tests/test_trigger_decoder.cpp b/unit_tests/test_trigger_decoder.cpp index 0c4adf9b1c..12ced6665b 100644 --- a/unit_tests/test_trigger_decoder.cpp +++ b/unit_tests/test_trigger_decoder.cpp @@ -317,7 +317,7 @@ void testRpmCalculator(void) { // this is a very dirty and sad hack. todo: eliminate // engine.engineConfiguration = eth.engine.engineConfiguration; - eth.engine.engineConfiguration->injector.lag = -1.04; + setInjectorLag(0 PASS_ENGINE_PARAMETER); engine->updateSlowSensors(PASS_ENGINE_PARAMETER_F); timeNow = 0;