From f5dfed8f91e565d6d0bbbc11df2bba8aa36094db Mon Sep 17 00:00:00 2001 From: rusefi Date: Sun, 2 Aug 2020 13:35:14 -0400 Subject: [PATCH 1/3] @kon here you are --- firmware/integration/rusefi_config.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index 6eae5a2500..bf4367486e 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -1117,9 +1117,10 @@ int16_t tps2Max;Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\ #define can_baudrate_e_enum "100kbps", "250kbps" , "500kbps", "1Mbps" custom can_baudrate_e 1 bits, U08, @OFFSET@, [0:1], @@can_baudrate_e_enum@@ can_baudrate_e canBaudRate; set can_baudrate + uint8_t un1used_former_warmup_target_afr;;"units", 1, 0, -20, 100, 0 can_baudrate_e can2BaudRate; - uint32_t[5] unused_former_warmup_target_afr;;"units", 1, 0, -20, 100, 0 + uint8_t[18] unused_former_warmup_target_afr;;"units", 1, 0, -20, 100, 0 float boostCutPressure;kPa value at which we need to cut fuel and spark, 0 if not enabled;"kPa", 1, 0, 0, 500, 0 From e076f3cf97a318c3785932a9670558d0d6fe57dd Mon Sep 17 00:00:00 2001 From: rusefi Date: Sun, 2 Aug 2020 13:38:27 -0400 Subject: [PATCH 2/3] poke --- firmware/integration/rusefi_config.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/firmware/integration/rusefi_config.txt b/firmware/integration/rusefi_config.txt index bf4367486e..61779ff8c0 100644 --- a/firmware/integration/rusefi_config.txt +++ b/firmware/integration/rusefi_config.txt @@ -1102,7 +1102,6 @@ int16_t tps2Max;Full throttle#2. tpsMax value as 10 bit ADC value. Not Voltage!\ float engineLoadAccelEnrichmentMultiplier;;"coeff", 1, 0, 0, 200, 3 - uint32_t uartConsoleSerialSpeed;Band rate for primary TTL;"BPs", 1, 0, 0,1000000, 0 float tpsDecelEnleanmentThreshold;;"roc", 1, 0, 0, 200, 3 float tpsDecelEnleanmentMultiplier;;"coeff", 1, 0, 0, 200, 3 From f6e8ebcb5e035e17f0e6c2851864583e6386d8cb Mon Sep 17 00:00:00 2001 From: GitHub build-firmware Action Date: Sun, 2 Aug 2020 17:46:08 +0000 Subject: [PATCH 3/3] Auto-generated configs and docs --- ...ngine_configuration_generated_structures.h | 20 ++++++++++++------ .../controllers/algo/rusefi_generated.h | 10 +++++---- ...ngine_configuration_generated_structures.h | 20 ++++++++++++------ .../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 | 10 +++++---- .../controllers/generated/signature_all.h | 4 ++-- .../generated/signature_frankenso_na6.h | 4 ++-- .../controllers/generated/signature_kin.h | 4 ++-- .../controllers/generated/signature_mre_f4.h | 4 ++-- .../controllers/generated/signature_mre_f7.h | 4 ++-- .../generated/signature_prometheus_405.h | 4 ++-- .../generated/signature_prometheus_469.h | 4 ++-- .../generated/signature_proteus_f4.h | 4 ++-- .../generated/signature_proteus_f7.h | 4 ++-- firmware/tunerstudio/generated/cache.zip | Bin 847907 -> 848033 bytes firmware/tunerstudio/generated/rusefi.ini | 12 ++++++----- .../generated/rusefi_frankenso_na6.ini | 12 ++++++----- .../tunerstudio/generated/rusefi_kinetis.ini | 12 ++++++----- .../tunerstudio/generated/rusefi_mre_f4.ini | 12 ++++++----- .../tunerstudio/generated/rusefi_mre_f7.ini | 12 ++++++----- .../generated/rusefi_prometheus_405.ini | 12 ++++++----- .../generated/rusefi_prometheus_469.ini | 12 ++++++----- .../generated/rusefi_proteus_f4.ini | 12 ++++++----- .../generated/rusefi_proteus_f7.ini | 12 ++++++----- .../com/rusefi/config/generated/Fields.java | 16 +++++++++----- java_console/rusefi.xml | 2 +- 29 files changed, 137 insertions(+), 93 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 25b6a34529..fddf5689a1 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 Aug 02 17:27:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Aug 02 17:45:49 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -2582,14 +2582,22 @@ struct engine_configuration_s { */ can_baudrate_e canBaudRate; /** - * need 4 byte alignment * offset 2109 */ - uint8_t alignmentFill_at_2109[3]; + uint8_t un1used_former_warmup_target_afr; /** - * offset 2112 + * offset 2110 */ - uint32_t unused_former_warmup_target_afr[5]; + can_baudrate_e can2BaudRate; + /** + * offset 2111 + */ + uint8_t unused_former_warmup_target_afr[18]; + /** + * need 4 byte alignment + * offset 2129 + */ + uint8_t alignmentFill_at_2129[3]; /** * kPa value at which we need to cut fuel and spark, 0 if not enabled * offset 2132 @@ -3533,4 +3541,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Aug 02 17:27:13 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Aug 02 17:45:49 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 b0794b7904..e2e01f0676 100644 --- a/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h +++ b/firmware/config/boards/kinetis/config/controllers/algo/rusefi_generated.h @@ -41,7 +41,7 @@ #define afterstartHoldTime_offset 6152 #define air_pressure_sensor_config_s_size 16 #define alignEngineSnifferAtTDC_offset 744 -#define alignmentFill_at_2109_offset 2109 +#define alignmentFill_at_2129_offset 2129 #define alignmentFill_at_4514_offset 4514 #define alternator_antiwindupFreq_offset 1764 #define alternator_derivativeFilterLoss_offset 1760 @@ -176,6 +176,7 @@ #define camInputs2_offset 557 #define camInputs3_offset 558 #define camInputs4_offset 559 +#define can2BaudRate_offset 2110 #define can_baudrate_e_enum "100kbps", "250kbps" , "500kbps", "1Mbps" #define CAN_DEFAULT_BASE 0x200 #define canBaudRate_offset 2108 @@ -1078,7 +1079,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 3360130199 +#define SIGNATURE_HASH 3824537910 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1348,12 +1349,13 @@ #define ts_show_spi true #define ts_show_trigger_comparator true #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.08.02.kin.3360130199" +#define TS_SIGNATURE "rusEFI 2020.08.02.kin.3824537910" #define TS_SINGLE_WRITE_COMMAND 'W' #define tunerStudioSerialSpeed_offset 728 #define twoWireBatchIgnition_offset 1476 #define twoWireBatchInjection_offset 1476 #define uartConsoleSerialSpeed_offset 2076 +#define un1used_former_warmup_target_afr_offset 2109 #define unused1059_offset 3964 #define unused1476b20_offset 1476 #define unused2432_offset 2432 @@ -1374,7 +1376,7 @@ #define unused_1484_bit_30_offset 1476 #define unused_1484_bit_31_offset 1476 #define unused_alFIn_offset 4024 -#define unused_former_warmup_target_afr_offset 2112 +#define unused_former_warmup_target_afr_offset 2111 #define unusedAt712_offset 712 #define unusedAt716_offset 716 #define unusedAt720_offset 720 diff --git a/firmware/controllers/generated/engine_configuration_generated_structures.h b/firmware/controllers/generated/engine_configuration_generated_structures.h index 70a5f3827f..8eb7893b8b 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 Aug 02 17:27:00 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 UTC 2020 // by class com.rusefi.output.CHeaderConsumer // begin #pragma once @@ -2582,14 +2582,22 @@ struct engine_configuration_s { */ can_baudrate_e canBaudRate; /** - * need 4 byte alignment * offset 2109 */ - uint8_t alignmentFill_at_2109[3]; + uint8_t un1used_former_warmup_target_afr; /** - * offset 2112 + * offset 2110 */ - uint32_t unused_former_warmup_target_afr[5]; + can_baudrate_e can2BaudRate; + /** + * offset 2111 + */ + uint8_t unused_former_warmup_target_afr[18]; + /** + * need 4 byte alignment + * offset 2129 + */ + uint8_t alignmentFill_at_2129[3]; /** * kPa value at which we need to cut fuel and spark, 0 if not enabled * offset 2132 @@ -3533,4 +3541,4 @@ struct persistent_config_s { typedef struct persistent_config_s persistent_config_s; // end -// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:27:00 UTC 2020 +// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 UTC 2020 diff --git a/firmware/controllers/generated/fsio_enums_generated.def b/firmware/controllers/generated/fsio_enums_generated.def index b6d0f96d8c..9eebce4569 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 Aug 02 17:27:00 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 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 8ac401227c..27d156831c 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 Aug 02 17:27:00 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 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 37755c8e0d..52d1ba5493 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 Aug 02 17:27:00 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 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 6ca7405950..af38e8ebb3 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 Aug 02 17:27:00 UTC 2020 +// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Aug 02 17:45:38 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 2e175e3790..89e8958df7 100644 --- a/firmware/controllers/generated/rusefi_generated.h +++ b/firmware/controllers/generated/rusefi_generated.h @@ -41,7 +41,7 @@ #define afterstartHoldTime_offset 6152 #define air_pressure_sensor_config_s_size 16 #define alignEngineSnifferAtTDC_offset 744 -#define alignmentFill_at_2109_offset 2109 +#define alignmentFill_at_2129_offset 2129 #define alignmentFill_at_4514_offset 4514 #define alternator_antiwindupFreq_offset 1764 #define alternator_derivativeFilterLoss_offset 1760 @@ -176,6 +176,7 @@ #define camInputs2_offset 557 #define camInputs3_offset 558 #define camInputs4_offset 559 +#define can2BaudRate_offset 2110 #define can_baudrate_e_enum "100kbps", "250kbps" , "500kbps", "1Mbps" #define CAN_DEFAULT_BASE 0x200 #define canBaudRate_offset 2108 @@ -1078,7 +1079,7 @@ #define showSdCardWarning_offset 76 #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 91838477 +#define SIGNATURE_HASH 785059244 #define silentTriggerError_offset 1464 #define slowAdcAlpha_offset 2088 #define sparkDwellRpmBins_offset 332 @@ -1348,12 +1349,13 @@ #define ts_show_spi true #define ts_show_trigger_comparator false #define ts_show_tunerstudio_port true -#define TS_SIGNATURE "rusEFI 2020.08.02.all.91838477" +#define TS_SIGNATURE "rusEFI 2020.08.02.all.785059244" #define TS_SINGLE_WRITE_COMMAND 'W' #define tunerStudioSerialSpeed_offset 728 #define twoWireBatchIgnition_offset 1476 #define twoWireBatchInjection_offset 1476 #define uartConsoleSerialSpeed_offset 2076 +#define un1used_former_warmup_target_afr_offset 2109 #define unused1059_offset 3964 #define unused1476b20_offset 1476 #define unused2432_offset 2432 @@ -1374,7 +1376,7 @@ #define unused_1484_bit_30_offset 1476 #define unused_1484_bit_31_offset 1476 #define unused_alFIn_offset 4024 -#define unused_former_warmup_target_afr_offset 2112 +#define unused_former_warmup_target_afr_offset 2111 #define unusedAt712_offset 712 #define unusedAt716_offset 716 #define unusedAt720_offset 720 diff --git a/firmware/controllers/generated/signature_all.h b/firmware/controllers/generated/signature_all.h index c4792d9dfb..c39c8a97f2 100644 --- a/firmware/controllers/generated/signature_all.h +++ b/firmware/controllers/generated/signature_all.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD all #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 91838477 -#define TS_SIGNATURE "rusEFI 2020.08.02.all.91838477" +#define SIGNATURE_HASH 785059244 +#define TS_SIGNATURE "rusEFI 2020.08.02.all.785059244" diff --git a/firmware/controllers/generated/signature_frankenso_na6.h b/firmware/controllers/generated/signature_frankenso_na6.h index a8fdaf3f87..d425b08874 100644 --- a/firmware/controllers/generated/signature_frankenso_na6.h +++ b/firmware/controllers/generated/signature_frankenso_na6.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD frankenso_na6 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 3690869998 -#define TS_SIGNATURE "rusEFI 2020.08.02.frankenso_na6.3690869998" +#define SIGNATURE_HASH 4031537487 +#define TS_SIGNATURE "rusEFI 2020.08.02.frankenso_na6.4031537487" diff --git a/firmware/controllers/generated/signature_kin.h b/firmware/controllers/generated/signature_kin.h index 403ca289cb..d283db199d 100644 --- a/firmware/controllers/generated/signature_kin.h +++ b/firmware/controllers/generated/signature_kin.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD kin #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 3360130199 -#define TS_SIGNATURE "rusEFI 2020.08.02.kin.3360130199" +#define SIGNATURE_HASH 3824537910 +#define TS_SIGNATURE "rusEFI 2020.08.02.kin.3824537910" diff --git a/firmware/controllers/generated/signature_mre_f4.h b/firmware/controllers/generated/signature_mre_f4.h index b58c54fbba..1e79edf76f 100644 --- a/firmware/controllers/generated/signature_mre_f4.h +++ b/firmware/controllers/generated/signature_mre_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f4 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 1283952259 -#define TS_SIGNATURE "rusEFI 2020.08.02.mre_f4.1283952259" +#define SIGNATURE_HASH 1731582754 +#define TS_SIGNATURE "rusEFI 2020.08.02.mre_f4.1731582754" diff --git a/firmware/controllers/generated/signature_mre_f7.h b/firmware/controllers/generated/signature_mre_f7.h index fb34abf8df..b07775a7af 100644 --- a/firmware/controllers/generated/signature_mre_f7.h +++ b/firmware/controllers/generated/signature_mre_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD mre_f7 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 1283952259 -#define TS_SIGNATURE "rusEFI 2020.08.02.mre_f7.1283952259" +#define SIGNATURE_HASH 1731582754 +#define TS_SIGNATURE "rusEFI 2020.08.02.mre_f7.1731582754" diff --git a/firmware/controllers/generated/signature_prometheus_405.h b/firmware/controllers/generated/signature_prometheus_405.h index 91e8d88e2b..eb802ffe22 100644 --- a/firmware/controllers/generated/signature_prometheus_405.h +++ b/firmware/controllers/generated/signature_prometheus_405.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_405 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 4033183881 -#define TS_SIGNATURE "rusEFI 2020.08.02.prometheus_405.4033183881" +#define SIGNATURE_HASH 3688355112 +#define TS_SIGNATURE "rusEFI 2020.08.02.prometheus_405.3688355112" diff --git a/firmware/controllers/generated/signature_prometheus_469.h b/firmware/controllers/generated/signature_prometheus_469.h index 0accbb4b91..6b020d27c6 100644 --- a/firmware/controllers/generated/signature_prometheus_469.h +++ b/firmware/controllers/generated/signature_prometheus_469.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD prometheus_469 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 4033183881 -#define TS_SIGNATURE "rusEFI 2020.08.02.prometheus_469.4033183881" +#define SIGNATURE_HASH 3688355112 +#define TS_SIGNATURE "rusEFI 2020.08.02.prometheus_469.3688355112" diff --git a/firmware/controllers/generated/signature_proteus_f4.h b/firmware/controllers/generated/signature_proteus_f4.h index c3212307d1..71417f2a68 100644 --- a/firmware/controllers/generated/signature_proteus_f4.h +++ b/firmware/controllers/generated/signature_proteus_f4.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f4 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 2296916418 -#define TS_SIGNATURE "rusEFI 2020.08.02.proteus_f4.2296916418" +#define SIGNATURE_HASH 2740616291 +#define TS_SIGNATURE "rusEFI 2020.08.02.proteus_f4.2740616291" diff --git a/firmware/controllers/generated/signature_proteus_f7.h b/firmware/controllers/generated/signature_proteus_f7.h index 055480cc7e..0898b058a4 100644 --- a/firmware/controllers/generated/signature_proteus_f7.h +++ b/firmware/controllers/generated/signature_proteus_f7.h @@ -4,5 +4,5 @@ #define SIGNATURE_BOARD proteus_f7 #define SIGNATURE_DATE 2020.08.02 -#define SIGNATURE_HASH 2296916418 -#define TS_SIGNATURE "rusEFI 2020.08.02.proteus_f7.2296916418" +#define SIGNATURE_HASH 2740616291 +#define TS_SIGNATURE "rusEFI 2020.08.02.proteus_f7.2740616291" diff --git a/firmware/tunerstudio/generated/cache.zip b/firmware/tunerstudio/generated/cache.zip index 6d3bdd41a0c4546440a6a1daad31ebb7ca7fe013..7bdd14401ac75e2b30217268e0aa771b21937bcf 100644 GIT binary patch delta 61139 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 ZZEbZd)Rh1Rt4IB1l!w9Wvf-$I{U3P>RmT7T delta 61793 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 - +