From 4bfab7257ed96068b97d388da486e104ba781151 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Fri, 13 Jan 2017 00:03:30 -0500 Subject: [PATCH] auto-sync --- .../controllers/algo/auto_generated_enums.cpp | 2 ++ ...ngine_configuration_generated_structures.h | 20 +++++++++---------- firmware/controllers/algo/firing_order.h | 1 + firmware/controllers/math/engine_math.cpp | 3 +++ firmware/integration/rusefi_config.txt | 2 +- firmware/tunerstudio/rusefi.ini | 18 ++++++++--------- 6 files changed, 26 insertions(+), 20 deletions(-) diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index ec9ca30f3b..4d92795117 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -380,6 +380,8 @@ case FO_1_2_3_4_5_6: return "FO_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6"; case FO_1: return "FO_ONE_CYLINDER"; +case FO_1_6_3_2_5_4: + return "FO_1_6_3_2_5_4"; case FO_1_2_3: return "FO_1_2_3"; case FO_1_8_7_2_6_5_4_3: diff --git a/firmware/controllers/algo/engine_configuration_generated_structures.h b/firmware/controllers/algo/engine_configuration_generated_structures.h index 3a15fff964..3f5807dfd8 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 Tue Dec 27 23:08:47 EST 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jan 12 23:31:45 EST 2017 // begin #ifndef ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_ @@ -33,7 +33,7 @@ typedef struct { float baseFuel; /** * Cranking mode threshold. Special cranking logic controls fuel and spark while RPM is below this threshold - * set_cranking_rpm X + * set cranking_rpm X * offset 4 */ int16_t rpm; @@ -222,7 +222,7 @@ typedef struct { */ typedef struct { /** - * set_trigger_type X + * set trigger_type X * offset 0 */ trigger_type_e type; @@ -929,7 +929,7 @@ typedef struct { /** * While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft * degrees, not in absolute time as in running mode. - * set_cranking_charge_angle X + * set cranking_charge_angle X * offset 108 */ float crankingChargeAngle; @@ -994,7 +994,7 @@ typedef struct { int rpmHardLimit; /** * This setting controls which fuel quantity control algorithm is used. - * set_algorithm X + * set algorithm X * offset 424 */ engine_load_mode_e fuelAlgorithm; @@ -1004,7 +1004,7 @@ typedef struct { injection_mode_e crankingInjectionMode; /** * 'batched' means two injectors are wired together - * set_injection_mode X + * set injection_mode X * offset 432 */ injection_mode_e injectionMode; @@ -1017,13 +1017,13 @@ typedef struct { angle_t extraInjectionOffset; /** * Timing advance while engine cranking - * set_cranking_timing_angle X + * set cranking_timing_angle X * offset 440 */ angle_t crankingTimingAngle; /** * 'wasted' means one coil is driving two spark plugs in two cylinders, with one of the aparks not doing anything since it's happening on the exhaust cycle - * set_ignition_mode X + * set ignition_mode X * offset 444 */ ignition_mode_e ignitionMode; @@ -1045,7 +1045,7 @@ typedef struct { /** * Angle between Top Dead Center (TDC) and the first trigger event. * Knowing this angle allows us to control timing and other angles in reference to TDC. - * set_global_trigger_offset_angle X + * set global_trigger_offset_angle X * offset 460 */ angle_t globalTriggerAngleOffset; @@ -2006,4 +2006,4 @@ typedef struct { #endif // end -// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Dec 27 23:08:47 EST 2016 +// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jan 12 23:31:45 EST 2017 diff --git a/firmware/controllers/algo/firing_order.h b/firmware/controllers/algo/firing_order.h index 466e5738e6..628ab33a91 100644 --- a/firmware/controllers/algo/firing_order.h +++ b/firmware/controllers/algo/firing_order.h @@ -36,6 +36,7 @@ typedef enum { FO_1_5_3_6_2_4 = 4, FO_1_4_2_5_3_6 = 7, FO_1_2_3_4_5_6 = 9, + FO_1_6_3_2_5_4 = 13, // EG33 Force_4b_firing_order = ENUM_32_BITS, } firing_order_e; diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index df0a78bc6b..0958dcb601 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -289,6 +289,7 @@ static int order_1_2_4_5_3[] = {1, 2, 4, 5, 3}; static int order_1_THEN_5_THEN_3_THEN_6_THEN_2_THEN_4[] = { 1, 5, 3, 6, 2, 4 }; static int order_1_THEN_4_THEN_2_THEN_5_THEN_3_THEN_6[] = { 1, 4, 2, 5, 3, 6 }; static int order_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6[] = { 1, 2, 3, 4, 5, 6 }; +static int order_1_6_3_2_5_4[] = {1, 6, 3, 2, 5, 4}; static int order_1_8_4_3_6_5_7_2[] = { 1, 8, 4, 3, 6, 5, 7, 2 }; @@ -332,6 +333,8 @@ int getCylinderId(firing_order_e firingOrder, int index) { return order_1_THEN_4_THEN_2_THEN_5_THEN_3_THEN_6[index]; case FO_1_2_3_4_5_6: return order_1_THEN_2_THEN_3_THEN_4_THEN_5_THEN_6[index]; + case FO_1_6_3_2_5_4: + return order_1_6_3_2_5_4[index]; // 8 cylinder case FO_1_8_4_3_6_5_7_2: diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 5de42790af..70f40f1d69 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -259,7 +259,7 @@ cylinders_count_t cylindersCount; ! FO_1_8_4_3_6_5_7_2 = 5 ! FO_1_2_4_5_3 = 6 -custom firing_order_e 4 bits, U32, @OFFSET@, [0:3], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "fo13", "fo14", "INVALID" +custom firing_order_e 4 bits, U32, @OFFSET@, [0:3], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "fo14", "INVALID" firing_order_e firingOrder; end_struct diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index ea1cc3e069..9580031f43 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 Thu Jan 05 20:49:12 EST 2017 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jan 12 23:31:45 EST 2017 pageSize = 16376 page = 1 @@ -123,7 +123,7 @@ page = 1 sparkDwell = array, F32, 368, [8], "ms", 1, 0.0, 0.0, 30.0, 2 displacement = scalar, F32, 400, "L", 1, 0, 0, 1000.0, 2 cylindersCount = bits, U32, 404, [0:3], "INVALID", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "INVALID", "INVALID", "INVALID" - firingOrder = bits, U32, 408, [0:3], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "fo13", "fo14", "INVALID" + firingOrder = bits, U32, 408, [0:3], "One Cylinder", "1-3-4-2", "1-2-4-3", "1-3-2-4", "1-5-3-6-2-4", "1-8-4-3-6-5-7-2", "1-2-4-5-3", "1-4-2-5-3-6", "1-2", "1_2_3_4_5_6", "1-2-3", "1-8-7-2-6-5-4-3", "1-5-4-2-6-3-7-8", "1-6-3-2-5-4", "fo14", "INVALID" cylinderBore = scalar, F32, 412, "mm", 1, 0, 0, 20000.0, 2 sensorSnifferRpmThreshold = scalar, S32, 416, "RPM", 1, 0, 0,30000, 0 rpmHardLimit = scalar, S32, 420, "rpm", 1, 0, 0, 20000.0, 2 @@ -713,19 +713,19 @@ page = 1 injector_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" directSelfStimulation = "Should trigger emulator push data right into trigger handling logic, eliminating the need for physical jumper wires?\nPS: Funny name, right? :)" cranking_baseFuel = "Fuel squirt duration while cranking\nA number of curves adjust this value according to CLT/IAT/TPS etc" - cranking_rpm = "Cranking mode threshold. Special cranking logic controls fuel and spark while RPM is below this threshold\nset_cranking_rpm X" - crankingChargeAngle = "While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft\ndegrees, not in absolute time as in running mode.\nset_cranking_charge_angle X" + cranking_rpm = "Cranking mode threshold. Special cranking logic controls fuel and spark while RPM is below this threshold\nset cranking_rpm X" + crankingChargeAngle = "While cranking (which causes battery voltage to drop) we can calculate dwell time in shaft\ndegrees, not in absolute time as in running mode.\nset cranking_charge_angle X" knockBandCustom = "kHz knock band override" cylinderBore = "Cylinder diameter, in mm." sensorSnifferRpmThreshold = "Disable sensor sniffer above this rpm" - fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nset_algorithm X" - injectionMode = "'batched' means two injectors are wired together\nset_injection_mode X" + fuelAlgorithm = "This setting controls which fuel quantity control algorithm is used.\nset algorithm X" + injectionMode = "'batched' means two injectors are wired together\nset injection_mode X" extraInjectionOffset = "this is about deciding when the injector starts it's squirt\nSee also injectionPhase map\ntodo: do we need even need this since we have the map anyway?" - crankingTimingAngle = "Timing advance while engine cranking\nset_cranking_timing_angle X" - ignitionMode = "'wasted' means one coil is driving two spark plugs in two cylinders, with one of the aparks not doing anything since it's happening on the exhaust cycle\nset_ignition_mode X" + crankingTimingAngle = "Timing advance while engine cranking\nset cranking_timing_angle X" + ignitionMode = "'wasted' means one coil is driving two spark plugs in two cylinders, with one of the aparks not doing anything since it's happening on the exhaust cycle\nset ignition_mode X" ignitionOffset = "this value could be used to offset the whole ignition timing table by a constant" fixedModeTiming = "This value is used in 'fixed timing' mode, i.e. constant timing\nThis mode is useful for instance while adjusting distributor location" - globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nKnowing this angle allows us to control timing and other angles in reference to TDC.\nset_global_trigger_offset_angle X" + globalTriggerAngleOffset = "Angle between Top Dead Center (TDC) and the first trigger event.\nKnowing this angle allows us to control timing and other angles in reference to TDC.\nset global_trigger_offset_angle X" analogInputDividerCoefficient = "Coefficient of input voltage dividers on your PCB" vbattDividerCoeff = "Battery Voltage input resistor divider coefficient" fanOnTemperature = "Cooling fan turn-on temperature threshold, in Celsuis"