From f0d6cd8479374c44c986f2ba22d52cde348c43a8 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 7 Nov 2021 15:30:54 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 12 ++++-- .../controllers/algo/rusefi_generated.h | 21 ++++++---- ...ngine_configuration_generated_structures.h | 12 ++++-- .../controllers/algo/rusefi_generated.h | 21 ++++++---- ...ngine_configuration_generated_structures.h | 12 ++++-- .../controllers/algo/rusefi_generated.h | 21 ++++++---- ...ngine_configuration_generated_structures.h | 12 ++++-- .../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 | 21 ++++++---- .../controllers/generated/signature_all.h | 4 +- .../controllers/generated/signature_atlas.h | 4 +- .../generated/signature_f429-discovery.h | 4 +- .../generated/signature_frankenso_na6.h | 4 +- .../generated/signature_hellen-nb1.h | 4 +- .../generated/signature_hellen121nissan.h | 4 +- .../generated/signature_hellen121vag.h | 4 +- .../generated/signature_hellen128.h | 4 +- .../generated/signature_hellen154hyundai.h | 4 +- .../generated/signature_hellen72.h | 4 +- .../generated/signature_hellen88bmw.h | 4 +- .../generated/signature_hellenNA6.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 +- .../generated/signature_subaru_eg33_f7.h | 4 +- firmware/tunerstudio/generated/cache.zip | Bin 2130624 -> 2132073 bytes firmware/tunerstudio/generated/rusefi.ini | 36 ++++++++++++++---- .../tunerstudio/generated/rusefi_atlas.ini | 36 ++++++++++++++---- .../generated/rusefi_f429-discovery.ini | 36 ++++++++++++++---- .../generated/rusefi_frankenso_na6.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen-nb1.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen121nissan.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen121vag.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen128mercedes.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen154hyundai.ini | 36 ++++++++++++++---- .../tunerstudio/generated/rusefi_hellen72.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen88bmw.ini | 36 ++++++++++++++---- .../generated/rusefi_hellenNA6.ini | 36 ++++++++++++++---- .../generated/rusefi_hellen_cypress.ini | 36 ++++++++++++++---- .../tunerstudio/generated/rusefi_kinetis.ini | 36 ++++++++++++++---- .../tunerstudio/generated/rusefi_mre_f4.ini | 36 ++++++++++++++---- .../tunerstudio/generated/rusefi_mre_f7.ini | 36 ++++++++++++++---- .../generated/rusefi_prometheus_405.ini | 36 ++++++++++++++---- .../generated/rusefi_prometheus_469.ini | 36 ++++++++++++++---- .../generated/rusefi_proteus_f4.ini | 36 ++++++++++++++---- .../generated/rusefi_proteus_f7.ini | 36 ++++++++++++++---- .../generated/rusefi_subaru_eg33_f7.ini | 36 ++++++++++++++---- .../com/rusefi/config/generated/Fields.java | 30 ++++++++++----- java_console/rusefi.xml | 2 +- 57 files changed, 740 insertions(+), 272 deletions(-) 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 74cf1ae9ea..8e7ac5d347 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 Nov 07 03:32:03 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:31 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3728,10 +3728,14 @@ struct engine_configuration_s { */ float scriptCurve6[FSIO_CURVE_8]; /** - units * offset 3564 */ - uint8_t unused3328[300]; + gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT]; + /** + units + * offset 3628 + */ + uint8_t unused3328[236]; /** Min tCharge Coeff. * offset 3864 @@ -4557,4 +4561,4 @@ struct 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 Nov 07 03:32:03 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:31 UTC 2021 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 d577d6d167..b792f2cff5 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 @@ -767,7 +767,7 @@ #define ENGINE_MAKE_VAG "VAG" #define ENGINE_NOISE_CURVE_SIZE 8 #define ENGINE_SNIFFER_UNIT_US 10 -#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "MAZDA_626", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS_DEFAULTS", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" +#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "UNUSED28", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "UNUSED60", "UNUSED61", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "UNUSED100", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" #define engine_type_e_BMW_M73_M 24 #define engine_type_e_BMW_M73_MRE 104 #define engine_type_e_BMW_M73_MRE_SLAVE 105 @@ -820,12 +820,10 @@ #define engine_type_e_HELLEN_NB2_36 86 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_ACCORD_CD_TWO_WIRES 17 -#define engine_type_e_MAZDA_626 28 #define engine_type_e_MAZDA_MIATA_2003_BOARD_TEST 55 #define engine_type_e_MAZDA_MIATA_2003_NA_RAIL 54 #define engine_type_e_MIATA_1996 21 #define engine_type_e_MIATA_PROTEUS_TCU 1 -#define engine_type_e_MICRO_RUS_EFI 60 #define engine_type_e_MINIMAL_PINS 99 #define engine_type_e_MITSU_4G93 16 #define engine_type_e_MRE_BOARD_NEW_TEST 31 @@ -840,10 +838,8 @@ #define engine_type_e_MRE_SECONDARY_CAN 4 #define engine_type_e_MRE_SUBARU_EJ18 37 #define engine_type_e_NISSAN_PRIMERA 5 -#define engine_type_e_PROMETHEUS_DEFAULTS 100 #define engine_type_e_PROTEUS_ANALOG_PWM_TEST 106 #define engine_type_e_PROTEUS_BMW_M73 63 -#define engine_type_e_PROTEUS_DEFAULTS 61 #define engine_type_e_PROTEUS_HONDA_ELEMENT_2003 90 #define engine_type_e_PROTEUS_HONDA_OBD2A 91 #define engine_type_e_PROTEUS_LUA_DEMO 25 @@ -868,10 +864,14 @@ #define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 #define engine_type_e_TOYOTA_JZS147 38 #define engine_type_e_UNUSED10 10 +#define engine_type_e_UNUSED100 100 #define engine_type_e_UNUSED101 101 #define engine_type_e_UNUSED18 18 +#define engine_type_e_UNUSED28 28 #define engine_type_e_UNUSED30 30 #define engine_type_e_UNUSED39 39 +#define engine_type_e_UNUSED60 60 +#define engine_type_e_UNUSED61 61 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED_19 19 #define engine_type_e_UNUSED_48 48 @@ -1796,6 +1796,7 @@ #define rpmHardLimit_offset 416 #define runningLedPin_offset 1813 #define SCRIPT_CURVE_COUNT 6 +#define SCRIPT_TABLE_COUNT 4 #define scriptCurve1_offset 2780 #define scriptCurve1Bins_offset 2716 #define scriptCurve2_offset 2908 @@ -1814,6 +1815,10 @@ #define scriptCurveName4_offset 3388 #define scriptCurveName5_offset 3404 #define scriptCurveName6_offset 3420 +#define scriptTableName1_offset 3564 +#define scriptTableName2_offset 3580 +#define scriptTableName3_offset 3596 +#define scriptTableName4_offset 3612 #define sdCardCsPin_offset 707 #define sdCardCsPinMode_offset 2226 #define sdCardPeriodMs_offset 804 @@ -1843,7 +1848,7 @@ #define show_test_presets true #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 -#define SIGNATURE_HASH 1362832977 +#define SIGNATURE_HASH 3934782067 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -2350,7 +2355,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen_cypress.1362832977" +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen_cypress.3934782067" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -2388,7 +2393,7 @@ #define unused2508_offset 2511 #define unused2536_offset 2539 #define unused3103_offset 3103 -#define unused3328_offset 3564 +#define unused3328_offset 3628 #define unused3942_offset 3992 #define unused3988_offset 3988 #define unused4028_offset 4028 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 f4d8302548..d56309c6c5 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 Nov 07 03:32:00 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:29 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3722,10 +3722,14 @@ struct engine_configuration_s { */ float scriptCurve6[FSIO_CURVE_8]; /** - units * offset 3536 */ - uint8_t unused3328[300]; + gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT]; + /** + units + * offset 3600 + */ + uint8_t unused3328[236]; /** Min tCharge Coeff. * offset 3836 @@ -4551,4 +4555,4 @@ struct 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 Nov 07 03:32:00 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:29 UTC 2021 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 7bb9a632dc..a38b60d562 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -752,7 +752,7 @@ #define ENGINE_MAKE_VAG "VAG" #define ENGINE_NOISE_CURVE_SIZE 8 #define ENGINE_SNIFFER_UNIT_US 10 -#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "MAZDA_626", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS_DEFAULTS", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" +#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "UNUSED28", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "UNUSED60", "UNUSED61", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "UNUSED100", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" #define engine_type_e_BMW_M73_M 24 #define engine_type_e_BMW_M73_MRE 104 #define engine_type_e_BMW_M73_MRE_SLAVE 105 @@ -805,12 +805,10 @@ #define engine_type_e_HELLEN_NB2_36 86 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_ACCORD_CD_TWO_WIRES 17 -#define engine_type_e_MAZDA_626 28 #define engine_type_e_MAZDA_MIATA_2003_BOARD_TEST 55 #define engine_type_e_MAZDA_MIATA_2003_NA_RAIL 54 #define engine_type_e_MIATA_1996 21 #define engine_type_e_MIATA_PROTEUS_TCU 1 -#define engine_type_e_MICRO_RUS_EFI 60 #define engine_type_e_MINIMAL_PINS 99 #define engine_type_e_MITSU_4G93 16 #define engine_type_e_MRE_BOARD_NEW_TEST 31 @@ -825,10 +823,8 @@ #define engine_type_e_MRE_SECONDARY_CAN 4 #define engine_type_e_MRE_SUBARU_EJ18 37 #define engine_type_e_NISSAN_PRIMERA 5 -#define engine_type_e_PROMETHEUS_DEFAULTS 100 #define engine_type_e_PROTEUS_ANALOG_PWM_TEST 106 #define engine_type_e_PROTEUS_BMW_M73 63 -#define engine_type_e_PROTEUS_DEFAULTS 61 #define engine_type_e_PROTEUS_HONDA_ELEMENT_2003 90 #define engine_type_e_PROTEUS_HONDA_OBD2A 91 #define engine_type_e_PROTEUS_LUA_DEMO 25 @@ -853,10 +849,14 @@ #define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 #define engine_type_e_TOYOTA_JZS147 38 #define engine_type_e_UNUSED10 10 +#define engine_type_e_UNUSED100 100 #define engine_type_e_UNUSED101 101 #define engine_type_e_UNUSED18 18 +#define engine_type_e_UNUSED28 28 #define engine_type_e_UNUSED30 30 #define engine_type_e_UNUSED39 39 +#define engine_type_e_UNUSED60 60 +#define engine_type_e_UNUSED61 61 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED_19 19 #define engine_type_e_UNUSED_48 48 @@ -1781,6 +1781,7 @@ #define rpmHardLimit_offset 416 #define runningLedPin_offset 1813 #define SCRIPT_CURVE_COUNT 6 +#define SCRIPT_TABLE_COUNT 4 #define scriptCurve1_offset 2752 #define scriptCurve1Bins_offset 2688 #define scriptCurve2_offset 2880 @@ -1799,6 +1800,10 @@ #define scriptCurveName4_offset 3360 #define scriptCurveName5_offset 3376 #define scriptCurveName6_offset 3392 +#define scriptTableName1_offset 3536 +#define scriptTableName2_offset 3552 +#define scriptTableName3_offset 3568 +#define scriptTableName4_offset 3584 #define sdCardCsPin_offset 707 #define sdCardCsPinMode_offset 2223 #define sdCardPeriodMs_offset 804 @@ -1828,7 +1833,7 @@ #define show_test_presets true #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 -#define SIGNATURE_HASH 2929648301 +#define SIGNATURE_HASH 355323535 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -2335,7 +2340,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.11.07.kin.2929648301" +#define TS_SIGNATURE "rusEFI 2021.11.07.kin.355323535" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -2373,7 +2378,7 @@ #define unused2508_offset 2503 #define unused2536_offset 2531 #define unused3103_offset 3075 -#define unused3328_offset 3536 +#define unused3328_offset 3600 #define unused3942_offset 3964 #define unused3988_offset 3960 #define unused4028_offset 4000 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h index 504417430c..ece8ff5ee3 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/engine_configuration_generated_structures.h @@ -1,4 +1,4 @@ -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 03:32:06 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:33 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3728,10 +3728,14 @@ struct engine_configuration_s { */ float scriptCurve6[FSIO_CURVE_8]; /** - units * offset 3564 */ - uint8_t unused3328[300]; + gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT]; + /** + units + * offset 3628 + */ + uint8_t unused3328[236]; /** Min tCharge Coeff. * offset 3864 @@ -4557,4 +4561,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 03:32:06 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:33 UTC 2021 diff --git a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h index b83ce0cb5a..dba88114c8 100644 --- a/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/subaru_eg33/config/controllers/algo/rusefi_generated.h @@ -779,7 +779,7 @@ #define ENGINE_MAKE_VAG "VAG" #define ENGINE_NOISE_CURVE_SIZE 8 #define ENGINE_SNIFFER_UNIT_US 10 -#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "MAZDA_626", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS_DEFAULTS", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" +#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "UNUSED28", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "UNUSED60", "UNUSED61", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "UNUSED100", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" #define engine_type_e_BMW_M73_M 24 #define engine_type_e_BMW_M73_MRE 104 #define engine_type_e_BMW_M73_MRE_SLAVE 105 @@ -832,12 +832,10 @@ #define engine_type_e_HELLEN_NB2_36 86 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_ACCORD_CD_TWO_WIRES 17 -#define engine_type_e_MAZDA_626 28 #define engine_type_e_MAZDA_MIATA_2003_BOARD_TEST 55 #define engine_type_e_MAZDA_MIATA_2003_NA_RAIL 54 #define engine_type_e_MIATA_1996 21 #define engine_type_e_MIATA_PROTEUS_TCU 1 -#define engine_type_e_MICRO_RUS_EFI 60 #define engine_type_e_MINIMAL_PINS 99 #define engine_type_e_MITSU_4G93 16 #define engine_type_e_MRE_BOARD_NEW_TEST 31 @@ -852,10 +850,8 @@ #define engine_type_e_MRE_SECONDARY_CAN 4 #define engine_type_e_MRE_SUBARU_EJ18 37 #define engine_type_e_NISSAN_PRIMERA 5 -#define engine_type_e_PROMETHEUS_DEFAULTS 100 #define engine_type_e_PROTEUS_ANALOG_PWM_TEST 106 #define engine_type_e_PROTEUS_BMW_M73 63 -#define engine_type_e_PROTEUS_DEFAULTS 61 #define engine_type_e_PROTEUS_HONDA_ELEMENT_2003 90 #define engine_type_e_PROTEUS_HONDA_OBD2A 91 #define engine_type_e_PROTEUS_LUA_DEMO 25 @@ -880,10 +876,14 @@ #define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 #define engine_type_e_TOYOTA_JZS147 38 #define engine_type_e_UNUSED10 10 +#define engine_type_e_UNUSED100 100 #define engine_type_e_UNUSED101 101 #define engine_type_e_UNUSED18 18 +#define engine_type_e_UNUSED28 28 #define engine_type_e_UNUSED30 30 #define engine_type_e_UNUSED39 39 +#define engine_type_e_UNUSED60 60 +#define engine_type_e_UNUSED61 61 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED_19 19 #define engine_type_e_UNUSED_48 48 @@ -1808,6 +1808,7 @@ #define rpmHardLimit_offset 416 #define runningLedPin_offset 1813 #define SCRIPT_CURVE_COUNT 6 +#define SCRIPT_TABLE_COUNT 4 #define scriptCurve1_offset 2780 #define scriptCurve1Bins_offset 2716 #define scriptCurve2_offset 2908 @@ -1826,6 +1827,10 @@ #define scriptCurveName4_offset 3388 #define scriptCurveName5_offset 3404 #define scriptCurveName6_offset 3420 +#define scriptTableName1_offset 3564 +#define scriptTableName2_offset 3580 +#define scriptTableName3_offset 3596 +#define scriptTableName4_offset 3612 #define sdCardCsPin_offset 707 #define sdCardCsPinMode_offset 2226 #define sdCardPeriodMs_offset 804 @@ -1856,7 +1861,7 @@ #define show_test_presets false #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 -#define SIGNATURE_HASH 2261589730 +#define SIGNATURE_HASH 1031680704 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -2363,7 +2368,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port false -#define TS_SIGNATURE "rusEFI 2021.11.07.subaru_eg33_f7.2261589730" +#define TS_SIGNATURE "rusEFI 2021.11.07.subaru_eg33_f7.1031680704" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -2401,7 +2406,7 @@ #define unused2508_offset 2511 #define unused2536_offset 2539 #define unused3103_offset 3103 -#define unused3328_offset 3564 +#define unused3328_offset 3628 #define unused3942_offset 3992 #define unused3988_offset 3988 #define unused4028_offset 4028 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 5daad4b936..570bb57648 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 Nov 07 03:31:57 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -3728,10 +3728,14 @@ struct engine_configuration_s { */ float scriptCurve6[FSIO_CURVE_8]; /** - units * offset 3564 */ - uint8_t unused3328[300]; + gppwm_note_t scriptTableName[SCRIPT_TABLE_COUNT]; + /** + units + * offset 3628 + */ + uint8_t unused3328[236]; /** Min tCharge Coeff. * offset 3864 @@ -4557,4 +4561,4 @@ struct persistent_config_s { }; // end -// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 03:31:57 UTC 2021 +// this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index 1b1b493771..feb598765b 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 Nov 07 03:31:57 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_ACIDLEEXTRAOFFSET = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index 496f97ebc1..145e3a84b6 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 Nov 07 03:31:57 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_ACIDLEEXTRAOFFSET: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index a21bdbc84a..bb67eff9e7 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 Nov 07 03:31:57 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair leacIdleExtraOffset(FSIO_SETTING_ACIDLEEXTRAOFFSET, "cfg_acIdleExtraOffset"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index 6d28f64f0e..a047c82cce 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 Nov 07 03:31:57 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_ACIDLEEXTRAOFFSET: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index e149548f38..c28a1fa610 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -767,7 +767,7 @@ #define ENGINE_MAKE_VAG "VAG" #define ENGINE_NOISE_CURVE_SIZE 8 #define ENGINE_SNIFFER_UNIT_US 10 -#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "MAZDA_626", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS_DEFAULTS", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" +#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "MRE_SECONDARY_CAN", "NISSAN_PRIMERA", "ET_UNUSED_6", "FORD_INLINE_6_1995", "GY6_139QMB", "UNUSED9", "UNUSED10", "MRE_MIATA_NB2_MAP", "MRE_MIATA_NA6_VAF", "MRE_MIATA_NB2_ETB", "FORD_ESCORT_GT", "MRE_MIATA_NB2_MAF", "MITSU_4G93", "HONDA_ACCORD_CD_TWO_WIRES", "UNUSED18", "UNUSED_19", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "PROTEUS_LUA_DEMO", "TEST_ENGINE", "TEST_ISSUE_898", "UNUSED28", "SACHS", "UNUSED30", "MRE_BOARD_NEW_TEST", "VW_ABA", "HELLEN72_ETB", "HELLEN_NA6", "CAMARO_4", "HELLEN_128_MERCEDES_4_CYL", "MRE_SUBARU_EJ18", "TOYOTA_JZS147", "UNUSED39", "FRANKENSO_BMW_M73_F", "FRANKENSO_MIATA_NA6_MAP", "PROTEUS_QC_TEST_BOARD", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "FRANKENSO_MAZDA_MIATA_2003", "UNUSED_48", "FRANKENSO_QA_ENGINE", "UNUSED_50", "UNUSED_51", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "FRANKENSO_MAZDA_MIATA_NA8", "FRANKENSO_MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "UNUSED60", "UNUSED61", "VW_B6", "PROTEUS_BMW_M73", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "PROTEUS_MIATA_NB2", "MRE_M111", "HELLEN_NB2", "SUBARUEG33_DEFAULTS", "HELLEN_121_VAG_4_CYL", "HELLEN_121_NISSAN_6_CYL", "HELLEN_55_BMW", "HELLEN_88_BMW", "HELLEN_134_BMW", "HELLEN_154_VAG", "HELLEN_121_VAG_5_CYL", "HELLEN_121_VAG_V6_CYL", "HELLEN_121_VAG_VR6_CYL", "HELLEN_NA94", "HELLEN_121_VAG_8_CYL", "HELLEN_154_HYUNDAI_COUPE_BK1", "HELLEN_NB1", "HELLEN_121_NISSAN_4_CYL", "HELLEN_121_NISSAN_8_CYL", "HELLEN_NB2_36", "HELLEN_121_NISSAN_ALMERA_N16", "HELLEN_128_MERCEDES_6_CYL", "HELLEN_128_MERCEDES_8_CYL", "PROTEUS_HONDA_ELEMENT_2003", "PROTEUS_HONDA_OBD2A", "PROTEUS_VAG_80_18T", "PROTEUS_N73", "HELLEN_NB1_36", "HELLEN_154_HYUNDAI_COUPE_BK2", "ET_UNUSED96", "ET_UNUSED97", "ET_UNUSED98", "MINIMAL_PINS", "UNUSED100", "UNUSED101", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE", "PROTEUS_ANALOG_PWM_TEST", "TEST_ROTARY", "TEST_108", "TEST_109", "TEST_110" #define engine_type_e_BMW_M73_M 24 #define engine_type_e_BMW_M73_MRE 104 #define engine_type_e_BMW_M73_MRE_SLAVE 105 @@ -820,12 +820,10 @@ #define engine_type_e_HELLEN_NB2_36 86 #define engine_type_e_HONDA_600 43 #define engine_type_e_HONDA_ACCORD_CD_TWO_WIRES 17 -#define engine_type_e_MAZDA_626 28 #define engine_type_e_MAZDA_MIATA_2003_BOARD_TEST 55 #define engine_type_e_MAZDA_MIATA_2003_NA_RAIL 54 #define engine_type_e_MIATA_1996 21 #define engine_type_e_MIATA_PROTEUS_TCU 1 -#define engine_type_e_MICRO_RUS_EFI 60 #define engine_type_e_MINIMAL_PINS 99 #define engine_type_e_MITSU_4G93 16 #define engine_type_e_MRE_BOARD_NEW_TEST 31 @@ -840,10 +838,8 @@ #define engine_type_e_MRE_SECONDARY_CAN 4 #define engine_type_e_MRE_SUBARU_EJ18 37 #define engine_type_e_NISSAN_PRIMERA 5 -#define engine_type_e_PROMETHEUS_DEFAULTS 100 #define engine_type_e_PROTEUS_ANALOG_PWM_TEST 106 #define engine_type_e_PROTEUS_BMW_M73 63 -#define engine_type_e_PROTEUS_DEFAULTS 61 #define engine_type_e_PROTEUS_HONDA_ELEMENT_2003 90 #define engine_type_e_PROTEUS_HONDA_OBD2A 91 #define engine_type_e_PROTEUS_LUA_DEMO 25 @@ -868,10 +864,14 @@ #define engine_type_e_TOYOTA_2JZ_GTE_VVTi 44 #define engine_type_e_TOYOTA_JZS147 38 #define engine_type_e_UNUSED10 10 +#define engine_type_e_UNUSED100 100 #define engine_type_e_UNUSED101 101 #define engine_type_e_UNUSED18 18 +#define engine_type_e_UNUSED28 28 #define engine_type_e_UNUSED30 30 #define engine_type_e_UNUSED39 39 +#define engine_type_e_UNUSED60 60 +#define engine_type_e_UNUSED61 61 #define engine_type_e_UNUSED9 9 #define engine_type_e_UNUSED_19 19 #define engine_type_e_UNUSED_48 48 @@ -1796,6 +1796,7 @@ #define rpmHardLimit_offset 416 #define runningLedPin_offset 1813 #define SCRIPT_CURVE_COUNT 6 +#define SCRIPT_TABLE_COUNT 4 #define scriptCurve1_offset 2780 #define scriptCurve1Bins_offset 2716 #define scriptCurve2_offset 2908 @@ -1814,6 +1815,10 @@ #define scriptCurveName4_offset 3388 #define scriptCurveName5_offset 3404 #define scriptCurveName6_offset 3420 +#define scriptTableName1_offset 3564 +#define scriptTableName2_offset 3580 +#define scriptTableName3_offset 3596 +#define scriptTableName4_offset 3612 #define sdCardCsPin_offset 707 #define sdCardCsPinMode_offset 2226 #define sdCardPeriodMs_offset 804 @@ -1843,7 +1848,7 @@ #define show_test_presets true #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 -#define SIGNATURE_HASH 483694278 +#define SIGNATURE_HASH 2808593124 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -2350,7 +2355,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2021.11.07.all.483694278" +#define TS_SIGNATURE "rusEFI 2021.11.07.all.2808593124" #define TS_SINGLE_WRITE_COMMAND 'W' #define TS_SINGLE_WRITE_COMMAND_char W #define TS_TEST_COMMAND 't' @@ -2388,7 +2393,7 @@ #define unused2508_offset 2511 #define unused2536_offset 2539 #define unused3103_offset 3103 -#define unused3328_offset 3564 +#define unused3328_offset 3628 #define unused3942_offset 3992 #define unused3988_offset 3988 #define unused4028_offset 4028 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 6945a93453..30dc2d142f 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2634413741 -#define TS_SIGNATURE "rusEFI 2021.11.07.all.2634413741" +#define SIGNATURE_HASH 2808593124 +#define TS_SIGNATURE "rusEFI 2021.11.07.all.2808593124" diff --git a/firmware/controllers/generated/signature_atlas.h b/firmware/controllers/generated/signature_atlas.h index 14eac28afe..7fd4366486 100644 --- a/firmware/controllers/generated/signature_atlas.h +++ b/firmware/controllers/generated/signature_atlas.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2177827722 -#define TS_SIGNATURE "rusEFI 2021.11.07.atlas.2177827722" +#define SIGNATURE_HASH 3148697539 +#define TS_SIGNATURE "rusEFI 2021.11.07.atlas.3148697539" diff --git a/firmware/controllers/generated/signature_f429-discovery.h b/firmware/controllers/generated/signature_f429-discovery.h index cf019de224..915000d757 100644 --- a/firmware/controllers/generated/signature_f429-discovery.h +++ b/firmware/controllers/generated/signature_f429-discovery.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2634413741 -#define TS_SIGNATURE "rusEFI 2021.11.07.f429-discovery.2634413741" +#define SIGNATURE_HASH 2808593124 +#define TS_SIGNATURE "rusEFI 2021.11.07.f429-discovery.2808593124" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index 9d5d89ae20..d2c16ef850 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3879183172 -#define TS_SIGNATURE "rusEFI 2021.11.07.frankenso_na6.3879183172" +#define SIGNATURE_HASH 3713396493 +#define TS_SIGNATURE "rusEFI 2021.11.07.frankenso_na6.3713396493" diff --git a/firmware/controllers/generated/signature_hellen-nb1.h b/firmware/controllers/generated/signature_hellen-nb1.h index 5052b93ada..4aaee5a3be 100644 --- a/firmware/controllers/generated/signature_hellen-nb1.h +++ b/firmware/controllers/generated/signature_hellen-nb1.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 4204949636 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen-nb1.4204949636" +#define SIGNATURE_HASH 3233823949 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen-nb1.3233823949" diff --git a/firmware/controllers/generated/signature_hellen121nissan.h b/firmware/controllers/generated/signature_hellen121nissan.h index f90e926771..a2a97369dc 100644 --- a/firmware/controllers/generated/signature_hellen121nissan.h +++ b/firmware/controllers/generated/signature_hellen121nissan.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 385134319 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen121nissan.385134319" +#define SIGNATURE_HASH 748085926 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen121nissan.748085926" diff --git a/firmware/controllers/generated/signature_hellen121vag.h b/firmware/controllers/generated/signature_hellen121vag.h index 193a45d33a..c3c8461f93 100644 --- a/firmware/controllers/generated/signature_hellen121vag.h +++ b/firmware/controllers/generated/signature_hellen121vag.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3471382251 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen121vag.3471382251" +#define SIGNATURE_HASH 4102773410 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen121vag.4102773410" diff --git a/firmware/controllers/generated/signature_hellen128.h b/firmware/controllers/generated/signature_hellen128.h index 62d9d3de33..e84a0b209f 100644 --- a/firmware/controllers/generated/signature_hellen128.h +++ b/firmware/controllers/generated/signature_hellen128.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 2024136565 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen128.2024136565" +#define SIGNATURE_HASH 1120375612 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen128.1120375612" diff --git a/firmware/controllers/generated/signature_hellen154hyundai.h b/firmware/controllers/generated/signature_hellen154hyundai.h index 0cd2e1d58e..65d4692d11 100644 --- a/firmware/controllers/generated/signature_hellen154hyundai.h +++ b/firmware/controllers/generated/signature_hellen154hyundai.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3648671895 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen154hyundai.3648671895" +#define SIGNATURE_HASH 3810008286 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen154hyundai.3810008286" diff --git a/firmware/controllers/generated/signature_hellen72.h b/firmware/controllers/generated/signature_hellen72.h index ec642e5f5c..e295b30f25 100644 --- a/firmware/controllers/generated/signature_hellen72.h +++ b/firmware/controllers/generated/signature_hellen72.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 4220556938 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen72.4220556938" +#define SIGNATURE_HASH 3253918403 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen72.3253918403" diff --git a/firmware/controllers/generated/signature_hellen88bmw.h b/firmware/controllers/generated/signature_hellen88bmw.h index 41473e96f4..dbe77b8858 100644 --- a/firmware/controllers/generated/signature_hellen88bmw.h +++ b/firmware/controllers/generated/signature_hellen88bmw.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 1803881024 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen88bmw.1803881024" +#define SIGNATURE_HASH 1374111241 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen88bmw.1374111241" diff --git a/firmware/controllers/generated/signature_hellenNA6.h b/firmware/controllers/generated/signature_hellenNA6.h index 6c75260355..3264bc6fec 100644 --- a/firmware/controllers/generated/signature_hellenNA6.h +++ b/firmware/controllers/generated/signature_hellenNA6.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 744357795 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellenNA6.744357795" +#define SIGNATURE_HASH 373273578 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellenNA6.373273578" diff --git a/firmware/controllers/generated/signature_hellen_cypress.h b/firmware/controllers/generated/signature_hellen_cypress.h index 63902b781e..a9253a1158 100644 --- a/firmware/controllers/generated/signature_hellen_cypress.h +++ b/firmware/controllers/generated/signature_hellen_cypress.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt // -#define SIGNATURE_HASH 3505016378 -#define TS_SIGNATURE "rusEFI 2021.11.07.hellen_cypress.3505016378" +#define SIGNATURE_HASH 3934782067 +#define TS_SIGNATURE "rusEFI 2021.11.07.hellen_cypress.3934782067" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index abc7107884..32a7f65001 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt // -#define SIGNATURE_HASH 793739974 -#define TS_SIGNATURE "rusEFI 2021.11.07.kin.793739974" +#define SIGNATURE_HASH 355323535 +#define TS_SIGNATURE "rusEFI 2021.11.07.kin.355323535" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index 8c32117673..364f7a29fc 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 362144057 -#define TS_SIGNATURE "rusEFI 2021.11.07.mre_f4.362144057" +#define SIGNATURE_HASH 804760944 +#define TS_SIGNATURE "rusEFI 2021.11.07.mre_f4.804760944" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index bcf8062790..9c60926fc8 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 362144057 -#define TS_SIGNATURE "rusEFI 2021.11.07.mre_f7.362144057" +#define SIGNATURE_HASH 804760944 +#define TS_SIGNATURE "rusEFI 2021.11.07.mre_f7.804760944" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 27a3de8947..da3a748dd2 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3455004491 -#define TS_SIGNATURE "rusEFI 2021.11.07.prometheus_405.3455004491" +#define SIGNATURE_HASH 4153238274 +#define TS_SIGNATURE "rusEFI 2021.11.07.prometheus_405.4153238274" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index f0b2306dcb..61a0880106 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 3455004491 -#define TS_SIGNATURE "rusEFI 2021.11.07.prometheus_469.3455004491" +#define SIGNATURE_HASH 4153238274 +#define TS_SIGNATURE "rusEFI 2021.11.07.prometheus_469.4153238274" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index 4d3bc72cad..34ef04062a 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 65126001 -#define TS_SIGNATURE "rusEFI 2021.11.07.proteus_f4.65126001" +#define SIGNATURE_HASH 964948536 +#define TS_SIGNATURE "rusEFI 2021.11.07.proteus_f4.964948536" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 0f42068b00..e807ba653c 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 65126001 -#define TS_SIGNATURE "rusEFI 2021.11.07.proteus_f7.65126001" +#define SIGNATURE_HASH 964948536 +#define TS_SIGNATURE "rusEFI 2021.11.07.proteus_f7.964948536" diff --git a/firmware/controllers/generated/signature_subaru_eg33_f7.h b/firmware/controllers/generated/signature_subaru_eg33_f7.h index d814fa56b5..fb10bbaf32 100644 --- a/firmware/controllers/generated/signature_subaru_eg33_f7.h +++ b/firmware/controllers/generated/signature_subaru_eg33_f7.h @@ -2,5 +2,5 @@ // was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt // -#define SIGNATURE_HASH 119307913 -#define TS_SIGNATURE "rusEFI 2021.11.07.subaru_eg33_f7.119307913" +#define SIGNATURE_HASH 1031680704 +#define TS_SIGNATURE "rusEFI 2021.11.07.subaru_eg33_f7.1031680704" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 8153e845ef7664b9620b8969212ac386d71108df..39bbc95e1d3fa4c20a5247c4e0e643bbc94a7f0e 100644 GIT binary patch delta 651098 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 RgFOcMi)6BIpQ`R*{|98d_ACGZ delta 649612 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 diff --git a/firmware/tunerstudio/generated/rusefi.ini b/firmware/tunerstudio/generated/rusefi.ini index 8c0c0ac595..956abf5f73 100644 --- a/firmware/tunerstudio/generated/rusefi.ini +++ b/firmware/tunerstudio/generated/rusefi.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.all.2634413741" + signature = "rusEFI 2021.11.07.all.2808593124" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.all.2634413741" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.all.2808593124" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:46 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3666,6 +3670,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_atlas.ini b/firmware/tunerstudio/generated/rusefi_atlas.ini index ef46250701..46f482a1f8 100644 --- a/firmware/tunerstudio/generated/rusefi_atlas.ini +++ b/firmware/tunerstudio/generated/rusefi_atlas.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.atlas.2177827722" + signature = "rusEFI 2021.11.07.atlas.3148697539" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.atlas.2177827722" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.atlas.3148697539" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:44 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:25 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3666,6 +3670,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini index 100ad03836..e4437813b3 100644 --- a/firmware/tunerstudio/generated/rusefi_f429-discovery.ini +++ b/firmware/tunerstudio/generated/rusefi_f429-discovery.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.f429-discovery.2634413741" + signature = "rusEFI 2021.11.07.f429-discovery.2808593124" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.f429-discovery.2634413741" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.f429-discovery.2808593124" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:03 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:46 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3666,6 +3670,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini index e4112f37d1..eb331dc203 100644 --- a/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini +++ b/firmware/tunerstudio/generated/rusefi_frankenso_na6.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.frankenso_na6.3879183172" + signature = "rusEFI 2021.11.07.frankenso_na6.3713396493" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.frankenso_na6.3879183172" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.frankenso_na6.3713396493" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:31 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:13 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3666,6 +3670,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini index 29a452f3fd..655a4422c1 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen-nb1.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen-nb1.4204949636" + signature = "rusEFI 2021.11.07.hellen-nb1.3233823949" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen-nb1.4204949636" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen-nb1.3233823949" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:21 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:04 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini index ce23cd3ec3..f3844ca88b 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121nissan.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen121nissan.385134319" + signature = "rusEFI 2021.11.07.hellen121nissan.748085926" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen121nissan.385134319" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen121nissan.748085926" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:10 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:54 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini index e38bde8fb5..17d0d9ae10 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen121vag.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen121vag.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen121vag.3471382251" + signature = "rusEFI 2021.11.07.hellen121vag.4102773410" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen121vag.3471382251" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen121vag.4102773410" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:08 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:51 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini index b1a786fa7e..1ac1a1d671 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen128mercedes.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen128.2024136565" + signature = "rusEFI 2021.11.07.hellen128.1120375612" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen128.2024136565" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen128.1120375612" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:06 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:49 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini index 506fa04717..170073b79c 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen154hyundai.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen154hyundai.3648671895" + signature = "rusEFI 2021.11.07.hellen154hyundai.3810008286" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen154hyundai.3648671895" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen154hyundai.3810008286" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:13 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:56 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen72.ini b/firmware/tunerstudio/generated/rusefi_hellen72.ini index 6fdccba53c..077e208287 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen72.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen72.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen72.4220556938" + signature = "rusEFI 2021.11.07.hellen72.3253918403" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen72.4220556938" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen72.3253918403" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:18 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:01 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini index cfef2dc611..8a1b3694d3 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen88bmw.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen88bmw.1803881024" + signature = "rusEFI 2021.11.07.hellen88bmw.1374111241" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen88bmw.1803881024" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen88bmw.1374111241" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:16 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:28:59 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini index 900d82ecb5..1fe099278f 100644 --- a/firmware/tunerstudio/generated/rusefi_hellenNA6.ini +++ b/firmware/tunerstudio/generated/rusefi_hellenNA6.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellenNA6.744357795" + signature = "rusEFI 2021.11.07.hellenNA6.373273578" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellenNA6.744357795" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellenNA6.373273578" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:23 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:06 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini index c7345bd342..89448a866b 100644 --- a/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini +++ b/firmware/tunerstudio/generated/rusefi_hellen_cypress.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.hellen_cypress.3505016378" + signature = "rusEFI 2021.11.07.hellen_cypress.3934782067" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.hellen_cypress.3505016378" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.hellen_cypress.3934782067" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:51 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:31 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3666,6 +3670,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_kinetis.ini b/firmware/tunerstudio/generated/rusefi_kinetis.ini index 5388bcdc72..60360162a5 100644 --- a/firmware/tunerstudio/generated/rusefi_kinetis.ini +++ b/firmware/tunerstudio/generated/rusefi_kinetis.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.kin.793739974" + signature = "rusEFI 2021.11.07.kin.355323535" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.kin.793739974" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.kin.355323535" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:49 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 07 15:29:29 UTC 2021 pageSize = 19972 page = 1 @@ -1074,7 +1074,11 @@ scriptCurve5Bins = array, F32, 3408, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3440, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3472, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3504, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3536, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3536, 16 +scriptTableName2 = string, ASCII, 3552, 16 +scriptTableName3 = string, ASCII, 3568, 16 +scriptTableName4 = string, ASCII, 3584, 16 +unused3328 = array, U08, 3600, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3836, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3840, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3844, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3338,10 +3342,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3632,6 +3636,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f4.ini b/firmware/tunerstudio/generated/rusefi_mre_f4.ini index 3ba4354a82..d7931daabb 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f4.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.mre_f4.362144057" + signature = "rusEFI 2021.11.07.mre_f4.804760944" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.mre_f4.362144057" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.mre_f4.804760944" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:29 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:11 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_mre_f7.ini b/firmware/tunerstudio/generated/rusefi_mre_f7.ini index 72ed2235ca..c800653b55 100644 --- a/firmware/tunerstudio/generated/rusefi_mre_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_mre_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.mre_f7.362144057" + signature = "rusEFI 2021.11.07.mre_f7.804760944" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.mre_f7.362144057" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.mre_f7.804760944" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:26 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:08 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini index c1bee1587f..fc4eac5c50 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_405.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_405.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.prometheus_405.3455004491" + signature = "rusEFI 2021.11.07.prometheus_405.4153238274" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.prometheus_405.3455004491" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.prometheus_405.4153238274" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:36 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:18 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3368,10 +3372,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3661,6 +3665,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini index c94a7170c4..3eacb18b8b 100644 --- a/firmware/tunerstudio/generated/rusefi_prometheus_469.ini +++ b/firmware/tunerstudio/generated/rusefi_prometheus_469.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.prometheus_469.3455004491" + signature = "rusEFI 2021.11.07.prometheus_469.4153238274" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.prometheus_469.3455004491" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.prometheus_469.4153238274" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:34 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:16 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3368,10 +3372,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3661,6 +3665,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini index d0951a746a..50bf01edc5 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f4.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f4.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.proteus_f4.65126001" + signature = "rusEFI 2021.11.07.proteus_f4.964948536" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.proteus_f4.65126001" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.proteus_f4.964948536" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:41 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:22 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3659,6 +3663,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini index dbb35f5a04..49f792bf55 100644 --- a/firmware/tunerstudio/generated/rusefi_proteus_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_proteus_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.proteus_f7.65126001" + signature = "rusEFI 2021.11.07.proteus_f7.964948536" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.proteus_f7.65126001" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.proteus_f7.964948536" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 Nov 07 04:42:39 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:20 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3659,6 +3663,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 diff --git a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini index bb0c52f988..2fbc8bd2de 100644 --- a/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini +++ b/firmware/tunerstudio/generated/rusefi_subaru_eg33_f7.ini @@ -32,12 +32,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2021.11.07.subaru_eg33_f7.119307913" + signature = "rusEFI 2021.11.07.subaru_eg33_f7.1031680704" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2021.11.07.subaru_eg33_f7.119307913" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2021.11.07.subaru_eg33_f7.1031680704" ; signature is expected to be 7 or more characters. ; TS will try to use legacy temp units in some cases, showing "deg F" on a CLT gauge that's actually deg C useLegacyFTempUnits = false @@ -85,7 +85,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 config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 04:42:53 UTC 2021 +; this section was generated automatically by rusEFI tool ConfigDefinition.jar based on config/boards/subaru_eg33/config/gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:33 UTC 2021 pageSize = 20000 page = 1 @@ -1096,7 +1096,11 @@ scriptCurve5Bins = array, F32, 3436, [8], "x", 1, 0, -999, 1000, 3 scriptCurve5 = array, F32, 3468, [8], "y", 1, 0, -999, 1000, 3 scriptCurve6Bins = array, F32, 3500, [8], "x", 1, 0, -999, 1000, 3 scriptCurve6 = array, F32, 3532, [8], "y", 1, 0, -999, 1000, 3 -unused3328 = array, U08, 3564, [300], "units", 1, 0, -20, 100, 0 +scriptTableName1 = string, ASCII, 3564, 16 +scriptTableName2 = string, ASCII, 3580, 16 +scriptTableName3 = string, ASCII, 3596, 16 +scriptTableName4 = string, ASCII, 3612, 16 +unused3328 = array, U08, 3628, [236], "units", 1, 0, -20, 100, 0 tChargeAirCoefMin = scalar, F32, 3864, "Min tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirCoefMax = scalar, F32, 3868, "Max tCharge Coeff.", 1, 0, 0, 1, 4 tChargeAirFlowMax = scalar, F32, 3872, "Max Air Flow (kg/h)", 1, 0, 0, 1000, 1 @@ -3372,10 +3376,10 @@ menuDialog = main subMenu = fsioFormulas, "FSIO Formulas" subMenu = std_separator - subMenu = fsioTable1Tbl, "Script Table #1" - subMenu = fsioTable2Tbl, "Script Table #2" - subMenu = fsioTable3Tbl, "Script Table #3" - subMenu = fsioTable4Tbl, "Script Table #4" + subMenu = fsioTable1TblSettings, "Script Table #1" + subMenu = fsioTable2TblSettings, "Script Table #2" + subMenu = fsioTable3TblSettings, "Script Table #3" + subMenu = fsioTable4TblSettings, "Script Table #4" subMenu = scriptCurve1Settings, "Script Curve #1" subMenu = scriptCurve2Settings, "Script Curve #2" subMenu = scriptCurve3Settings, "Script Curve #3" @@ -3662,6 +3666,22 @@ cmd_set_engine_type_8888_test = "Z\x00\x30\x00\x3B" cmd_set_engine_type_default = "Z\x00\x31\x00\x00" [UserDefined] + dialog = fsioTable1TblSettings, "", yAxis + field = "Name", tableCurveName1 + panel = fsioTable1Tbl + + dialog = fsioTable2TblSettings, "", yAxis + field = "Name", tableCurveName2 + panel = fsioTable1Tb2 + + dialog = fsioTable3TblSettings, "", yAxis + field = "Name", tableCurveName3 + panel = fsioTable3Tbl + + dialog = fsioTable4TblSettings, "", yAxis + field = "Name", tableCurveName4 + panel = fsioTable4Tbl + dialog = scriptCurve1Settings, "", yAxis field = "Name", scriptCurveName4 panel = scriptCurve1 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 349d717128..454fea9005 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 Nov 07 03:31:57 UTC 2021 +// this file was generated automatically by rusEFI tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 07 15:29:27 UTC 2021 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -787,12 +787,10 @@ public class Fields { public static final int engine_type_e_HELLEN_NB2_36 = 86; public static final int engine_type_e_HONDA_600 = 43; public static final int engine_type_e_HONDA_ACCORD_CD_TWO_WIRES = 17; - public static final int engine_type_e_MAZDA_626 = 28; public static final int engine_type_e_MAZDA_MIATA_2003_BOARD_TEST = 55; public static final int engine_type_e_MAZDA_MIATA_2003_NA_RAIL = 54; public static final int engine_type_e_MIATA_1996 = 21; public static final int engine_type_e_MIATA_PROTEUS_TCU = 1; - public static final int engine_type_e_MICRO_RUS_EFI = 60; public static final int engine_type_e_MINIMAL_PINS = 99; public static final int engine_type_e_MITSU_4G93 = 16; public static final int engine_type_e_MRE_BOARD_NEW_TEST = 31; @@ -807,10 +805,8 @@ public class Fields { public static final int engine_type_e_MRE_SECONDARY_CAN = 4; public static final int engine_type_e_MRE_SUBARU_EJ18 = 37; public static final int engine_type_e_NISSAN_PRIMERA = 5; - public static final int engine_type_e_PROMETHEUS_DEFAULTS = 100; public static final int engine_type_e_PROTEUS_ANALOG_PWM_TEST = 106; public static final int engine_type_e_PROTEUS_BMW_M73 = 63; - public static final int engine_type_e_PROTEUS_DEFAULTS = 61; public static final int engine_type_e_PROTEUS_HONDA_ELEMENT_2003 = 90; public static final int engine_type_e_PROTEUS_HONDA_OBD2A = 91; public static final int engine_type_e_PROTEUS_LUA_DEMO = 25; @@ -835,10 +831,14 @@ public class Fields { public static final int engine_type_e_TOYOTA_2JZ_GTE_VVTi = 44; public static final int engine_type_e_TOYOTA_JZS147 = 38; public static final int engine_type_e_UNUSED10 = 10; + public static final int engine_type_e_UNUSED100 = 100; public static final int engine_type_e_UNUSED101 = 101; public static final int engine_type_e_UNUSED18 = 18; + public static final int engine_type_e_UNUSED28 = 28; public static final int engine_type_e_UNUSED30 = 30; public static final int engine_type_e_UNUSED39 = 39; + public static final int engine_type_e_UNUSED60 = 60; + public static final int engine_type_e_UNUSED61 = 61; public static final int engine_type_e_UNUSED9 = 9; public static final int engine_type_e_UNUSED_19 = 19; public static final int engine_type_e_UNUSED_48 = 48; @@ -1728,6 +1728,7 @@ public class Fields { public static final int rpmHardLimit_offset = 416; public static final int runningLedPin_offset = 1813; public static final int SCRIPT_CURVE_COUNT = 6; + public static final int SCRIPT_TABLE_COUNT = 4; public static final int scriptCurve1_offset = 2780; public static final int scriptCurve1Bins_offset = 2716; public static final int scriptCurve2_offset = 2908; @@ -1746,6 +1747,10 @@ public class Fields { public static final int scriptCurveName4_offset = 3388; public static final int scriptCurveName5_offset = 3404; public static final int scriptCurveName6_offset = 3420; + public static final int scriptTableName1_offset = 3564; + public static final int scriptTableName2_offset = 3580; + public static final int scriptTableName3_offset = 3596; + public static final int scriptTableName4_offset = 3612; public static final int sdCardCsPin_offset = 707; public static final int sdCardCsPinMode_offset = 2226; public static final int sdCardPeriodMs_offset = 804; @@ -1770,7 +1775,6 @@ 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 = 483694278; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -2222,7 +2226,7 @@ public class Fields { public static final int TS_RESPONSE_UNDERRUN = 0x80; public static final int TS_RESPONSE_UNRECOGNIZED_COMMAND = 0x83; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2021.11.07.all.483694278"; + public static final String TS_SIGNATURE = "rusEFI 2021.11.07.all.2808593124"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final char TS_TEST_COMMAND = 't'; public static final int tunerStudioSerialSpeed_offset = 728; @@ -2257,7 +2261,7 @@ public class Fields { public static final int unused2508_offset = 2511; public static final int unused2536_offset = 2539; public static final int unused3103_offset = 3103; - public static final int unused3328_offset = 3564; + public static final int unused3328_offset = 3628; public static final int unused3942_offset = 3992; public static final int unused3988_offset = 3988; public static final int unused4028_offset = 4028; @@ -3467,7 +3471,11 @@ public class Fields { public static final Field SCRIPTCURVE5 = Field.create("SCRIPTCURVE5", 3468, FieldType.FLOAT); public static final Field SCRIPTCURVE6BINS = Field.create("SCRIPTCURVE6BINS", 3500, FieldType.FLOAT); public static final Field SCRIPTCURVE6 = Field.create("SCRIPTCURVE6", 3532, FieldType.FLOAT); - public static final Field UNUSED3328 = Field.create("UNUSED3328", 3564, FieldType.INT8); + public static final Field SCRIPTTABLENAME1 = Field.create("SCRIPTTABLENAME1", 3564, 16, FieldType.STRING); + public static final Field SCRIPTTABLENAME2 = Field.create("SCRIPTTABLENAME2", 3580, 16, FieldType.STRING); + public static final Field SCRIPTTABLENAME3 = Field.create("SCRIPTTABLENAME3", 3596, 16, FieldType.STRING); + public static final Field SCRIPTTABLENAME4 = Field.create("SCRIPTTABLENAME4", 3612, 16, FieldType.STRING); + public static final Field UNUSED3328 = Field.create("UNUSED3328", 3628, FieldType.INT8); public static final Field TCHARGEAIRCOEFMIN = Field.create("TCHARGEAIRCOEFMIN", 3864, FieldType.FLOAT); public static final Field TCHARGEAIRCOEFMAX = Field.create("TCHARGEAIRCOEFMAX", 3868, FieldType.FLOAT); public static final Field TCHARGEAIRFLOWMAX = Field.create("TCHARGEAIRFLOWMAX", 3872, FieldType.FLOAT); @@ -4754,6 +4762,10 @@ public class Fields { SCRIPTCURVE5, SCRIPTCURVE6BINS, SCRIPTCURVE6, + SCRIPTTABLENAME1, + SCRIPTTABLENAME2, + SCRIPTTABLENAME3, + SCRIPTTABLENAME4, UNUSED3328, TCHARGEAIRCOEFMIN, TCHARGEAIRCOEFMAX, diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index 72c8cc97c6..76c8f6c6f8 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +