From 01e23fba914149393ff0eb954648af7aad5f0972 Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 5 Jul 2020 01:09:34 +0000 Subject: [PATCH] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 4 ++-- .../controllers/algo/rusefi_generated.h | 8 ++++---- ...ngine_configuration_generated_structures.h | 4 ++-- .../generated/fsio_enums_generated.def | 2 +- .../controllers/generated/fsio_getters.def | 2 +- firmware/controllers/generated/fsio_names.def | 2 +- .../controllers/generated/fsio_strings.def | 2 +- .../controllers/generated/rusefi_generated.h | 8 ++++---- .../controllers/generated/signature_all.h | 6 +++--- .../controllers/generated/signature_fra.h | 6 +++--- .../controllers/generated/signature_kin.h | 6 +++--- .../controllers/generated/signature_mre.h | 6 +++--- .../controllers/generated/signature_pro.h | 6 +++--- .../controllers/generated/signature_pth.h | 6 +++--- firmware/tunerstudio/cache.zip | Bin 385839 -> 386025 bytes firmware/tunerstudio/rusefi.ini | 8 ++++---- firmware/tunerstudio/rusefi_frankenso.ini | 8 ++++---- firmware/tunerstudio/rusefi_kinetis.ini | 8 ++++---- firmware/tunerstudio/rusefi_microrusefi.ini | 8 ++++---- firmware/tunerstudio/rusefi_prometheus.ini | 8 ++++---- firmware/tunerstudio/rusefi_proteus.ini | 8 ++++---- .../com/rusefi/config/generated/Fields.java | 8 ++++---- java_console/rusefi.xml | 2 +- 23 files changed, 63 insertions(+), 63 deletions(-) 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 3f7ac57982..dcace5fc52 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 Sat Jul 04 20:42:31 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 05 01:09:22 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #ifndef CONFIG_BOARDS_KINETIS_CONFIG_CONTROLLERS_ALGO_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H @@ -3522,4 +3522,4 @@ typedef struct persistent_config_s persistent_config_s; #endif // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sat Jul 04 20:42:31 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 05 01:09:22 UTC 2020 diff --git a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h index 199aec4bd3..c0e03b4839 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -271,7 +271,7 @@ #define cutSparkOnHardLimit_offset 1464 #define cylinderBore_offset 408 #define cylindersCount_offset 400 -#define debug_mode_e_enum "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40" +#define debug_mode_e_enum "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44" #define debugMapAveraging_offset 807 #define debugMode_offset 2092 #define debugTriggerSync_offset 676 @@ -1057,8 +1057,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 2527596749 +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 3200863293 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1318,7 +1318,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.07.04.kin.2527596749" +#define TS_SIGNATURE "rusEFI 2020.07.05.kin.3200863293" #define TS_SINGLE_WRITE_COMMAND 'W' #define tunerStudioSerialSpeed_offset 728 #define twoWireBatchIgnition_offset 1476 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 55dc45c269..08a84d0368 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 Sat Jul 04 20:42:24 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #ifndef CONTROLLERS_GENERATED_ENGINE_CONFIGURATION_GENERATED_STRUCTURES_H @@ -3522,4 +3522,4 @@ typedef struct persistent_config_s persistent_config_s; #endif // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sat Jul 04 20:42:24 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index ff747de71c..972cf4f616 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 Sat Jul 04 20:42:24 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer FSIO_SETTING_FANONTEMPERATURE = 1000, diff --git a/firmware/controllers/generated/fsio_getters.def b/firmware/controllers/generated/fsio_getters.def index 0d523048dc..23191caa5a 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 Sat Jul 04 20:42:24 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/fsio_names.def b/firmware/controllers/generated/fsio_names.def index 4ba82f9876..d6d6d0d537 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 Sat Jul 04 20:42:24 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature"); diff --git a/firmware/controllers/generated/fsio_strings.def b/firmware/controllers/generated/fsio_strings.def index 431cf21684..eb9e9eb0cb 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 Sat Jul 04 20:42:24 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.FileFsioSettingsConsumer case FSIO_SETTING_FANONTEMPERATURE: diff --git a/firmware/controllers/generated/rusefi_generated.h b/firmware/controllers/generated/rusefi_generated.h index 74b6900dd0..ab36f30655 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -271,7 +271,7 @@ #define cutSparkOnHardLimit_offset 1464 #define cylinderBore_offset 408 #define cylindersCount_offset 400 -#define debug_mode_e_enum "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40" +#define debug_mode_e_enum "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44" #define debugMapAveraging_offset 807 #define debugMode_offset 2092 #define debugTriggerSync_offset 676 @@ -1057,8 +1057,8 @@ #define showHumanReadableWarning_offset 976 #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 1536609367 +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 1945604263 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1318,7 +1318,7 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.07.04.all.1536609367" +#define TS_SIGNATURE "rusEFI 2020.07.05.all.1945604263" #define TS_SINGLE_WRITE_COMMAND 'W' #define tunerStudioSerialSpeed_offset 728 #define twoWireBatchIgnition_offset 1476 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index 78546eb602..f16658f792 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD all -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 1536609367 -#define TS_SIGNATURE "rusEFI 2020.07.04.all.1536609367" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 1945604263 +#define TS_SIGNATURE "rusEFI 2020.07.05.all.1945604263" diff --git a/firmware/controllers/generated/signature_fra.h b/firmware/controllers/generated/signature_fra.h index aa7eb9f05e..dae6b8b81a 100644 --- a/firmware/controllers/generated/signature_fra.h +++ b/firmware/controllers/generated/signature_fra.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD fra -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 2232524980 -#define TS_SIGNATURE "rusEFI 2020.07.04.fra.2232524980" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 2909862980 +#define TS_SIGNATURE "rusEFI 2020.07.05.fra.2909862980" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index fab0459fd5..5fde0bfbc3 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD kin -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 2527596749 -#define TS_SIGNATURE "rusEFI 2020.07.04.kin.2527596749" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 3200863293 +#define TS_SIGNATURE "rusEFI 2020.07.05.kin.3200863293" diff --git a/firmware/controllers/generated/signature_mre.h b/firmware/controllers/generated/signature_mre.h index f37544b346..2a39eee7eb 100644 --- a/firmware/controllers/generated/signature_mre.h +++ b/firmware/controllers/generated/signature_mre.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD mre -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 308812505 -#define TS_SIGNATURE "rusEFI 2020.07.04.mre.308812505" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 973686313 +#define TS_SIGNATURE "rusEFI 2020.07.05.mre.973686313" diff --git a/firmware/controllers/generated/signature_pro.h b/firmware/controllers/generated/signature_pro.h index e007faca3b..01e20398eb 100644 --- a/firmware/controllers/generated/signature_pro.h +++ b/firmware/controllers/generated/signature_pro.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD pro -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 3590831512 -#define TS_SIGNATURE "rusEFI 2020.07.04.pro.3590831512" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 4268155240 +#define TS_SIGNATURE "rusEFI 2020.07.05.pro.4268155240" diff --git a/firmware/controllers/generated/signature_pth.h b/firmware/controllers/generated/signature_pth.h index b53b631586..dc3bd015e4 100644 --- a/firmware/controllers/generated/signature_pth.h +++ b/firmware/controllers/generated/signature_pth.h @@ -3,6 +3,6 @@ // #define SIGNATURE_BOARD pth -#define SIGNATURE_DATE 2020.07.04 -#define SIGNATURE_HASH 2928284883 -#define TS_SIGNATURE "rusEFI 2020.07.04.pth.2928284883" +#define SIGNATURE_DATE 2020.07.05 +#define SIGNATURE_HASH 2263566371 +#define TS_SIGNATURE "rusEFI 2020.07.05.pth.2263566371" diff --git a/firmware/tunerstudio/cache.zip b/firmware/tunerstudio/cache.zip index 45fc33ddfb834823499e673d680f23c2d2f91605..f040d018b67c517a481d132f7ffcdc0b9b22e2c0 100644 GIT binary patch delta 137488 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 EKb0kON&o-= diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 898125c267..755901d484 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.all.1536609367" + signature = "rusEFI 2020.07.05.all.1945604263" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.all.1536609367" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.all.1945604263" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:24 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 diff --git a/firmware/tunerstudio/rusefi_frankenso.ini b/firmware/tunerstudio/rusefi_frankenso.ini index 71b648215c..cea53b8ffa 100644 --- a/firmware/tunerstudio/rusefi_frankenso.ini +++ b/firmware/tunerstudio/rusefi_frankenso.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.fra.2232524980" + signature = "rusEFI 2020.07.05.fra.2909862980" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.fra.2232524980" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.fra.2909862980" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:28 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:19 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 diff --git a/firmware/tunerstudio/rusefi_kinetis.ini b/firmware/tunerstudio/rusefi_kinetis.ini index c39f11cee0..db5af8c9c5 100644 --- a/firmware/tunerstudio/rusefi_kinetis.ini +++ b/firmware/tunerstudio/rusefi_kinetis.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.kin.2527596749" + signature = "rusEFI 2020.07.05.kin.3200863293" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.kin.2527596749" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.kin.3200863293" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:31 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Jul 05 01:09:22 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 diff --git a/firmware/tunerstudio/rusefi_microrusefi.ini b/firmware/tunerstudio/rusefi_microrusefi.ini index 34efe2e56a..52a1d65098 100644 --- a/firmware/tunerstudio/rusefi_microrusefi.ini +++ b/firmware/tunerstudio/rusefi_microrusefi.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.mre.308812505" + signature = "rusEFI 2020.07.05.mre.973686313" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.mre.308812505" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.mre.973686313" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:26 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:17 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 diff --git a/firmware/tunerstudio/rusefi_prometheus.ini b/firmware/tunerstudio/rusefi_prometheus.ini index a3bd6fca4e..00b182f57f 100644 --- a/firmware/tunerstudio/rusefi_prometheus.ini +++ b/firmware/tunerstudio/rusefi_prometheus.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.pth.2928284883" + signature = "rusEFI 2020.07.05.pth.2263566371" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.pth.2928284883" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.pth.2263566371" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:29 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:20 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 diff --git a/firmware/tunerstudio/rusefi_proteus.ini b/firmware/tunerstudio/rusefi_proteus.ini index b9e9fcd62d..448abced43 100644 --- a/firmware/tunerstudio/rusefi_proteus.ini +++ b/firmware/tunerstudio/rusefi_proteus.ini @@ -45,12 +45,12 @@ enable2ndByteCanID = false [MegaTune] ; https://rusefi.com/forum/viewtopic.php?p=36201#p36201 - signature = "rusEFI 2020.07.04.pro.3590831512" + signature = "rusEFI 2020.07.05.pro.4268155240" [TunerStudio] queryCommand = "S" versionInfo = "V" ; firmwave version for title bar. - signature = "rusEFI 2020.07.04.pro.3590831512" ; signature is expected to be 7 or more characters. + signature = "rusEFI 2020.07.05.pro.4268155240" ; signature is expected to be 7 or more characters. [Constants] ; new packet serial format with CRC @@ -88,7 +88,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 Sat Jul 04 20:42:30 UTC 2020 +; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:21 UTC 2020 pageSize = 20000 page = 1 @@ -827,7 +827,7 @@ page = 1 tpsDecelEnleanmentThreshold = scalar, F32, 2080, "roc", 1, 0, 0, 200, 3 tpsDecelEnleanmentMultiplier = scalar, F32, 2084, "coeff", 1, 0, 0, 200, 3 slowAdcAlpha = scalar, F32, 2088, "coeff", 1, 0, 0, 200, 3 - debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" + debugMode = bits, U32, 2092, [0:5], "Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" auxSerialSpeed = scalar, U32, 2096, "BPs", 1, 0, 0,1000000, 0 throttlePedalSecondaryUpVoltage = scalar, F32, 2100, "voltage", 1, 0, -6, 6, 2 throttlePedalSecondaryWOTVoltage = scalar, F32, 2104, "voltage", 1, 0, -6, 6, 2 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 fa9c9ccaa1..e8259f9f18 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 Sat Jul 04 20:42:24 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Jul 05 01:09:15 UTC 2020 // by class com.rusefi.output.FileJavaFieldsConsumer import com.rusefi.config.*; @@ -1039,7 +1039,7 @@ public class Fields { public static final int servoOutputPins8_offset = 3147; public static final int showHumanReadableWarning_offset = 976; public static final int showSdCardWarning_offset = 76; - public static final int SIGNATURE_HASH = 1536609367; + public static final int SIGNATURE_HASH = 1945604263; public static final int silentTriggerError_offset = 1464; public static final int slowAdcAlpha_offset = 2088; public static final int sparkDwellRpmBins_offset = 332; @@ -1278,7 +1278,7 @@ public class Fields { public static final int TS_RESPONSE_COMMAND_OK = 7; public static final int TS_RESPONSE_OK = 0; public static final char TS_SET_LOGGER_SWITCH = 'l'; - public static final String TS_SIGNATURE = "rusEFI 2020.07.04.all.1536609367"; + public static final String TS_SIGNATURE = "rusEFI 2020.07.05.all.1945604263"; public static final char TS_SINGLE_WRITE_COMMAND = 'W'; public static final int tunerStudioSerialSpeed_offset = 728; public static final int twoWireBatchIgnition_offset = 1476; @@ -2131,7 +2131,7 @@ public class Fields { public static final Field TPSDECELENLEANMENTTHRESHOLD = Field.create("TPSDECELENLEANMENTTHRESHOLD", 2080, FieldType.FLOAT); public static final Field TPSDECELENLEANMENTMULTIPLIER = Field.create("TPSDECELENLEANMENTMULTIPLIER", 2084, FieldType.FLOAT); public static final Field SLOWADCALPHA = Field.create("SLOWADCALPHA", 2088, FieldType.FLOAT); - public static final String[] debug_mode_e = {"Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "Mode40"}; + public static final String[] debug_mode_e = {"Alternator PID", "TPS acceleration enrichment", "INVALID", "Idle Control", "Engine Load accl enrich", "Trigger Counters", "FSIO_ADC", "AUX_PID_1", "VVT input", "Cranking", "Timing", "Closed-loop fuel corr PID", "VSS", "SD card", "sr5", "Knock", "mode16", "Electronic Throttle", "Executor", "Bench Test / TS commands", "Aux Valves", "Analog inputs #1", "INSTANT_RPM", "FSIO_EXPRESSION_1_7", "Status", "CJ125", "CAN", "MAP", "Metrics", "ETB#2", "Ion Sense", "TLE8888", "Analog inputs #2", "Dwell Metric", "INVALID", "ETB Logic", "Boost Control", "Start/Stop", "Launch", "ETB Autotune", "FSIO_COMPOSITE_LOG", "FSIO_EXPRESSION_8_14", "FSIO_SPECIAL", "Mode43", "Mode44"}; public static final Field DEBUGMODE = Field.create("DEBUGMODE", 2092, FieldType.INT, debug_mode_e); public static final Field AUXSERIALSPEED = Field.create("AUXSERIALSPEED", 2096, FieldType.INT); public static final Field THROTTLEPEDALSECONDARYUPVOLTAGE = Field.create("THROTTLEPEDALSECONDARYUPVOLTAGE", 2100, FieldType.FLOAT); diff --git a/java_console/rusefi.xml b/java_console/rusefi.xml index b9626e8229..d7fc2c34fa 100644 --- a/java_console/rusefi.xml +++ b/java_console/rusefi.xml @@ -1,6 +1,6 @@ - +