From 4ef5bf3d3415ac1e3b912e820ad950e83169c6f6 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 13 Dec 2020 22:48:42 +0000 Subject: [PATCH] Auto-generated configs and docs --- .../controllers/algo/auto_generated_enums.cpp | 6 +++--- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 8 ++++---- .../controllers/algo/auto_generated_enums.cpp | 6 +++--- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 8 ++++---- .../controllers/algo/auto_generated_enums.cpp | 6 +++--- ...ngine_configuration_generated_structures.h | 4 ++-- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 8 ++++---- .../controllers/generated/signature_all.h | 4 ++-- .../generated/signature_frankenso_na6.h | 4 ++-- .../generated/signature_hellen_cypress.h | 4 ++-- .../controllers/generated/signature_kin.h | 4 ++-- .../controllers/generated/signature_mre_f4.h | 4 ++-- .../controllers/generated/signature_mre_f7.h | 4 ++-- .../generated/signature_prometheus_405.h | 4 ++-- .../generated/signature_prometheus_469.h | 4 ++-- .../generated/signature_proteus_f4.h | 4 ++-- .../generated/signature_proteus_f7.h | 4 ++-- firmware/tunerstudio/generated/cache.zip | Bin 975885 -> 975975 bytes firmware/tunerstudio/generated/rusefi.ini | 6 +++--- .../generated/rusefi_frankenso_na6.ini | 6 +++--- .../generated/rusefi_hellen_cypress.ini | 6 +++--- .../tunerstudio/generated/rusefi_kinetis.ini | 6 +++--- .../tunerstudio/generated/rusefi_mre_f4.ini | 6 +++--- .../tunerstudio/generated/rusefi_mre_f7.ini | 6 +++--- .../generated/rusefi_prometheus_405.ini | 6 +++--- .../generated/rusefi_prometheus_469.ini | 6 +++--- .../generated/rusefi_proteus_f4.ini | 6 +++--- .../generated/rusefi_proteus_f7.ini | 6 +++--- .../com/rusefi/config/generated/Fields.java | 7 ++++--- java_console/rusefi.xml | 2 +- 36 files changed, 86 insertions(+), 85 deletions(-) diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp index 053fdfe6ee..78c5ea94f3 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 21:23:05 UTC 2020 +// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 22:48:04 UTC 2020 // see also gen_config_and_enums.bat @@ -1337,8 +1337,6 @@ case TT_36_2_2_2: return "TT_36_2_2_2"; case TT_3_1_CAM: return "TT_3_1_CAM"; -case TT_SUBARU_7_WITHOUT_6: - return "TT_SUBARU_7_WITHOUT_6"; case TT_52: return "TT_52"; case TT_60_2_VW: @@ -1417,6 +1415,8 @@ case TT_ROVER_K: return "TT_ROVER_K"; case TT_SUBARU_7_6: return "TT_SUBARU_7_6"; +case TT_SUBARU_7_WITHOUT_6: + return "TT_SUBARU_7_WITHOUT_6"; case TT_SUBARU_SVX: return "TT_SUBARU_SVX"; case TT_TOOTHED_WHEEL: diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h index 067cad0cec..bc579a40a9 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:25 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3782,4 +3782,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:25 UTC 2020 diff --git a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h index 389b9b5f71..501d6aac8a 100644 --- a/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/hellen/cypress/config/controllers/algo/rusefi_generated.h @@ -1225,7 +1225,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 26067044 +#define SIGNATURE_HASH 2221834029 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1422,7 +1422,7 @@ #define TRIGGER_SIMULATOR_PIN_COUNT 3 #define trigger_todoRemoveMeOneDay0_offset 528 #define trigger_todoRemoveMeOneDay1_offset 528 -#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED" +#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_SUBARU_7_WITHOUT_6", "TT_52", "TT_UNUSED" #define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID" #define trigger_type_offset 524 #define trigger_unusedBit_4_10_offset 528 @@ -1556,7 +1556,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.13.hellen_cypress.26067044" +#define TS_SIGNATURE "rusEFI 2020.12.13.hellen_cypress.2221834029" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1565,7 +1565,6 @@ #define TT_TT_2JZ_3_34 25 #define TT_TT_36_2_2_2 23 #define TT_TT_3_1_CAM 31 -#define TT_TT_51 51 #define TT_TT_52 52 #define TT_TT_60_2_VW 20 #define TT_TT_CHRYSLER_NGC_36_2_2 30 @@ -1591,6 +1590,7 @@ #define TT_TT_RENIX_66_2_2_2 45 #define TT_TT_ROVER_K 26 #define TT_TT_SUBARU_7_6 36 +#define TT_TT_SUBARU_7_WITHOUT_6 51 #define TT_TT_SUBARU_SVX 49 #define TT_TT_TOOTHED_WHEEL 0 #define TT_TT_TOOTHED_WHEEL_36_1 9 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp index 6a61278bea..8e1f750b61 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp +++ b/firmware/config/boards/kinetis/config/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 21:23:05 UTC 2020 +// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 22:48:03 UTC 2020 // see also gen_config_and_enums.bat @@ -1133,8 +1133,6 @@ case TT_36_2_2_2: return "TT_36_2_2_2"; case TT_3_1_CAM: return "TT_3_1_CAM"; -case TT_SUBARU_7_WITHOUT_6: - return "TT_SUBARU_7_WITHOUT_6"; case TT_52: return "TT_52"; case TT_60_2_VW: @@ -1213,6 +1211,8 @@ case TT_ROVER_K: return "TT_ROVER_K"; case TT_SUBARU_7_6: return "TT_SUBARU_7_6"; +case TT_SUBARU_7_WITHOUT_6: + return "TT_SUBARU_7_WITHOUT_6"; case TT_SUBARU_SVX: return "TT_SUBARU_SVX"; case TT_TOOTHED_WHEEL: diff --git a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h index 258ab46445..6cc665f861 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:11 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:23 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3782,4 +3782,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:11 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:23 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index 0a586a3b8e..b44d2afbcf 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -1225,7 +1225,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 1351744158 +#define SIGNATURE_HASH 3581035991 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1422,7 +1422,7 @@ #define TRIGGER_SIMULATOR_PIN_COUNT 3 #define trigger_todoRemoveMeOneDay0_offset 528 #define trigger_todoRemoveMeOneDay1_offset 528 -#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED" +#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_SUBARU_7_WITHOUT_6", "TT_52", "TT_UNUSED" #define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID" #define trigger_type_offset 524 #define trigger_unusedBit_4_10_offset 528 @@ -1556,7 +1556,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.13.kin.1351744158" +#define TS_SIGNATURE "rusEFI 2020.12.13.kin.3581035991" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1565,7 +1565,6 @@ #define TT_TT_2JZ_3_34 25 #define TT_TT_36_2_2_2 23 #define TT_TT_3_1_CAM 31 -#define TT_TT_51 51 #define TT_TT_52 52 #define TT_TT_60_2_VW 20 #define TT_TT_CHRYSLER_NGC_36_2_2 30 @@ -1591,6 +1590,7 @@ #define TT_TT_RENIX_66_2_2_2 45 #define TT_TT_ROVER_K 26 #define TT_TT_SUBARU_7_6 36 +#define TT_TT_SUBARU_7_WITHOUT_6 51 #define TT_TT_SUBARU_SVX 49 #define TT_TT_TOOTHED_WHEEL 0 #define TT_TT_TOOTHED_WHEEL_36_1 9 diff --git a/firmware/controllers/algo/auto_generated_enums.cpp b/firmware/controllers/algo/auto_generated_enums.cpp index 3ddc8f6864..1e568017a2 100644 --- a/firmware/controllers/algo/auto_generated_enums.cpp +++ b/firmware/controllers/algo/auto_generated_enums.cpp @@ -1,7 +1,7 @@ #include "global.h" #include "rusefi_enums.h" #include "rusefi_hw_enums.h" -// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 21:23:05 UTC 2020 +// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Dec 13 22:48:03 UTC 2020 // see also gen_config_and_enums.bat @@ -1279,8 +1279,6 @@ case TT_36_2_2_2: return "TT_36_2_2_2"; case TT_3_1_CAM: return "TT_3_1_CAM"; -case TT_SUBARU_7_WITHOUT_6: - return "TT_SUBARU_7_WITHOUT_6"; case TT_52: return "TT_52"; case TT_60_2_VW: @@ -1359,6 +1357,8 @@ case TT_ROVER_K: return "TT_ROVER_K"; case TT_SUBARU_7_6: return "TT_SUBARU_7_6"; +case TT_SUBARU_7_WITHOUT_6: + return "TT_SUBARU_7_WITHOUT_6"; case TT_SUBARU_SVX: return "TT_SUBARU_SVX"; case TT_TOOTHED_WHEEL: diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 520bb1b1fc..81cbb24505 100644 --- a/firmware/controllers/generated/engine_configuration_generated_structures.h +++ b/firmware/controllers/generated/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3782,4 +3782,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 624b7f19c0..130fde8264 100644 --- a/firmware/controllers/generated/fsio_enums_generated.def +++ b/firmware/controllers/generated/fsio_enums_generated.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index ede6a2c523..420d4f8ec5 100644 --- a/firmware/controllers/generated/fsio_getters.def +++ b/firmware/controllers/generated/fsio_getters.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index f8868ffb67..c3b74f90e8 100644 --- a/firmware/controllers/generated/fsio_names.def +++ b/firmware/controllers/generated/fsio_names.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index ef500e7056..c44b28e2f0 100644 --- a/firmware/controllers/generated/fsio_strings.def +++ b/firmware/controllers/generated/fsio_strings.def @@ -1,4 +1,4 @@ -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 2128d9d6e7..3ead282fa3 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -1225,7 +1225,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 3363595943 +#define SIGNATURE_HASH 1302321646 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1422,7 +1422,7 @@ #define TRIGGER_SIMULATOR_PIN_COUNT 3 #define trigger_todoRemoveMeOneDay0_offset 528 #define trigger_todoRemoveMeOneDay1_offset 528 -#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED" +#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_SUBARU_7_WITHOUT_6", "TT_52", "TT_UNUSED" #define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID" #define trigger_type_offset 524 #define trigger_unusedBit_4_10_offset 528 @@ -1556,7 +1556,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.12.13.all.3363595943" +#define TS_SIGNATURE "rusEFI 2020.12.13.all.1302321646" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' // 0x74 @@ -1565,7 +1565,6 @@ #define TT_TT_2JZ_3_34 25 #define TT_TT_36_2_2_2 23 #define TT_TT_3_1_CAM 31 -#define TT_TT_51 51 #define TT_TT_52 52 #define TT_TT_60_2_VW 20 #define TT_TT_CHRYSLER_NGC_36_2_2 30 @@ -1591,6 +1590,7 @@ #define TT_TT_RENIX_66_2_2_2 45 #define TT_TT_ROVER_K 26 #define TT_TT_SUBARU_7_6 36 +#define TT_TT_SUBARU_7_WITHOUT_6 51 #define TT_TT_SUBARU_SVX 49 #define TT_TT_TOOTHED_WHEEL 0 #define TT_TT_TOOTHED_WHEEL_36_1 9 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 80fcb7eb80..47b6760001 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 3363595943 -#define TS_SIGNATURE "rusEFI 2020.12.13.all.3363595943" +#define SIGNATURE_HASH 1302321646 +#define TS_SIGNATURE "rusEFI 2020.12.13.all.1302321646" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 5386a89c85..4ad493b41d 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 1577899868 -#define TS_SIGNATURE "rusEFI 2020.12.13.frankenso_na6.1577899868" +#define SIGNATURE_HASH 3689900053 +#define TS_SIGNATURE "rusEFI 2020.12.13.frankenso_na6.3689900053" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index d2d94c568b..16fbd5f512 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD hellen_cypress #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 26067044 -#define TS_SIGNATURE "rusEFI 2020.12.13.hellen_cypress.26067044" +#define SIGNATURE_HASH 2221834029 +#define TS_SIGNATURE "rusEFI 2020.12.13.hellen_cypress.2221834029" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 3dbb4d3926..452dcacaa3 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 1351744158 -#define TS_SIGNATURE "rusEFI 2020.12.13.kin.1351744158" +#define SIGNATURE_HASH 3581035991 +#define TS_SIGNATURE "rusEFI 2020.12.13.kin.3581035991" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 0b3916f5ed..732af4e57a 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 3752638686 -#define TS_SIGNATURE "rusEFI 2020.12.13.mre_f4.3752638686" +#define SIGNATURE_HASH 1515128727 +#define TS_SIGNATURE "rusEFI 2020.12.13.mre_f4.1515128727" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index 27d6ad69a0..f229cba7c2 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 3752638686 -#define TS_SIGNATURE "rusEFI 2020.12.13.mre_f7.3752638686" +#define SIGNATURE_HASH 1515128727 +#define TS_SIGNATURE "rusEFI 2020.12.13.mre_f7.1515128727" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index a579cdfd74..60787a5247 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 2326028534 -#define TS_SIGNATURE "rusEFI 2020.12.13.prometheus_405.2326028534" +#define SIGNATURE_HASH 256368575 +#define TS_SIGNATURE "rusEFI 2020.12.13.prometheus_405.256368575" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 3f48bfc739..b2b0f942ae 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 2326028534 -#define TS_SIGNATURE "rusEFI 2020.12.13.prometheus_469.2326028534" +#define SIGNATURE_HASH 256368575 +#define TS_SIGNATURE "rusEFI 2020.12.13.prometheus_469.256368575" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 4ee3555943..1b2d87bb48 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 30813305 -#define TS_SIGNATURE "rusEFI 2020.12.13.proteus_f4.30813305" +#define SIGNATURE_HASH 2218103600 +#define TS_SIGNATURE "rusEFI 2020.12.13.proteus_f4.2218103600" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index dc898db7f1..e17bf5824a 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2020.12.13 -#define SIGNATURE_HASH 30813305 -#define TS_SIGNATURE "rusEFI 2020.12.13.proteus_f7.30813305" +#define SIGNATURE_HASH 2218103600 +#define TS_SIGNATURE "rusEFI 2020.12.13.proteus_f7.2218103600" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 889f503fedadc0192205c6f7ad3cb40d368f7bab..9d4eefcf2c69a3e24a08c11802d900b787231e25 100644 GIT binary patch delta 223643 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 XW@4t^kw^{H?`un_d-VjF`rH2jGoOKz diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 07f7b24fb7..cc1b71f59e 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.all.3363595943" + signature = "rusEFI 2020.12.13.all.1302321646" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.all.3363595943" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.all.1302321646" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index 86bd3595d9..323bccb2db 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.frankenso_na6.1577899868" + signature = "rusEFI 2020.12.13.frankenso_na6.3689900053" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.frankenso_na6.1577899868" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.frankenso_na6.3689900053" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:55 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:09 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index 2f1e57742d..5293d8ad2f 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.hellen_cypress.26067044" + signature = "rusEFI 2020.12.13.hellen_cypress.2221834029" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.hellen_cypress.26067044" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.hellen_cypress.2221834029" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:13 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:25 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 3f41a496f7..63af4a2d0b 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.kin.1351744158" + signature = "rusEFI 2020.12.13.kin.3581035991" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.kin.1351744158" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.kin.3581035991" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 21:19:11 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Dec 13 22:48:23 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index d5112f556d..7de1f1d702 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.mre_f4.3752638686" + signature = "rusEFI 2020.12.13.mre_f4.1515128727" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.mre_f4.3752638686" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.mre_f4.1515128727" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:54 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:08 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 204998e362..62e3a4d1af 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.mre_f7.3752638686" + signature = "rusEFI 2020.12.13.mre_f7.1515128727" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.mre_f7.3752638686" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.mre_f7.1515128727" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:52 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:06 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index 69432312de..d8d322d1c6 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.prometheus_405.2326028534" + signature = "rusEFI 2020.12.13.prometheus_405.256368575" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.prometheus_405.2326028534" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.prometheus_405.256368575" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:19:06 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:15 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index 15e3b2e8ca..944dddd342 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.prometheus_469.2326028534" + signature = "rusEFI 2020.12.13.prometheus_469.256368575" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.prometheus_469.2326028534" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.prometheus_469.256368575" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:58 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:11 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index 6352ad7d54..2be45818f9 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.proteus_f4.30813305" + signature = "rusEFI 2020.12.13.proteus_f4.2218103600" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.proteus_f4.30813305" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.proteus_f4.2218103600" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:19:10 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:22 UTC 2020 pageSize = 20000 page = 1 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index 8a97bd14fd..520a501c4d 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -33,12 +33,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.12.13.proteus_f7.30813305" + signature = "rusEFI 2020.12.13.proteus_f7.2218103600" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.12.13.proteus_f7.30813305" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.12.13.proteus_f7.2218103600" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -74,7 +74,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:19:08 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:20 UTC 2020 pageSize = 20000 page = 1 diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java index 63580edbf5..633db22440 100644 --- a/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java +++ b/java_console/models/src/main/java/com/rusefi/config/generated/Fields.java @@ -1,6 +1,6 @@ package com.rusefi.config.generated; -// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 21:18:50 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Dec 13 22:48:04 UTC 2020 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -1179,6 +1179,7 @@ public class Fields { public static final int servoOutputPins8_offset = 3147; public static final int showHumanReadableWarning_offset = 976; public static final int showSdCardWarning_offset = 76; + public static final int SIGNATURE_HASH = 1302321646; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1459,14 +1460,13 @@ public class Fields { public static final char TS_SD_R_COMMAND = 'r'; public static final char TS_SD_W_COMMAND = 'w'; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2020.12.13.all.3363595943"; + public static final String TS_SIGNATURE = "rusEFI 2020.12.13.all.1302321646"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int TT_TT_1_16 = 50; public static final int TT_TT_2JZ_1_12 = 29; public static final int TT_TT_2JZ_3_34 = 25; public static final int TT_TT_36_2_2_2 = 23; public static final int TT_TT_3_1_CAM = 31; - public static final int TT_TT_51 = 51; public static final int TT_TT_52 = 52; public static final int TT_TT_60_2_VW = 20; public static final int TT_TT_CHRYSLER_NGC_36_2_2 = 30; @@ -1492,6 +1492,7 @@ public class Fields { public static final int TT_TT_RENIX_66_2_2_2 = 45; public static final int TT_TT_ROVER_K = 26; public static final int TT_TT_SUBARU_7_6 = 36; + public static final int TT_TT_SUBARU_7_WITHOUT_6 = 51; public static final int TT_TT_SUBARU_SVX = 49; public static final int TT_TT_TOOTHED_WHEEL = 0; public static final int TT_TT_TOOTHED_WHEEL_36_1 = 9; diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index c1a04d95d4..0d30c30407 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +