From b47f20482d6fd35367bb33213f8d4dd7ef76ac4c Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sat, 17 Sep 2016 16:02:56 -0400 Subject: [PATCH] auto-sync --- firmware/config/engines/dodge_neon.cpp | 6 ++++ ...ngine_configuration_generated_structures.h | 36 ++++++++++++++++--- firmware/controllers/algo/rusefi_generated.h | 12 +++++-- firmware/controllers/math/biquad.cpp | 14 ++++---- firmware/integration/rusefi_config.txt | 14 ++++++-- firmware/tunerstudio/rusefi.ini | 21 ++++++++--- firmware/tunerstudio/rusefi.input | 8 ++++- .../models/src/com/rusefi/config/Fields.java | 21 ++++++++--- 8 files changed, 106 insertions(+), 26 deletions(-) diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index 581c3b67f0..f8b7bcfd5f 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -286,6 +286,12 @@ void setDodgeNeonNGCEngineConfiguration(DECLARE_ENGINE_PARAMETER_F) { */ engineConfiguration->cranking.baseFuel = 5; + engineConfiguration->biQuad.a0 = 0.0000024635293743901; + engineConfiguration->biQuad.a1 = 0.00000492705874878021; + engineConfiguration->biQuad.a2 = 0.0000024635293743901; + engineConfiguration->biQuad.b1 = -1.9968534854; + engineConfiguration->biQuad.b2 = 0.9968633396; + /** * 77C * 1200 rpm diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 3babfc9f6f..3f9a9c606b 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 Mon Sep 12 21:38:15 EDT 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Sep 17 14:41:13 EDT 2016 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -194,6 +194,30 @@ typedef struct { /** total size 72*/ } injector_s; +typedef struct { + /** + * offset 0 + */ + float a0; + /** + * offset 4 + */ + float a1; + /** + * offset 8 + */ + float a2; + /** + * offset 12 + */ + float b1; + /** + * offset 16 + */ + float b2; + /** total size 20*/ +} bi_quard_s; + typedef struct { /** * Engine displacement, in liters @@ -816,7 +840,7 @@ typedef struct { bool isVerboseAuxPid4 : 1; /** offset 80 bit 9 */ - bool issue_294_9 : 1; + bool useBiQuadAnalogFiltering : 1; /** offset 80 bit 10 */ bool issue_294_10 : 1; @@ -1716,7 +1740,11 @@ typedef struct { /** * offset 2556 */ - int unused[123]; + bi_quard_s biQuad; + /** + * offset 2576 + */ + int unused[118]; /** total size 3048*/ } engine_configuration_s; @@ -1931,4 +1959,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Sep 12 21:38:15 EDT 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Sep 17 14:41:13 EDT 2016 diff --git a/firmware/controllers/algo/rusefi_generated.h b/firmware/controllers/algo/rusefi_generated.h index 7afcd909c6..96a7809428 100644 --- a/firmware/controllers/algo/rusefi_generated.h +++ b/firmware/controllers/algo/rusefi_generated.h @@ -62,8 +62,8 @@ #define activateAuxPid4_offset_hex 50 #define isVerboseAuxPid4_offset 80 #define isVerboseAuxPid4_offset_hex 50 -#define issue_294_9_offset 80 -#define issue_294_9_offset_hex 50 +#define useBiQuadAnalogFiltering_offset 80 +#define useBiQuadAnalogFiltering_offset_hex 50 #define issue_294_10_offset 80 #define issue_294_10_offset_hex 50 #define issue_294_11_offset 80 @@ -882,7 +882,13 @@ #define auxPid4_dFactor_offset 2544 #define auxPid4_offset_offset 2548 #define vvtMode_offset 2552 -#define unused_offset 2556 +#define biQuad_offset 2556 +#define biQuad_a0_offset 2556 +#define biQuad_a1_offset 2560 +#define biQuad_a2_offset 2564 +#define biQuad_b1_offset 2568 +#define biQuad_b2_offset 2572 +#define unused_offset 2576 #define le_formulas1_offset 3048 #define le_formulas2_offset 3248 #define le_formulas3_offset 3448 diff --git a/firmware/controllers/math/biquad.cpp b/firmware/controllers/math/biquad.cpp index 103690cb18..2c834752c2 100644 --- a/firmware/controllers/math/biquad.cpp +++ b/firmware/controllers/math/biquad.cpp @@ -7,20 +7,22 @@ #include "biquad.h" +EXTERN_ENGINE; + Biquad::Biquad() { a0 = a1 = a2 = b1 = b2; z1 = z2 = 0; } void Biquad::initValue(float input DECLARE_ENGINE_PARAMETER_S) { - a0 = 0.0000024635293743901; - a1 = 0.00000492705874878021; - a2 = 0.0000024635293743901; - b1 = -1.9968534854; - b2 = 0.9968633396; + a0 = engineConfiguration->biQuad.a0; + a1 = engineConfiguration->biQuad.a1; + a2 = engineConfiguration->biQuad.a2; + b1 = engineConfiguration->biQuad.b1; + b2 = engineConfiguration->biQuad.b2; z1 = input * (1 - a0); - z2 = input * (1 - a0 - a1 + b1); + z2 = input * (1 - a0 - a1 + b1); } float Biquad::getValue(float input) { diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 4d12630e0d..c63f6986c3 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -183,6 +183,15 @@ float[VBAT_INJECTOR_CURVE_SIZE] battLagCorr;;"ms/V", 1, 0, 0.0, end_struct +struct bi_quard_s + float a0;;"v", 1, 0, -1000, 1000, 9 + float a1;;"v", 1, 0, -1000, 1000, 9 + float a2;;"v", 1, 0, -1000, 1000, 9 + float b1;;"v", 1, 0, -1000, 1000, 9 + float b2;;"v", 1, 0, -1000, 1000, 9 + +end_struct + injector_s injector @@ -195,7 +204,7 @@ bit activateAuxPid3; bit isVerboseAuxPid3; bit activateAuxPid4; bit isVerboseAuxPid4; -bit issue_294_9; +bit useBiQuadAnalogFiltering; bit issue_294_10; bit issue_294_11; bit issue_294_12; @@ -736,7 +745,8 @@ float[MAP_ACCEL_TAPER] mapAccelTaperMult;;"mult", 1, 0, 0.0, 300, pin_output_mode_e cj125CsPinMode; pid_s[AUX_PID_COUNT iterate] auxPid; vvt_mode_e vvtMode; - int[123] unused; + bi_quard_s biQuad; + int[118] unused; end_struct diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 72327aba81..8029730e61 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -42,7 +42,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Mon Sep 12 21:38:15 EDT 2016 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Sep 17 14:41:13 EDT 2016 pageSize = 16376 page = 1 @@ -61,7 +61,7 @@ page = 1 isVerboseAuxPid3 = bits, U32, 80, [6:6], "false", "true" activateAuxPid4 = bits, U32, 80, [7:7], "false", "true" isVerboseAuxPid4 = bits, U32, 80, [8:8], "false", "true" - issue_294_9 = bits, U32, 80, [9:9], "false", "true" + useBiQuadAnalogFiltering= bits, U32, 80, [9:9], "false", "true" issue_294_10 = bits, U32, 80, [10:10], "false", "true" issue_294_11 = bits, U32, 80, [11:11], "false", "true" issue_294_12 = bits, U32, 80, [12:12], "false", "true" @@ -614,7 +614,12 @@ page = 1 auxPid4_dFactor = scalar, F32, 2544, "value", 1, 0, 0, 1000, 5 auxPid4_offset = scalar, F32, 2548, "value", 1, 0, 0, 1000, 3 vvtMode = bits, U32, 2552, [0:1], "First half", "Second half", "2GZ", "mode3" -;skipping unused offset 2556 + biQuad_a0 = scalar, F32, 2556, "v", 1, 0, -1000, 1000, 9 + biQuad_a1 = scalar, F32, 2560, "v", 1, 0, -1000, 1000, 9 + biQuad_a2 = scalar, F32, 2564, "v", 1, 0, -1000, 1000, 9 + biQuad_b1 = scalar, F32, 2568, "v", 1, 0, -1000, 1000, 9 + biQuad_b2 = scalar, F32, 2572, "v", 1, 0, -1000, 1000, 9 +;skipping unused offset 2576 le_formulas1 = array, U08, 3048, [200],"char", 1, 0, 0.0, 3.0, 2 le_formulas2 = array, U08, 3248, [200],"char", 1, 0, 0.0, 3.0, 2 le_formulas3 = array, U08, 3448, [200],"char", 1, 0, 0.0, 3.0, 2 @@ -1462,7 +1467,7 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" field = "#Cam is primary if you have cam sensor" field = "Primary input channel", triggerInputPins1 field = "Secondary channel", triggerInputPins2 - field = "CAM input", camInput + field = "VVT input", camInput field = "VVT mode", vvtMode, {trigger_type != 80} field = "VVT use rise front", vvtCamSensorUseRise, {trigger_type != 80} field = "Trigger error LED", triggerErrorPin @@ -1777,7 +1782,13 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" field = "MAF ADC input", mafAdcChannel field = "Baro ADC input", baroSensor_hwChannel field = "Analog divider", analogInputDividerCoefficient - field = "Smoothing factor", slowAdcAlpha + field = "Use BiQuad averaging", useBiQuadAnalogFiltering + field = "Smoothing factor", slowAdcAlpha, {useBiQuadAnalogFiltering == 0} + field = "Bi_Q a0", biQuad_a0, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q a1", biQuad_a1, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q a2", biQuad_a2, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q b1", biQuad_b1, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q b2", biQuad_b2, {useBiQuadAnalogFiltering == 1} dialog = tachSettings, "Tachometer output" field = "!See also dizzySparkOutputPin" diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index b890fde9c4..f79221cc09 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -1755,7 +1755,13 @@ cmd_test_idle_valve = "w\x00\x17\x00\x01" field = "MAF ADC input", mafAdcChannel field = "Baro ADC input", baroSensor_hwChannel field = "Analog divider", analogInputDividerCoefficient - field = "Smoothing factor", slowAdcAlpha + field = "Use BiQuad averaging", useBiQuadAnalogFiltering + field = "Smoothing factor", slowAdcAlpha, {useBiQuadAnalogFiltering == 0} + field = "Bi_Q a0", biQuad_a0, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q a1", biQuad_a1, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q a2", biQuad_a2, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q b1", biQuad_b1, {useBiQuadAnalogFiltering == 1} + field = "Bi_Q b2", biQuad_b2, {useBiQuadAnalogFiltering == 1} dialog = tachSettings, "Tachometer output" field = "!See also dizzySparkOutputPin" diff --git a/java_console/models/src/com/rusefi/config/Fields.java b/java_console/models/src/com/rusefi/config/Fields.java index adb5ad1b0a..9d9fa6f5d4 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 Sun Sep 11 20:11:57 EDT 2016 +// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sat Sep 17 14:41:13 EDT 2016 public class Fields { public static final int LE_COMMAND_LENGTH = 200; public static final int FSIO_ADC_COUNT = 4; @@ -66,8 +66,8 @@ public class Fields { public static final int activateAuxPid4_offset_hex = 50; public static final int isVerboseAuxPid4_offset = 80; public static final int isVerboseAuxPid4_offset_hex = 50; - public static final int issue_294_9_offset = 80; - public static final int issue_294_9_offset_hex = 50; + public static final int useBiQuadAnalogFiltering_offset = 80; + public static final int useBiQuadAnalogFiltering_offset_hex = 50; public static final int issue_294_10_offset = 80; public static final int issue_294_10_offset_hex = 50; public static final int issue_294_11_offset = 80; @@ -886,7 +886,13 @@ public class Fields { public static final int auxPid4_dFactor_offset = 2544; public static final int auxPid4_offset_offset = 2548; public static final int vvtMode_offset = 2552; - public static final int unused_offset = 2556; + public static final int biQuad_offset = 2556; + public static final int biQuad_a0_offset = 2556; + public static final int biQuad_a1_offset = 2560; + public static final int biQuad_a2_offset = 2564; + public static final int biQuad_b1_offset = 2568; + public static final int biQuad_b2_offset = 2572; + public static final int unused_offset = 2576; public static final int le_formulas1_offset = 3048; public static final int le_formulas2_offset = 3248; public static final int le_formulas3_offset = 3448; @@ -977,7 +983,7 @@ public class Fields { public static final Field ISVERBOSEAUXPID3 = Field.create("ISVERBOSEAUXPID3", 80, FieldType.BIT, 6); public static final Field ACTIVATEAUXPID4 = Field.create("ACTIVATEAUXPID4", 80, FieldType.BIT, 7); public static final Field ISVERBOSEAUXPID4 = Field.create("ISVERBOSEAUXPID4", 80, FieldType.BIT, 8); - public static final Field ISSUE_294_9 = Field.create("ISSUE_294_9", 80, FieldType.BIT, 9); + public static final Field USEBIQUADANALOGFILTERING = Field.create("USEBIQUADANALOGFILTERING", 80, FieldType.BIT, 9); public static final Field ISSUE_294_10 = Field.create("ISSUE_294_10", 80, FieldType.BIT, 10); public static final Field ISSUE_294_11 = Field.create("ISSUE_294_11", 80, FieldType.BIT, 11); public static final Field ISSUE_294_12 = Field.create("ISSUE_294_12", 80, FieldType.BIT, 12); @@ -1518,6 +1524,11 @@ public class Fields { public static final Field AUXPID4_OFFSET = Field.create("AUXPID4_OFFSET", 2548, FieldType.FLOAT); public static final String[] vvt_mode_e = {"First half", "Second half", "2GZ", "mode3"}; public static final Field VVTMODE = Field.create("VVTMODE", 2552, FieldType.INT, vvt_mode_e); + public static final Field BIQUAD_A0 = Field.create("BIQUAD_A0", 2556, FieldType.FLOAT); + public static final Field BIQUAD_A1 = Field.create("BIQUAD_A1", 2560, FieldType.FLOAT); + public static final Field BIQUAD_A2 = Field.create("BIQUAD_A2", 2564, FieldType.FLOAT); + public static final Field BIQUAD_B1 = Field.create("BIQUAD_B1", 2568, FieldType.FLOAT); + public static final Field BIQUAD_B2 = Field.create("BIQUAD_B2", 2572, FieldType.FLOAT); public static final Field LE_FORMULAS1 = Field.create("LE_FORMULAS1", 3048, FieldType.INT); public static final Field LE_FORMULAS2 = Field.create("LE_FORMULAS2", 3248, FieldType.INT); public static final Field LE_FORMULAS3 = Field.create("LE_FORMULAS3", 3448, FieldType.INT);