diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index ab5ae3e4bd..8aece066c8 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -259,6 +259,8 @@ const char *getFiring_order_e(firing_order_e value){ switch(value) { case FO_1_2_4_5_3: return "FO_1_2_4_5_3"; +case FO_1_THEN_2: + return "FO_1_THEN_2"; case FO_1_8_4_3_6_5_7_2: return "FO_1_8_4_3_6_5_7_2"; case FO_1_THEN_2_THEN_4_THEN3: @@ -345,17 +347,6 @@ case SPI_NONE: } return NULL; } -const char *getInternal_error_e(internal_error_e value){ -switch(value) { -case Force_4b_cranking_internal_error: - return "Force_4b_cranking_internal_error"; -case IE_NO_ERROR: - return "IE_NO_ERROR"; -case IE_UNEXPECTED_FIRING_ORDER: - return "IE_UNEXPECTED_FIRING_ORDER"; - } - return NULL; -} const char *getAdc_channel_e(adc_channel_e value){ switch(value) { case EFI_ADC_0: diff --git a/firmware/controllers/algo/auto_generated_enums.h b/firmware/controllers/algo/auto_generated_enums.h index a56cd3be1d..bdb7e7d183 100644 --- a/firmware/controllers/algo/auto_generated_enums.h +++ b/firmware/controllers/algo/auto_generated_enums.h @@ -27,7 +27,6 @@ const char *getIgnition_mode_e(ignition_mode_e value); const char *getInjection_mode_e(injection_mode_e value); const char *getCranking_ignition_mode_e(cranking_ignition_mode_e value); const char *getSpi_device_e(spi_device_e value); -const char *getInternal_error_e(internal_error_e value); const char *getAdc_channel_e(adc_channel_e value); const char *getEgo_sensor_e(ego_sensor_e value); const char *getBrain_pin_e(brain_pin_e value); diff --git a/firmware/controllers/algo/rusefi_enums.h b/firmware/controllers/algo/rusefi_enums.h index 3a3f01d9d4..6a0de58d15 100644 --- a/firmware/controllers/algo/rusefi_enums.h +++ b/firmware/controllers/algo/rusefi_enums.h @@ -253,6 +253,10 @@ typedef enum { typedef enum { FO_ONE_CYLINDER = 0, + + // 2 cylinder + FO_1_THEN_2 = 8, + // 4 cylinder FO_1_THEN_3_THEN_4_THEN2 = 1, FO_1_THEN_2_THEN_4_THEN3 = 2, @@ -324,13 +328,6 @@ typedef enum { Force_4b_spi_device = ENUM_32_BITS, } spi_device_e; -typedef enum { - IE_NO_ERROR = 0, - IE_UNEXPECTED_FIRING_ORDER = 1, - - Force_4b_cranking_internal_error = ENUM_32_BITS, -} internal_error_e; - typedef enum { EFI_ADC_0 = 0, EFI_ADC_1 = 1, diff --git a/firmware/controllers/math/engine_math.cpp b/firmware/controllers/math/engine_math.cpp index b45483e8bb..49ce26f900 100644 --- a/firmware/controllers/math/engine_math.cpp +++ b/firmware/controllers/math/engine_math.cpp @@ -284,6 +284,8 @@ static int order_1_THEN_4_THEN_2_THEN_5_THEN_3_THEN_6[] = { 1, 4, 2, 5, 3, 6 }; static int order_1_8_4_3_6_5_7_2[] = { 1, 8, 4, 3, 6, 5, 7, 2 }; +static int order_1_2[] = {1, 2}; + /** * @param index from zero to cylindersCount - 1 * @return cylinderId from one to cylindersCount @@ -305,6 +307,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_8_4_3_6_5_7_2: return order_1_8_4_3_6_5_7_2[index]; + case FO_1_THEN_2: + return order_1_2[index]; default: warning(OBD_PCM_Processor_Fault, "getCylinderId not supported for %d", firingOrder); diff --git a/firmware/rusefi_config.ini b/firmware/rusefi_config.ini index f62858832d..755a9d0064 100644 --- a/firmware/rusefi_config.ini +++ b/firmware/rusefi_config.ini @@ -155,7 +155,7 @@ float displacement;Engine displacement, in liters\nsee also cylindersCount;"L", custom cylinders_count_t 4 bits, U32, @OFFSET@, [0:3], "INVALID", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "INVALID", "INVALID", "INVALID" cylinders_count_t cylindersCount; -custom firing_order_e 4 bits, U32, @OFFSET@, [0:2], "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", "INVALID", "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-5-3-6-2-4", "1-4-2-5-3-6", "1-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" firing_order_e firingOrder; end_struct diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index f92239604f..0a87bfd450 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -37,7 +37,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated by ConfigDefinition.jar on Fri Feb 20 16:22:16 EST 2015 +; this section was generated by ConfigDefinition.jar on Wed Feb 25 19:12:49 EST 2015 pageSize = 15160 page = 1 @@ -98,7 +98,7 @@ page = 1 fixedModeTiming = scalar, F32, 664, "RPM", 1, 0, 0, 3000.0, 0 displacement = scalar, F32, 668, "L", 1, 0, 0, 1000.0, 2 cylindersCount = bits, U32, 672, [0:3], "INVALID", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, "INVALID", "INVALID", "INVALID" - firingOrder = bits, U32, 676, [0:2], "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", "INVALID", "INVALID" + firingOrder = bits, U32, 676, [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-5-3-6-2-4", "1-4-2-5-3-6", "1-2", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" rpmHardLimit = scalar, S32, 680, "rpm", 1, 0, 0, 10000.0, 2 ;skipping crankingInjectionMode offset 684 ;skipping injectionMode offset 688