Merge remote-tracking branch 'origin/master' into master
This commit is contained in:
commit
07a8e237a5
|
@ -27,6 +27,14 @@ All notable user-facing or behavior-altering changes will be documented in this
|
||||||
|
|
||||||
## XXX 202X Release
|
## XXX 202X Release
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- DAIHATSU 3/4 cylinder trigger https://rusefi.com/images/triggers/trigger_6.png
|
||||||
|
- Ford ST170 VVT cam trigger https://rusefi.com/images/triggers/trigger_42.png
|
||||||
|
|
||||||
|
## December 2020 National Mutt Day
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- minor bugfix - engine sniffer missing pin names #1995
|
||||||
|
|
||||||
## November 2020 Release - "Black Friday"
|
## November 2020 Release - "Black Friday"
|
||||||
|
|
||||||
|
@ -41,7 +49,7 @@ All notable user-facing or behavior-altering changes will be documented in this
|
||||||
- Improved setting ECU presets/defaults from TunerStudio
|
- Improved setting ECU presets/defaults from TunerStudio
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Improved TunerStudio protocol reliability - should see fewer CRC errors now
|
- Improved TunerStudio protocol reliability - should see fewer CRC errors now #1943
|
||||||
|
|
||||||
## October 2020 Release - "Sausage Pizza Day"
|
## October 2020 Release - "Sausage Pizza Day"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "rusefi_enums.h"
|
#include "rusefi_enums.h"
|
||||||
#include "rusefi_hw_enums.h"
|
#include "rusefi_hw_enums.h"
|
||||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:35 UTC 2020
|
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:48 EST 2020
|
||||||
// see also gen_config_and_enums.bat
|
// see also gen_config_and_enums.bat
|
||||||
|
|
||||||
|
|
||||||
|
@ -1337,6 +1337,10 @@ case TT_3_1_CAM:
|
||||||
return "TT_3_1_CAM";
|
return "TT_3_1_CAM";
|
||||||
case TT_60_2_VW:
|
case TT_60_2_VW:
|
||||||
return "TT_60_2_VW";
|
return "TT_60_2_VW";
|
||||||
|
case TT_CHRYSLER_NGC_36_2_2:
|
||||||
|
return "TT_CHRYSLER_NGC_36_2_2";
|
||||||
|
case TT_DAIHATSU:
|
||||||
|
return "TT_DAIHATSU";
|
||||||
case TT_DODGE_NEON_1995:
|
case TT_DODGE_NEON_1995:
|
||||||
return "TT_DODGE_NEON_1995";
|
return "TT_DODGE_NEON_1995";
|
||||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||||
|
@ -1353,6 +1357,8 @@ case TT_FIAT_IAW_P8:
|
||||||
return "TT_FIAT_IAW_P8";
|
return "TT_FIAT_IAW_P8";
|
||||||
case TT_FORD_ASPIRE:
|
case TT_FORD_ASPIRE:
|
||||||
return "TT_FORD_ASPIRE";
|
return "TT_FORD_ASPIRE";
|
||||||
|
case TT_FORD_ST170:
|
||||||
|
return "TT_FORD_ST170";
|
||||||
case TT_GM_7X:
|
case TT_GM_7X:
|
||||||
return "TT_GM_7X";
|
return "TT_GM_7X";
|
||||||
case TT_GM_LS_24:
|
case TT_GM_LS_24:
|
||||||
|
@ -1369,8 +1375,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
||||||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||||
case TT_HONDA_CBR_600:
|
case TT_HONDA_CBR_600:
|
||||||
return "TT_HONDA_CBR_600";
|
return "TT_HONDA_CBR_600";
|
||||||
case TT_HONDA_CBR_600_CUSTOM:
|
|
||||||
return "TT_HONDA_CBR_600_CUSTOM";
|
|
||||||
case TT_HONDA_K_12_1:
|
case TT_HONDA_K_12_1:
|
||||||
return "TT_HONDA_K_12_1";
|
return "TT_HONDA_K_12_1";
|
||||||
case TT_JEEP_18_2_2_2:
|
case TT_JEEP_18_2_2_2:
|
||||||
|
@ -1387,12 +1391,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
||||||
return "TT_MAZDA_MIATA_VVT_TEST";
|
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||||
case TT_MAZDA_SOHC_4:
|
case TT_MAZDA_SOHC_4:
|
||||||
return "TT_MAZDA_SOHC_4";
|
return "TT_MAZDA_SOHC_4";
|
||||||
case TT_MAZDA_Z5:
|
|
||||||
return "TT_MAZDA_Z5";
|
|
||||||
case TT_MIATA_VVT:
|
case TT_MIATA_VVT:
|
||||||
return "TT_MIATA_VVT";
|
return "TT_MIATA_VVT";
|
||||||
case TT_MINI_COOPER_R50:
|
|
||||||
return "TT_MINI_COOPER_R50";
|
|
||||||
case TT_MITSUBISHI:
|
case TT_MITSUBISHI:
|
||||||
return "TT_MITSUBISHI";
|
return "TT_MITSUBISHI";
|
||||||
case TT_NISSAN_SR20VE:
|
case TT_NISSAN_SR20VE:
|
||||||
|
@ -1494,6 +1494,8 @@ case VVT_BOSCH_QUICK_START:
|
||||||
return "VVT_BOSCH_QUICK_START";
|
return "VVT_BOSCH_QUICK_START";
|
||||||
case VVT_FIRST_HALF:
|
case VVT_FIRST_HALF:
|
||||||
return "VVT_FIRST_HALF";
|
return "VVT_FIRST_HALF";
|
||||||
|
case VVT_FORD_ST170:
|
||||||
|
return "VVT_FORD_ST170";
|
||||||
case VVT_INACTIVE:
|
case VVT_INACTIVE:
|
||||||
return "VVT_INACTIVE";
|
return "VVT_INACTIVE";
|
||||||
case VVT_SECOND_HALF:
|
case VVT_SECOND_HALF:
|
||||||
|
|
|
@ -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 29 03:22:10 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
||||||
bool fuelClosedLoopCorrectionEnabled : 1;
|
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||||
/**
|
/**
|
||||||
* Print details into rusEfi console
|
* Print details into rusEfi console
|
||||||
|
* enable verbose_idle
|
||||||
offset 1464 bit 2 */
|
offset 1464 bit 2 */
|
||||||
bool isVerboseIAC : 1;
|
bool isVerboseIAC : 1;
|
||||||
/**
|
/**
|
||||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:10 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020
|
||||||
|
|
|
@ -373,7 +373,7 @@
|
||||||
#define ENGINE_MAKE_VAG "VAG"
|
#define ENGINE_MAKE_VAG "VAG"
|
||||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||||
#define ENGINE_SNIFFER_UNIT_US 10
|
#define ENGINE_SNIFFER_UNIT_US 10
|
||||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
||||||
#define engineChartSize_offset 1480
|
#define engineChartSize_offset 1480
|
||||||
#define engineCode_offset 1128
|
#define engineCode_offset 1128
|
||||||
#define engineConfiguration_offset 0
|
#define engineConfiguration_offset 0
|
||||||
|
@ -1212,8 +1212,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD hellen_cypress
|
#define SIGNATURE_BOARD hellen_cypress
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 3486056747
|
#define SIGNATURE_HASH 3827438289
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1410,7 +1410,7 @@
|
||||||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
||||||
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
||||||
#define trigger_type_offset 524
|
#define trigger_type_offset 524
|
||||||
#define trigger_unusedBit_4_10_offset 528
|
#define trigger_unusedBit_4_10_offset 528
|
||||||
|
@ -1492,7 +1492,7 @@
|
||||||
#define TS_ONLINE_PROTOCOL_char z
|
#define TS_ONLINE_PROTOCOL_char z
|
||||||
#define TS_OUTPUT_COMMAND 'O'
|
#define TS_OUTPUT_COMMAND 'O'
|
||||||
#define TS_OUTPUT_COMMAND_char O
|
#define TS_OUTPUT_COMMAND_char O
|
||||||
#define TS_OUTPUT_SIZE 288
|
#define TS_OUTPUT_SIZE 340
|
||||||
#define TS_PAGE_COMMAND 'P'
|
#define TS_PAGE_COMMAND 'P'
|
||||||
#define TS_PAGE_COMMAND_char P
|
#define TS_PAGE_COMMAND_char P
|
||||||
#define TS_PERF_TRACE_BEGIN '_'
|
#define TS_PERF_TRACE_BEGIN '_'
|
||||||
|
@ -1543,16 +1543,46 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator false
|
#define ts_show_trigger_comparator false
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.hellen_cypress.3486056747"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
#define TT_TT_1_16 50
|
||||||
|
#define TT_TT_2JZ_1_12 29
|
||||||
|
#define TT_TT_2JZ_3_34 25
|
||||||
|
#define TT_TT_36_2_2_2 23
|
||||||
|
#define TT_TT_3_1_CAM 31
|
||||||
#define TT_TT_60_2_VW 20
|
#define TT_TT_60_2_VW 20
|
||||||
|
#define TT_TT_CHRYSLER_NGC_36_2_2 30
|
||||||
|
#define TT_TT_DAIHATSU 6
|
||||||
|
#define TT_TT_FORD_ASPIRE 1
|
||||||
|
#define TT_TT_FORD_ST170 42
|
||||||
|
#define TT_TT_GM_7X 5
|
||||||
|
#define TT_TT_GM_LS_24 27
|
||||||
|
#define TT_TT_HONDA_1_24 21
|
||||||
|
#define TT_TT_HONDA_1_4_24 13
|
||||||
|
#define TT_TT_HONDA_4_24_1 10
|
||||||
|
#define TT_TT_HONDA_CBR_600 28
|
||||||
|
#define TT_TT_HONDA_K_12_1 46
|
||||||
|
#define TT_TT_JEEP_18_2_2_2 37
|
||||||
|
#define TT_TT_JEEP_4_CYL 40
|
||||||
|
#define TT_TT_MAZDA_DOHC_1_4 15
|
||||||
|
#define TT_TT_MAZDA_MIATA_NA 3
|
||||||
|
#define TT_TT_MAZDA_MIATA_NB1 4
|
||||||
|
#define TT_TT_MAZDA_SOHC_4 7
|
||||||
|
#define TT_TT_MIATA_VVT 33
|
||||||
#define TT_TT_ONE 18
|
#define TT_TT_ONE 18
|
||||||
|
#define TT_TT_RENIX_44_2_2 44
|
||||||
|
#define TT_TT_RENIX_66_2_2_2 45
|
||||||
|
#define TT_TT_ROVER_K 26
|
||||||
|
#define TT_TT_SUBARU_7_6 36
|
||||||
|
#define TT_TT_SUBARU_SVX 49
|
||||||
#define TT_TT_TOOTHED_WHEEL 0
|
#define TT_TT_TOOTHED_WHEEL 0
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||||
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
||||||
|
#define TT_TT_VVT_BOSCH_QUICK_START 47
|
||||||
|
#define TT_TT_VVT_JZ 17
|
||||||
#define tunerStudioSerialSpeed_offset 728
|
#define tunerStudioSerialSpeed_offset 728
|
||||||
#define twoWireBatchIgnition_offset 1476
|
#define twoWireBatchIgnition_offset 1476
|
||||||
#define twoWireBatchInjection_offset 1476
|
#define twoWireBatchInjection_offset 1476
|
||||||
|
@ -1691,7 +1721,7 @@
|
||||||
#define veTable_offset 17440
|
#define veTable_offset 17440
|
||||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||||
#define vRefAdcChannel_offset 1470
|
#define vRefAdcChannel_offset 1470
|
||||||
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
|
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
|
||||||
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
||||||
#define vvtCamSensorUseRise_offset 744
|
#define vvtCamSensorUseRise_offset 744
|
||||||
#define vvtMode_offset 2328
|
#define vvtMode_offset 2328
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "rusefi_enums.h"
|
#include "rusefi_enums.h"
|
||||||
#include "rusefi_hw_enums.h"
|
#include "rusefi_hw_enums.h"
|
||||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:34 UTC 2020
|
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:47 EST 2020
|
||||||
// see also gen_config_and_enums.bat
|
// see also gen_config_and_enums.bat
|
||||||
|
|
||||||
|
|
||||||
|
@ -1133,6 +1133,10 @@ case TT_3_1_CAM:
|
||||||
return "TT_3_1_CAM";
|
return "TT_3_1_CAM";
|
||||||
case TT_60_2_VW:
|
case TT_60_2_VW:
|
||||||
return "TT_60_2_VW";
|
return "TT_60_2_VW";
|
||||||
|
case TT_CHRYSLER_NGC_36_2_2:
|
||||||
|
return "TT_CHRYSLER_NGC_36_2_2";
|
||||||
|
case TT_DAIHATSU:
|
||||||
|
return "TT_DAIHATSU";
|
||||||
case TT_DODGE_NEON_1995:
|
case TT_DODGE_NEON_1995:
|
||||||
return "TT_DODGE_NEON_1995";
|
return "TT_DODGE_NEON_1995";
|
||||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||||
|
@ -1149,6 +1153,8 @@ case TT_FIAT_IAW_P8:
|
||||||
return "TT_FIAT_IAW_P8";
|
return "TT_FIAT_IAW_P8";
|
||||||
case TT_FORD_ASPIRE:
|
case TT_FORD_ASPIRE:
|
||||||
return "TT_FORD_ASPIRE";
|
return "TT_FORD_ASPIRE";
|
||||||
|
case TT_FORD_ST170:
|
||||||
|
return "TT_FORD_ST170";
|
||||||
case TT_GM_7X:
|
case TT_GM_7X:
|
||||||
return "TT_GM_7X";
|
return "TT_GM_7X";
|
||||||
case TT_GM_LS_24:
|
case TT_GM_LS_24:
|
||||||
|
@ -1165,8 +1171,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
||||||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||||
case TT_HONDA_CBR_600:
|
case TT_HONDA_CBR_600:
|
||||||
return "TT_HONDA_CBR_600";
|
return "TT_HONDA_CBR_600";
|
||||||
case TT_HONDA_CBR_600_CUSTOM:
|
|
||||||
return "TT_HONDA_CBR_600_CUSTOM";
|
|
||||||
case TT_HONDA_K_12_1:
|
case TT_HONDA_K_12_1:
|
||||||
return "TT_HONDA_K_12_1";
|
return "TT_HONDA_K_12_1";
|
||||||
case TT_JEEP_18_2_2_2:
|
case TT_JEEP_18_2_2_2:
|
||||||
|
@ -1183,12 +1187,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
||||||
return "TT_MAZDA_MIATA_VVT_TEST";
|
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||||
case TT_MAZDA_SOHC_4:
|
case TT_MAZDA_SOHC_4:
|
||||||
return "TT_MAZDA_SOHC_4";
|
return "TT_MAZDA_SOHC_4";
|
||||||
case TT_MAZDA_Z5:
|
|
||||||
return "TT_MAZDA_Z5";
|
|
||||||
case TT_MIATA_VVT:
|
case TT_MIATA_VVT:
|
||||||
return "TT_MIATA_VVT";
|
return "TT_MIATA_VVT";
|
||||||
case TT_MINI_COOPER_R50:
|
|
||||||
return "TT_MINI_COOPER_R50";
|
|
||||||
case TT_MITSUBISHI:
|
case TT_MITSUBISHI:
|
||||||
return "TT_MITSUBISHI";
|
return "TT_MITSUBISHI";
|
||||||
case TT_NISSAN_SR20VE:
|
case TT_NISSAN_SR20VE:
|
||||||
|
@ -1290,6 +1290,8 @@ case VVT_BOSCH_QUICK_START:
|
||||||
return "VVT_BOSCH_QUICK_START";
|
return "VVT_BOSCH_QUICK_START";
|
||||||
case VVT_FIRST_HALF:
|
case VVT_FIRST_HALF:
|
||||||
return "VVT_FIRST_HALF";
|
return "VVT_FIRST_HALF";
|
||||||
|
case VVT_FORD_ST170:
|
||||||
|
return "VVT_FORD_ST170";
|
||||||
case VVT_INACTIVE:
|
case VVT_INACTIVE:
|
||||||
return "VVT_INACTIVE";
|
return "VVT_INACTIVE";
|
||||||
case VVT_SECOND_HALF:
|
case VVT_SECOND_HALF:
|
||||||
|
|
|
@ -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 29 03:22:08 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
||||||
bool fuelClosedLoopCorrectionEnabled : 1;
|
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||||
/**
|
/**
|
||||||
* Print details into rusEfi console
|
* Print details into rusEfi console
|
||||||
|
* enable verbose_idle
|
||||||
offset 1464 bit 2 */
|
offset 1464 bit 2 */
|
||||||
bool isVerboseIAC : 1;
|
bool isVerboseIAC : 1;
|
||||||
/**
|
/**
|
||||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun Nov 29 03:22:08 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020
|
||||||
|
|
|
@ -373,7 +373,7 @@
|
||||||
#define ENGINE_MAKE_VAG "VAG"
|
#define ENGINE_MAKE_VAG "VAG"
|
||||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||||
#define ENGINE_SNIFFER_UNIT_US 10
|
#define ENGINE_SNIFFER_UNIT_US 10
|
||||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
||||||
#define engineChartSize_offset 1480
|
#define engineChartSize_offset 1480
|
||||||
#define engineCode_offset 1128
|
#define engineCode_offset 1128
|
||||||
#define engineConfiguration_offset 0
|
#define engineConfiguration_offset 0
|
||||||
|
@ -1212,8 +1212,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 2664774609
|
#define SIGNATURE_HASH 3040749611
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1410,7 +1410,7 @@
|
||||||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
||||||
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
||||||
#define trigger_type_offset 524
|
#define trigger_type_offset 524
|
||||||
#define trigger_unusedBit_4_10_offset 528
|
#define trigger_unusedBit_4_10_offset 528
|
||||||
|
@ -1492,7 +1492,7 @@
|
||||||
#define TS_ONLINE_PROTOCOL_char z
|
#define TS_ONLINE_PROTOCOL_char z
|
||||||
#define TS_OUTPUT_COMMAND 'O'
|
#define TS_OUTPUT_COMMAND 'O'
|
||||||
#define TS_OUTPUT_COMMAND_char O
|
#define TS_OUTPUT_COMMAND_char O
|
||||||
#define TS_OUTPUT_SIZE 288
|
#define TS_OUTPUT_SIZE 340
|
||||||
#define TS_PAGE_COMMAND 'P'
|
#define TS_PAGE_COMMAND 'P'
|
||||||
#define TS_PAGE_COMMAND_char P
|
#define TS_PAGE_COMMAND_char P
|
||||||
#define TS_PERF_TRACE_BEGIN '_'
|
#define TS_PERF_TRACE_BEGIN '_'
|
||||||
|
@ -1543,16 +1543,46 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator true
|
#define ts_show_trigger_comparator true
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.kin.2664774609"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
#define TT_TT_1_16 50
|
||||||
|
#define TT_TT_2JZ_1_12 29
|
||||||
|
#define TT_TT_2JZ_3_34 25
|
||||||
|
#define TT_TT_36_2_2_2 23
|
||||||
|
#define TT_TT_3_1_CAM 31
|
||||||
#define TT_TT_60_2_VW 20
|
#define TT_TT_60_2_VW 20
|
||||||
|
#define TT_TT_CHRYSLER_NGC_36_2_2 30
|
||||||
|
#define TT_TT_DAIHATSU 6
|
||||||
|
#define TT_TT_FORD_ASPIRE 1
|
||||||
|
#define TT_TT_FORD_ST170 42
|
||||||
|
#define TT_TT_GM_7X 5
|
||||||
|
#define TT_TT_GM_LS_24 27
|
||||||
|
#define TT_TT_HONDA_1_24 21
|
||||||
|
#define TT_TT_HONDA_1_4_24 13
|
||||||
|
#define TT_TT_HONDA_4_24_1 10
|
||||||
|
#define TT_TT_HONDA_CBR_600 28
|
||||||
|
#define TT_TT_HONDA_K_12_1 46
|
||||||
|
#define TT_TT_JEEP_18_2_2_2 37
|
||||||
|
#define TT_TT_JEEP_4_CYL 40
|
||||||
|
#define TT_TT_MAZDA_DOHC_1_4 15
|
||||||
|
#define TT_TT_MAZDA_MIATA_NA 3
|
||||||
|
#define TT_TT_MAZDA_MIATA_NB1 4
|
||||||
|
#define TT_TT_MAZDA_SOHC_4 7
|
||||||
|
#define TT_TT_MIATA_VVT 33
|
||||||
#define TT_TT_ONE 18
|
#define TT_TT_ONE 18
|
||||||
|
#define TT_TT_RENIX_44_2_2 44
|
||||||
|
#define TT_TT_RENIX_66_2_2_2 45
|
||||||
|
#define TT_TT_ROVER_K 26
|
||||||
|
#define TT_TT_SUBARU_7_6 36
|
||||||
|
#define TT_TT_SUBARU_SVX 49
|
||||||
#define TT_TT_TOOTHED_WHEEL 0
|
#define TT_TT_TOOTHED_WHEEL 0
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||||
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
||||||
|
#define TT_TT_VVT_BOSCH_QUICK_START 47
|
||||||
|
#define TT_TT_VVT_JZ 17
|
||||||
#define tunerStudioSerialSpeed_offset 728
|
#define tunerStudioSerialSpeed_offset 728
|
||||||
#define twoWireBatchIgnition_offset 1476
|
#define twoWireBatchIgnition_offset 1476
|
||||||
#define twoWireBatchInjection_offset 1476
|
#define twoWireBatchInjection_offset 1476
|
||||||
|
@ -1691,7 +1721,7 @@
|
||||||
#define veTable_offset 17440
|
#define veTable_offset 17440
|
||||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||||
#define vRefAdcChannel_offset 1470
|
#define vRefAdcChannel_offset 1470
|
||||||
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
|
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
|
||||||
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
||||||
#define vvtCamSensorUseRise_offset 744
|
#define vvtCamSensorUseRise_offset 744
|
||||||
#define vvtMode_offset 2328
|
#define vvtMode_offset 2328
|
||||||
|
|
|
@ -47,7 +47,7 @@ static void setDefaultCustomMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
|
|
||||||
void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setHonda600(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
|
setDefaultFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
engineConfiguration->trigger.type = TT_HONDA_CBR_600_CUSTOM;
|
engineConfiguration->trigger.type = TT_HONDA_CBR_600;
|
||||||
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
|
engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
|
||||||
|
|
||||||
// upside down wiring
|
// upside down wiring
|
||||||
|
|
|
@ -259,7 +259,6 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
|
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
engineConfiguration->isHip9011Enabled = false;
|
engineConfiguration->isHip9011Enabled = false;
|
||||||
CONFIG(isSdCardEnabled) = false;
|
|
||||||
|
|
||||||
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
@ -372,6 +371,9 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
#endif /* BOARD_TLE8888_COUNT */
|
#endif /* BOARD_TLE8888_COUNT */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set engine_type 66
|
||||||
|
*/
|
||||||
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
miataNAcommonEngineSettings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
@ -388,7 +390,7 @@ void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->useIacTableForCoasting = true;
|
engineConfiguration->useIacTableForCoasting = true;
|
||||||
engineConfiguration->idlePidDeactivationTpsThreshold = 90;
|
engineConfiguration->idlePidDeactivationTpsThreshold = 90;
|
||||||
|
|
||||||
engineConfiguration->isVerboseIAC = true;
|
// engineConfiguration->isVerboseIAC = true;
|
||||||
|
|
||||||
engineConfiguration->idleRpmPid.pFactor = 0.01;
|
engineConfiguration->idleRpmPid.pFactor = 0.01;
|
||||||
engineConfiguration->idleRpmPid.iFactor = 0.02;
|
engineConfiguration->idleRpmPid.iFactor = 0.02;
|
||||||
|
@ -462,6 +464,11 @@ void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
setMiataNA6_MAP_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
|
setMiataNA6_MAP_MRE(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
#if (BOARD_TLE8888_COUNT > 0)
|
||||||
|
// "35 - GP Out 1"
|
||||||
|
engineConfiguration->fuelPumpPin = TLE8888_PIN_21;
|
||||||
|
#endif /* BOARD_TLE8888_COUNT */
|
||||||
|
|
||||||
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
engineConfiguration->injectionMode = IM_SEQUENTIAL;
|
||||||
engineConfiguration->specs.displacement = 1.8;
|
engineConfiguration->specs.displacement = 1.8;
|
||||||
strcpy(CONFIG(engineMake), ENGINE_MAKE_MAZDA);
|
strcpy(CONFIG(engineMake), ENGINE_MAKE_MAZDA);
|
||||||
|
|
|
@ -22,5 +22,7 @@ void miataNAcommon(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set engine_type 20
|
||||||
|
*/
|
||||||
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,8 @@
|
||||||
|
|
||||||
#define EFI_LAUNCH_CONTROL TRUE
|
#define EFI_LAUNCH_CONTROL TRUE
|
||||||
|
|
||||||
|
#define EFI_DYNO_VIEW TRUE
|
||||||
|
|
||||||
#define EFI_FSIO TRUE
|
#define EFI_FSIO TRUE
|
||||||
|
|
||||||
#ifndef EFI_CDM_INTEGRATION
|
#ifndef EFI_CDM_INTEGRATION
|
||||||
|
|
|
@ -259,7 +259,9 @@ typedef struct {
|
||||||
scaled_lambda targetLambda; // 280
|
scaled_lambda targetLambda; // 280
|
||||||
scaled_afr airFuelRatio; // 282
|
scaled_afr airFuelRatio; // 282
|
||||||
|
|
||||||
uint8_t unusedAtTheEnd[4]; // we have some unused bytes to allow compatible TS changes
|
scaled_ms VssAcceleration; //284
|
||||||
|
//288
|
||||||
|
uint8_t unusedAtTheEnd[54]; // we have some unused bytes to allow compatible TS changes
|
||||||
|
|
||||||
// Temporary - will remove soon
|
// Temporary - will remove soon
|
||||||
TsDebugChannels* getDebugChannels() {
|
TsDebugChannels* getDebugChannels() {
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
#include "cdm_ion_sense.h"
|
#include "cdm_ion_sense.h"
|
||||||
#include "binary_logging.h"
|
#include "binary_logging.h"
|
||||||
#include "buffered_writer.h"
|
#include "buffered_writer.h"
|
||||||
|
#include "dynoview.h"
|
||||||
|
|
||||||
extern bool main_loop_started;
|
extern bool main_loop_started;
|
||||||
|
|
||||||
|
@ -167,7 +168,7 @@ static LoggingWithStorage logger2("main event handler");
|
||||||
* Time when the firmware version was reported last time, in seconds
|
* Time when the firmware version was reported last time, in seconds
|
||||||
* TODO: implement a request/response instead of just constantly sending this out
|
* TODO: implement a request/response instead of just constantly sending this out
|
||||||
*/
|
*/
|
||||||
static systime_t timeOfPreviousPrintVersion = (systime_t) -1;
|
static systime_t timeOfPreviousPrintVersion = 0;
|
||||||
|
|
||||||
#if EFI_PROD_CODE
|
#if EFI_PROD_CODE
|
||||||
static void printOutPin(const char *pinName, brain_pin_e hwPin) {
|
static void printOutPin(const char *pinName, brain_pin_e hwPin) {
|
||||||
|
@ -611,6 +612,10 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
|
||||||
tsOutputChannels->manifoldAirPressure = mapValue;
|
tsOutputChannels->manifoldAirPressure = mapValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if EFI_DYNO_VIEW
|
||||||
|
tsOutputChannels->VssAcceleration = getDynoviewAcceleration(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
#endif
|
||||||
|
|
||||||
//tsOutputChannels->knockCount = engine->knockCount;
|
//tsOutputChannels->knockCount = engine->knockCount;
|
||||||
//tsOutputChannels->knockLevel = engine->knockVolts;
|
//tsOutputChannels->knockLevel = engine->knockVolts;
|
||||||
|
|
||||||
|
|
|
@ -250,8 +250,9 @@ size_t getMultiSparkCount(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
floatus_t multiDelay = CONFIG(multisparkSparkDuration);
|
floatus_t multiDelay = CONFIG(multisparkSparkDuration);
|
||||||
floatus_t multiDwell = CONFIG(multisparkDwell);
|
floatus_t multiDwell = CONFIG(multisparkDwell);
|
||||||
|
|
||||||
ENGINE(engineState.multispark.delay) = US2NT(multiDelay);
|
// dwell times are below 10 seconds here so we use 32 bit type for performance reasons
|
||||||
ENGINE(engineState.multispark.dwell) = US2NT(multiDwell);
|
ENGINE(engineState.multispark.delay) = (uint32_t)USF2NT(multiDelay);
|
||||||
|
ENGINE(engineState.multispark.dwell) = (uint32_t)USF2NT(multiDwell);
|
||||||
|
|
||||||
constexpr float usPerDegreeAt1Rpm = 60e6 / 360;
|
constexpr float usPerDegreeAt1Rpm = 60e6 / 360;
|
||||||
floatus_t usPerDegree = usPerDegreeAt1Rpm / rpm;
|
floatus_t usPerDegree = usPerDegreeAt1Rpm / rpm;
|
||||||
|
|
|
@ -6,6 +6,7 @@ CONTROLLERS_ALGO_SRC_CPP = $(PROJECT_DIR)/controllers/algo/advance_map.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/fuel_math.cpp \
|
$(PROJECT_DIR)/controllers/algo/fuel_math.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/accel_enrichment.cpp \
|
$(PROJECT_DIR)/controllers/algo/accel_enrichment.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/launch_control.cpp \
|
$(PROJECT_DIR)/controllers/algo/launch_control.cpp \
|
||||||
|
$(PROJECT_DIR)/controllers/algo/dynoview.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/engine_configuration.cpp \
|
$(PROJECT_DIR)/controllers/algo/engine_configuration.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/engine.cpp \
|
$(PROJECT_DIR)/controllers/algo/engine.cpp \
|
||||||
$(PROJECT_DIR)/controllers/algo/engine2.cpp \
|
$(PROJECT_DIR)/controllers/algo/engine2.cpp \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "rusefi_enums.h"
|
#include "rusefi_enums.h"
|
||||||
#include "rusefi_hw_enums.h"
|
#include "rusefi_hw_enums.h"
|
||||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun Nov 29 03:50:34 UTC 2020
|
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Fri Dec 04 00:17:47 EST 2020
|
||||||
// see also gen_config_and_enums.bat
|
// see also gen_config_and_enums.bat
|
||||||
|
|
||||||
|
|
||||||
|
@ -1279,6 +1279,10 @@ case TT_3_1_CAM:
|
||||||
return "TT_3_1_CAM";
|
return "TT_3_1_CAM";
|
||||||
case TT_60_2_VW:
|
case TT_60_2_VW:
|
||||||
return "TT_60_2_VW";
|
return "TT_60_2_VW";
|
||||||
|
case TT_CHRYSLER_NGC_36_2_2:
|
||||||
|
return "TT_CHRYSLER_NGC_36_2_2";
|
||||||
|
case TT_DAIHATSU:
|
||||||
|
return "TT_DAIHATSU";
|
||||||
case TT_DODGE_NEON_1995:
|
case TT_DODGE_NEON_1995:
|
||||||
return "TT_DODGE_NEON_1995";
|
return "TT_DODGE_NEON_1995";
|
||||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||||
|
@ -1295,6 +1299,8 @@ case TT_FIAT_IAW_P8:
|
||||||
return "TT_FIAT_IAW_P8";
|
return "TT_FIAT_IAW_P8";
|
||||||
case TT_FORD_ASPIRE:
|
case TT_FORD_ASPIRE:
|
||||||
return "TT_FORD_ASPIRE";
|
return "TT_FORD_ASPIRE";
|
||||||
|
case TT_FORD_ST170:
|
||||||
|
return "TT_FORD_ST170";
|
||||||
case TT_GM_7X:
|
case TT_GM_7X:
|
||||||
return "TT_GM_7X";
|
return "TT_GM_7X";
|
||||||
case TT_GM_LS_24:
|
case TT_GM_LS_24:
|
||||||
|
@ -1311,8 +1317,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
||||||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||||
case TT_HONDA_CBR_600:
|
case TT_HONDA_CBR_600:
|
||||||
return "TT_HONDA_CBR_600";
|
return "TT_HONDA_CBR_600";
|
||||||
case TT_HONDA_CBR_600_CUSTOM:
|
|
||||||
return "TT_HONDA_CBR_600_CUSTOM";
|
|
||||||
case TT_HONDA_K_12_1:
|
case TT_HONDA_K_12_1:
|
||||||
return "TT_HONDA_K_12_1";
|
return "TT_HONDA_K_12_1";
|
||||||
case TT_JEEP_18_2_2_2:
|
case TT_JEEP_18_2_2_2:
|
||||||
|
@ -1329,12 +1333,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
||||||
return "TT_MAZDA_MIATA_VVT_TEST";
|
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||||
case TT_MAZDA_SOHC_4:
|
case TT_MAZDA_SOHC_4:
|
||||||
return "TT_MAZDA_SOHC_4";
|
return "TT_MAZDA_SOHC_4";
|
||||||
case TT_MAZDA_Z5:
|
|
||||||
return "TT_MAZDA_Z5";
|
|
||||||
case TT_MIATA_VVT:
|
case TT_MIATA_VVT:
|
||||||
return "TT_MIATA_VVT";
|
return "TT_MIATA_VVT";
|
||||||
case TT_MINI_COOPER_R50:
|
|
||||||
return "TT_MINI_COOPER_R50";
|
|
||||||
case TT_MITSUBISHI:
|
case TT_MITSUBISHI:
|
||||||
return "TT_MITSUBISHI";
|
return "TT_MITSUBISHI";
|
||||||
case TT_NISSAN_SR20VE:
|
case TT_NISSAN_SR20VE:
|
||||||
|
@ -1436,6 +1436,8 @@ case VVT_BOSCH_QUICK_START:
|
||||||
return "VVT_BOSCH_QUICK_START";
|
return "VVT_BOSCH_QUICK_START";
|
||||||
case VVT_FIRST_HALF:
|
case VVT_FIRST_HALF:
|
||||||
return "VVT_FIRST_HALF";
|
return "VVT_FIRST_HALF";
|
||||||
|
case VVT_FORD_ST170:
|
||||||
|
return "VVT_FORD_ST170";
|
||||||
case VVT_INACTIVE:
|
case VVT_INACTIVE:
|
||||||
return "VVT_INACTIVE";
|
return "VVT_INACTIVE";
|
||||||
case VVT_SECOND_HALF:
|
case VVT_SECOND_HALF:
|
||||||
|
|
|
@ -0,0 +1,179 @@
|
||||||
|
/*
|
||||||
|
* @file dynoview.cpp
|
||||||
|
*
|
||||||
|
* @date Nov 29, 2020
|
||||||
|
* @author Alexandru Miculescu, (c) 2012-2020
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "engine.h"
|
||||||
|
|
||||||
|
#if EFI_DYNO_VIEW
|
||||||
|
#include "dynoview.h"
|
||||||
|
#include "vehicle_speed.h"
|
||||||
|
|
||||||
|
static Logging *logger;
|
||||||
|
|
||||||
|
#if EFI_TUNER_STUDIO
|
||||||
|
#include "tunerstudio_outputs.h"
|
||||||
|
extern TunerStudioOutputChannels tsOutputChannels;
|
||||||
|
#endif /* EFI_TUNER_STUDIO */
|
||||||
|
|
||||||
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
|
DynoView dynoInstance;
|
||||||
|
|
||||||
|
void DynoView::update(vssSrc src) {
|
||||||
|
|
||||||
|
efitimeus_t timeNow, deltaTime = 0.0;
|
||||||
|
float speed,deltaSpeed = 0.0;
|
||||||
|
timeNow = getTimeNowUs();
|
||||||
|
speed = getVehicleSpeed();
|
||||||
|
if (src == ICU) {
|
||||||
|
speed = efiRound(speed,1.0);
|
||||||
|
} else {
|
||||||
|
//use speed with 0.001 precision from source CAN
|
||||||
|
speed = efiRound(speed,0.001);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(timeStamp != 0) {
|
||||||
|
|
||||||
|
if (vss != speed) {
|
||||||
|
deltaTime = timeNow - timeStamp;
|
||||||
|
if (vss > speed) {
|
||||||
|
deltaSpeed = (vss - speed);
|
||||||
|
direction = 1; //decceleration
|
||||||
|
} else {
|
||||||
|
deltaSpeed = speed - vss;
|
||||||
|
direction = 0; //acceleration
|
||||||
|
}
|
||||||
|
|
||||||
|
//save data
|
||||||
|
timeStamp = timeNow;
|
||||||
|
vss = speed;
|
||||||
|
}
|
||||||
|
|
||||||
|
//updating here would display acceleration = 0 at constant speed
|
||||||
|
updateAcceleration(deltaTime, deltaSpeed);
|
||||||
|
#if EFI_TUNER_STUDIO
|
||||||
|
if (CONFIG(debugMode) == DBG_44) {
|
||||||
|
tsOutputChannels.debugIntField1 = deltaTime;
|
||||||
|
tsOutputChannels.debugFloatField1 = vss;
|
||||||
|
tsOutputChannels.debugFloatField2 = speed;
|
||||||
|
tsOutputChannels.debugFloatField3 = deltaSpeed;
|
||||||
|
tsOutputChannels.debugFloatField4 = acceleration;
|
||||||
|
}
|
||||||
|
#endif /* EFI_TUNER_STUDIO */
|
||||||
|
updateHP();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//ensure we grab init values
|
||||||
|
timeStamp = timeNow;
|
||||||
|
vss = speed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* input units: deltaSpeed in km/h
|
||||||
|
* deltaTime in uS
|
||||||
|
*/
|
||||||
|
void DynoView::updateAcceleration(efitimeus_t deltaTime, float deltaSpeed) {
|
||||||
|
if (deltaSpeed != 0.0) {
|
||||||
|
acceleration = ((deltaSpeed / 3.6) / (deltaTime / 1000000.0));
|
||||||
|
if (direction) {
|
||||||
|
//decceleration
|
||||||
|
acceleration *= -1;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
acceleration = 0.0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* E = m*a
|
||||||
|
* ex. 900 (kg) * 1.5 (m/s^2) = 1350N
|
||||||
|
* P = F*V
|
||||||
|
* 1350N * 35(m/s) = 47250Watt (35 m/s is the final velocity)
|
||||||
|
* 47250 * (1HP/746W) = 63HP
|
||||||
|
* https://www.youtube.com/watch?v=FnN2asvFmIs
|
||||||
|
* we do not take resistence into account right now.
|
||||||
|
*/
|
||||||
|
void DynoView::updateHP() {
|
||||||
|
|
||||||
|
//these are actually at the wheel
|
||||||
|
//we would need final drive to calcualte the correct torque at the wheel
|
||||||
|
if (acceleration != 0) {
|
||||||
|
engineForce = CONFIG(vehicleWeight) * acceleration;
|
||||||
|
enginePower = engineForce * (vss / 3.6);
|
||||||
|
engineHP = enginePower / 746;
|
||||||
|
if (isValidRpm(GET_RPM())) {
|
||||||
|
engineTorque = ((engineHP * 5252) / GET_RPM());
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//we should calculate static power
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#if EFI_UNIT_TEST
|
||||||
|
void DynoView::setAcceleration(float a) {
|
||||||
|
acceleration = a;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
float DynoView::getAcceleration() {
|
||||||
|
return acceleration;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DynoView::getEngineForce() {
|
||||||
|
return engineForce;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DynoView::getEnginePower() {
|
||||||
|
return (enginePower/1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
int DynoView::getEngineHP() {
|
||||||
|
return engineHP;
|
||||||
|
}
|
||||||
|
|
||||||
|
int DynoView::getEngineTorque() {
|
||||||
|
return (engineTorque/0.73756);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
float getDynoviewAcceleration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
return dynoInstance.getAcceleration();
|
||||||
|
}
|
||||||
|
|
||||||
|
int getDynoviewPower(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
return dynoInstance.getEnginePower();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Periodic update function called from SlowCallback.
|
||||||
|
* Only updates if we have Vss from input pin.
|
||||||
|
*/
|
||||||
|
void updateDynoView(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
if ((CONFIG(vehicleSpeedSensorInputPin) != GPIO_UNASSIGNED) &&
|
||||||
|
(!CONFIG(enableCanVss))) {
|
||||||
|
dynoInstance.update(ICU);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function is called after every CAN msg received, we process it
|
||||||
|
* as soon as we can to be more acurate.
|
||||||
|
*/
|
||||||
|
void updateDynoViewCan(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
if (!CONFIG(enableCanVss)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dynoInstance.update(CAN);
|
||||||
|
}
|
||||||
|
|
||||||
|
void initDynoView(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
logger = sharedLogger;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* EFI_DYNO_VIEW */
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* @file dynoview.h
|
||||||
|
*
|
||||||
|
* @date Nov 29, 2020
|
||||||
|
* @author Alexandru Miculescu, (c) 2012-2020
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "engine_ptr.h"
|
||||||
|
|
||||||
|
class Logging;
|
||||||
|
void initDynoView(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
void updateDynoView(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
void updateDynoViewCan(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
float getDynoviewAcceleration(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
int getDynoviewPower(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
typedef enum{
|
||||||
|
ICU = 0,
|
||||||
|
CAN,
|
||||||
|
}vssSrc;
|
||||||
|
|
||||||
|
class DynoView {
|
||||||
|
public:
|
||||||
|
DECLARE_ENGINE_PTR;
|
||||||
|
|
||||||
|
// Update the state of the launch control system
|
||||||
|
void update(vssSrc src);
|
||||||
|
void updateAcceleration(efitick_t deltaTime, float deltaSpeed);
|
||||||
|
void updateHP();
|
||||||
|
float getAcceleration();
|
||||||
|
int getEngineForce();
|
||||||
|
//in KW
|
||||||
|
int getEnginePower();
|
||||||
|
|
||||||
|
int getEngineHP();
|
||||||
|
//in NM
|
||||||
|
int getEngineTorque();
|
||||||
|
#if EFI_UNIT_TEST
|
||||||
|
void setAcceleration(float a);
|
||||||
|
#endif
|
||||||
|
private:
|
||||||
|
efitimeus_t timeStamp = 0;
|
||||||
|
//km/h unit
|
||||||
|
float vss = 0;
|
||||||
|
//m/s/s unit
|
||||||
|
float acceleration = 0;
|
||||||
|
//engine force in N
|
||||||
|
int engineForce;
|
||||||
|
//engine power in W
|
||||||
|
int enginePower;
|
||||||
|
//engine powerin HP
|
||||||
|
int engineHP;
|
||||||
|
//Torque in lb-ft
|
||||||
|
int engineTorque;
|
||||||
|
//sign
|
||||||
|
uint8_t direction;
|
||||||
|
};
|
|
@ -31,6 +31,7 @@
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
#include "gppwm.h"
|
#include "gppwm.h"
|
||||||
#include "tachometer.h"
|
#include "tachometer.h"
|
||||||
|
#include "dynoview.h"
|
||||||
#if EFI_MC33816
|
#if EFI_MC33816
|
||||||
#include "mc33816.h"
|
#include "mc33816.h"
|
||||||
#endif // EFI_MC33816
|
#endif // EFI_MC33816
|
||||||
|
@ -93,6 +94,8 @@ trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) {
|
||||||
return TT_ONE;
|
return TT_ONE;
|
||||||
case VVT_4_1:
|
case VVT_4_1:
|
||||||
return TT_ONE;
|
return TT_ONE;
|
||||||
|
case VVT_FORD_ST170:
|
||||||
|
return TT_FORD_ST170;
|
||||||
default:
|
default:
|
||||||
return TT_ONE;
|
return TT_ONE;
|
||||||
}
|
}
|
||||||
|
@ -207,6 +210,10 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if EFI_DYNO_VIEW
|
||||||
|
updateDynoView(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
#endif
|
||||||
|
|
||||||
slowCallBackWasInvoked = true;
|
slowCallBackWasInvoked = true;
|
||||||
|
|
||||||
#if HW_CHECK_MODE
|
#if HW_CHECK_MODE
|
||||||
|
|
|
@ -80,6 +80,7 @@ public:
|
||||||
explicit Engine(persistent_config_s *config);
|
explicit Engine(persistent_config_s *config);
|
||||||
Engine();
|
Engine();
|
||||||
bool isPwmEnabled = true;
|
bool isPwmEnabled = true;
|
||||||
|
int triggerActivitySecond = 0;
|
||||||
|
|
||||||
IEtbController *etbControllers[ETB_COUNT] = {nullptr};
|
IEtbController *etbControllers[ETB_COUNT] = {nullptr};
|
||||||
IFuelComputer *fuelComputer = nullptr;
|
IFuelComputer *fuelComputer = nullptr;
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
#include "perf_trace.h"
|
#include "perf_trace.h"
|
||||||
#include "closed_loop_fuel.h"
|
#include "closed_loop_fuel.h"
|
||||||
#include "sensor.h"
|
#include "sensor.h"
|
||||||
|
#include "launch_control.h"
|
||||||
|
|
||||||
|
|
||||||
#if EFI_PROD_CODE
|
#if EFI_PROD_CODE
|
||||||
#include "svnversion.h"
|
#include "svnversion.h"
|
||||||
|
@ -174,6 +176,11 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
float ignitionLoad = getIgnitionLoad(PASS_ENGINE_PARAMETER_SIGNATURE);
|
float ignitionLoad = getIgnitionLoad(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
timingAdvance = getAdvance(rpm, ignitionLoad PASS_ENGINE_PARAMETER_SUFFIX);
|
timingAdvance = getAdvance(rpm, ignitionLoad PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
multispark.count = getMultiSparkCount(rpm PASS_ENGINE_PARAMETER_SUFFIX);
|
multispark.count = getMultiSparkCount(rpm PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
|
#if EFI_LAUNCH_CONTROL
|
||||||
|
updateLaunchConditions(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
#endif //EFI_LAUNCH_CONTROL
|
||||||
|
|
||||||
#endif // EFI_ENGINE_CONTROL
|
#endif // EFI_ENGINE_CONTROL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,8 +24,11 @@
|
||||||
#include "engine_state.h"
|
#include "engine_state.h"
|
||||||
#include "advance_map.h"
|
#include "advance_map.h"
|
||||||
|
|
||||||
|
static bool isInit = false;
|
||||||
static Logging *logger;
|
static Logging *logger;
|
||||||
|
|
||||||
|
LaunchControlBase launchInstance;
|
||||||
|
|
||||||
#if EFI_TUNER_STUDIO
|
#if EFI_TUNER_STUDIO
|
||||||
#include "tunerstudio_outputs.h"
|
#include "tunerstudio_outputs.h"
|
||||||
extern TunerStudioOutputChannels tsOutputChannels;
|
extern TunerStudioOutputChannels tsOutputChannels;
|
||||||
|
@ -33,22 +36,8 @@ extern TunerStudioOutputChannels tsOutputChannels;
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
#define RETART_THD_CALC CONFIG(launchRpm) +\
|
|
||||||
(CONFIG(enableLaunchRetard) ? CONFIG(launchAdvanceRpmRange) : 0) +\
|
|
||||||
CONFIG(hardCutRpmRange)
|
|
||||||
static int retardThresholdRpm;
|
static int retardThresholdRpm;
|
||||||
|
|
||||||
|
|
||||||
class LaunchControlImpl : public LaunchControlBase, public PeriodicTimerController {
|
|
||||||
int getPeriodMs() override {
|
|
||||||
return 50;
|
|
||||||
}
|
|
||||||
|
|
||||||
void PeriodicTask() {
|
|
||||||
update();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We can have active condition from switch or from clutch.
|
* We can have active condition from switch or from clutch.
|
||||||
* In case we are dependent on VSS we just return true.
|
* In case we are dependent on VSS we just return true.
|
||||||
|
@ -90,7 +79,8 @@ bool LaunchControlBase::isInsideSwitchCondition() const {
|
||||||
*/
|
*/
|
||||||
bool LaunchControlBase::isInsideSpeedCondition() const {
|
bool LaunchControlBase::isInsideSpeedCondition() const {
|
||||||
int speed = getVehicleSpeed();
|
int speed = getVehicleSpeed();
|
||||||
return (CONFIG(launchSpeedTreshold) > speed) || !engineConfiguration->launchDisableBySpeed;
|
|
||||||
|
return (CONFIG(launchSpeedTreshold) > speed) || (!(CONFIG(launchActivationMode) == ALWAYS_ACTIVE_LAUNCH));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -134,32 +124,41 @@ bool LaunchControlBase::isLaunchConditionMet(int rpm) const {
|
||||||
return speedCondition && activateSwitchCondition && rpmCondition && tpsCondition;
|
return speedCondition && activateSwitchCondition && rpmCondition && tpsCondition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
launchInstance.update();
|
||||||
|
}
|
||||||
|
|
||||||
void LaunchControlBase::update() {
|
void LaunchControlBase::update() {
|
||||||
|
|
||||||
if (!CONFIG(launchControlEnabled)) {
|
if (!CONFIG(launchControlEnabled)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if ! EFI_UNIT_TEST
|
||||||
|
if(!isInit) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int rpm = GET_RPM();
|
int rpm = GET_RPM();
|
||||||
bool combinedConditions = isLaunchConditionMet(rpm);
|
bool combinedConditions = isLaunchConditionMet(rpm);
|
||||||
|
|
||||||
float timeDelay = CONFIG(launchActivateDelay);
|
float timeDelay = CONFIG(launchActivateDelay);
|
||||||
int cutRpmRange = CONFIG(hardCutRpmRange);
|
|
||||||
int launchAdvanceRpmRange = CONFIG(launchTimingRpmRange);
|
|
||||||
|
|
||||||
//recalculate in periodic task, this way we save time in applyLaunchControlLimiting
|
//recalculate in periodic task, this way we save time in applyLaunchControlLimiting
|
||||||
//and still recalculat in case user changed the values
|
//and still recalculat in case user changed the values
|
||||||
retardThresholdRpm = RETART_THD_CALC;
|
retardThresholdRpm = CONFIG(launchRpm) + (CONFIG(enableLaunchRetard) ?
|
||||||
|
CONFIG(launchAdvanceRpmRange) : 0) + CONFIG(hardCutRpmRange);
|
||||||
|
|
||||||
if (!combinedConditions) {
|
if (!combinedConditions) {
|
||||||
// conditions not met, reset timer
|
// conditions not met, reset timer
|
||||||
launchTimer = getTimeNowNt();
|
m_launchTimer.reset();
|
||||||
engine->isLaunchCondition = false;
|
engine->isLaunchCondition = false;
|
||||||
engine->setLaunchBoostDuty = false;
|
engine->setLaunchBoostDuty = false;
|
||||||
engine->applyLaunchControlRetard = false;
|
engine->applyLaunchControlRetard = false;
|
||||||
engine->applyLaunchExtraFuel = false;
|
engine->applyLaunchExtraFuel = false;
|
||||||
} else {
|
} else {
|
||||||
// If conditions are met...
|
// If conditions are met...
|
||||||
if ((getTimeNowNt() - launchTimer > MS2NT(timeDelay * 1000)) && combinedConditions) {
|
if (m_launchTimer.hasElapsedMs(timeDelay*1000) && combinedConditions) {
|
||||||
engine->isLaunchCondition = true; // ...enable launch!
|
engine->isLaunchCondition = true; // ...enable launch!
|
||||||
engine->applyLaunchExtraFuel = true;
|
engine->applyLaunchExtraFuel = true;
|
||||||
}
|
}
|
||||||
|
@ -181,8 +180,6 @@ void LaunchControlBase::update() {
|
||||||
#endif /* EFI_TUNER_STUDIO */
|
#endif /* EFI_TUNER_STUDIO */
|
||||||
}
|
}
|
||||||
|
|
||||||
static LaunchControlImpl Launch;
|
|
||||||
|
|
||||||
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->launchRpm = 4000; // Rpm to trigger Launch condition
|
engineConfiguration->launchRpm = 4000; // Rpm to trigger Launch condition
|
||||||
engineConfiguration->launchTimingRetard = 10; // retard in absolute degrees ATDC
|
engineConfiguration->launchTimingRetard = 10; // retard in absolute degrees ATDC
|
||||||
|
@ -198,11 +195,11 @@ void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||||
engineConfiguration->enableLaunchBoost = true;
|
engineConfiguration->enableLaunchBoost = true;
|
||||||
engineConfiguration->launchSmoothRetard = true; //interpolates the advance linear from launchrpm to fully retarded at launchtimingrpmrange
|
engineConfiguration->launchSmoothRetard = true; //interpolates the advance linear from launchrpm to fully retarded at launchtimingrpmrange
|
||||||
engineConfiguration->antiLagRpmTreshold = 3000;
|
engineConfiguration->antiLagRpmTreshold = 3000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
if (( engine->isLaunchCondition ) && ( retardThresholdRpm < GET_RPM() )) {
|
||||||
if (retardThresholdRpm < GET_RPM()) {
|
|
||||||
*limitedSpark = engineConfiguration->launchSparkCutEnable;
|
*limitedSpark = engineConfiguration->launchSparkCutEnable;
|
||||||
*limitedFuel = engineConfiguration->launchFuelCutEnable;
|
*limitedFuel = engineConfiguration->launchFuelCutEnable;
|
||||||
}
|
}
|
||||||
|
@ -210,8 +207,9 @@ void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_EN
|
||||||
|
|
||||||
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
logger = sharedLogger;
|
logger = sharedLogger;
|
||||||
retardThresholdRpm = RETART_THD_CALC;
|
INJECT_ENGINE_REFERENCE(&launchInstance);
|
||||||
Launch.Start();
|
|
||||||
|
isInit = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* EFI_LAUNCH_CONTROL */
|
#endif /* EFI_LAUNCH_CONTROL */
|
||||||
|
|
|
@ -8,11 +8,13 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "engine_ptr.h"
|
#include "engine_ptr.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
class Logging;
|
class Logging;
|
||||||
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||||
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
class LaunchControlBase {
|
class LaunchControlBase {
|
||||||
public:
|
public:
|
||||||
|
@ -25,9 +27,8 @@ public:
|
||||||
bool isInsideTpsCondition() const;
|
bool isInsideTpsCondition() const;
|
||||||
bool isInsideSwitchCondition() const;
|
bool isInsideSwitchCondition() const;
|
||||||
bool isInsideRPMCondition(int rpm) const;
|
bool isInsideRPMCondition(int rpm) const;
|
||||||
|
|
||||||
bool isLaunchConditionMet(int rpm) const;
|
bool isLaunchConditionMet(int rpm) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
efitick_t launchTimer = 0;
|
Timer m_launchTimer;
|
||||||
};
|
};
|
||||||
|
|
|
@ -214,20 +214,21 @@ typedef enum {
|
||||||
* @see http://rusefi.com/wiki/index.php?title=Manual:Software:Trigger
|
* @see http://rusefi.com/wiki/index.php?title=Manual:Software:Trigger
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
||||||
TT_TOOTHED_WHEEL = TT_TT_TOOTHED_WHEEL,
|
TT_TOOTHED_WHEEL = TT_TT_TOOTHED_WHEEL,
|
||||||
TT_FORD_ASPIRE = 1,
|
TT_FORD_ASPIRE = TT_TT_FORD_ASPIRE,
|
||||||
TT_DODGE_NEON_1995 = 2,
|
TT_DODGE_NEON_1995 = 2,
|
||||||
/**
|
/**
|
||||||
* https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger#Mazda_Miata_NA
|
* https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger#Mazda_Miata_NA
|
||||||
*/
|
*/
|
||||||
TT_MAZDA_MIATA_NA = 3,
|
TT_MAZDA_MIATA_NA = TT_TT_MAZDA_MIATA_NA,
|
||||||
/**
|
/**
|
||||||
* NB1 means non-VVT NB, 99 and 00 1.8 engine
|
* NB1 means non-VVT NB, 99 and 00 1.8 engine
|
||||||
*/
|
*/
|
||||||
TT_MAZDA_MIATA_NB1 = 4,
|
TT_MAZDA_MIATA_NB1 = TT_TT_MAZDA_MIATA_NB1,
|
||||||
TT_GM_7X = 5,
|
TT_GM_7X = TT_TT_GM_7X,
|
||||||
TT_MINI_COOPER_R50 = 6,
|
TT_MAZDA_SOHC_4 = TT_TT_MAZDA_SOHC_4,
|
||||||
TT_MAZDA_SOHC_4 = 7,
|
TT_DAIHATSU = TT_TT_DAIHATSU,
|
||||||
/**
|
/**
|
||||||
* "60/2"
|
* "60/2"
|
||||||
* See also TT_ONE_PLUS_TOOTHED_WHEEL_60_2
|
* See also TT_ONE_PLUS_TOOTHED_WHEEL_60_2
|
||||||
|
@ -235,19 +236,21 @@ typedef enum {
|
||||||
TT_TOOTHED_WHEEL_60_2 = TT_TT_TOOTHED_WHEEL_60_2,
|
TT_TOOTHED_WHEEL_60_2 = TT_TT_TOOTHED_WHEEL_60_2,
|
||||||
TT_TOOTHED_WHEEL_36_1 = TT_TT_TOOTHED_WHEEL_36_1,
|
TT_TOOTHED_WHEEL_36_1 = TT_TT_TOOTHED_WHEEL_36_1,
|
||||||
|
|
||||||
TT_HONDA_4_24_1 = 10,
|
// todo: remove this weird trigger?
|
||||||
|
TT_HONDA_4_24_1 = TT_TT_HONDA_4_24_1,
|
||||||
|
|
||||||
|
// todo: this really looks to be same as Miata_NA shall we remove?
|
||||||
TT_MITSUBISHI = 11,
|
TT_MITSUBISHI = 11,
|
||||||
|
|
||||||
// this makes sense because mechanical spark distribution does not require synchronization
|
// this makes sense because mechanical spark distribution does not require synchronization
|
||||||
TT_HONDA_4_24 = 12,
|
TT_HONDA_4_24 = 12,
|
||||||
|
|
||||||
TT_HONDA_1_4_24 = 13,
|
TT_HONDA_1_4_24 = TT_TT_HONDA_1_4_24,
|
||||||
|
|
||||||
// cam-based
|
// cam-based
|
||||||
TT_DODGE_NEON_2003_CAM = 14,
|
TT_DODGE_NEON_2003_CAM = 14,
|
||||||
|
|
||||||
TT_MAZDA_DOHC_1_4 = 15,
|
TT_MAZDA_DOHC_1_4 = TT_TT_MAZDA_DOHC_1_4,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* "1+1" - one tooth on primary channel, one tooth on secondary channel
|
* "1+1" - one tooth on primary channel, one tooth on secondary channel
|
||||||
|
@ -256,7 +259,7 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
TT_ONE_PLUS_ONE = 16,
|
TT_ONE_PLUS_ONE = 16,
|
||||||
// "1+60/2"
|
// "1+60/2"
|
||||||
TT_VVT_JZ = 17,
|
TT_VVT_JZ = TT_TT_VVT_JZ,
|
||||||
// just one channel with just one tooth
|
// just one channel with just one tooth
|
||||||
TT_ONE = TT_TT_ONE,
|
TT_ONE = TT_TT_ONE,
|
||||||
|
|
||||||
|
@ -266,11 +269,11 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
TT_60_2_VW = TT_TT_60_2_VW,
|
TT_60_2_VW = TT_TT_60_2_VW,
|
||||||
|
|
||||||
TT_HONDA_1_24 = 21,
|
TT_HONDA_1_24 = TT_TT_HONDA_1_24,
|
||||||
|
|
||||||
TT_DODGE_STRATUS = 22,
|
TT_DODGE_STRATUS = 22,
|
||||||
|
|
||||||
TT_36_2_2_2 = 23,
|
TT_36_2_2_2 = TT_TT_36_2_2_2,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* only the 4 tooth signal, without the 360 signal
|
* only the 4 tooth signal, without the 360 signal
|
||||||
|
@ -279,17 +282,17 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
TT_NISSAN_SR20VE = 24,
|
TT_NISSAN_SR20VE = 24,
|
||||||
|
|
||||||
TT_2JZ_3_34 = 25,
|
TT_2JZ_3_34 = TT_TT_2JZ_3_34,
|
||||||
|
|
||||||
TT_ROVER_K = 26,
|
TT_ROVER_K = 26,
|
||||||
|
|
||||||
TT_GM_LS_24 = 27,
|
TT_GM_LS_24 = TT_TT_GM_LS_24,
|
||||||
|
|
||||||
TT_HONDA_CBR_600 = 28,
|
TT_HONDA_CBR_600 = 28,
|
||||||
|
|
||||||
TT_2JZ_1_12 = 29,
|
TT_2JZ_1_12 = TT_TT_2JZ_1_12,
|
||||||
|
|
||||||
TT_HONDA_CBR_600_CUSTOM = 30,
|
TT_CHRYSLER_NGC_36_2_2 = TT_TT_CHRYSLER_NGC_36_2_2,
|
||||||
|
|
||||||
// skipped 3/1 with cam sensor for testing
|
// skipped 3/1 with cam sensor for testing
|
||||||
TT_3_1_CAM = 31,
|
TT_3_1_CAM = 31,
|
||||||
|
@ -302,7 +305,7 @@ typedef enum {
|
||||||
* for VVT simulated trigger signal we have https://github.com/rusefi/rusefi/issues/566 gap
|
* for VVT simulated trigger signal we have https://github.com/rusefi/rusefi/issues/566 gap
|
||||||
* See also TT_MAZDA_MIATA_VVT_TEST
|
* See also TT_MAZDA_MIATA_VVT_TEST
|
||||||
*/
|
*/
|
||||||
TT_MIATA_VVT = 33,
|
TT_MIATA_VVT = TT_TT_MIATA_VVT,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is a different version of TT_HONDA_ACCORD_1_24
|
* This is a different version of TT_HONDA_ACCORD_1_24
|
||||||
|
@ -315,10 +318,10 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
TT_MAZDA_MIATA_VVT_TEST = 35,
|
TT_MAZDA_MIATA_VVT_TEST = 35,
|
||||||
|
|
||||||
TT_SUBARU_7_6 = 36,
|
TT_SUBARU_7_6 = TT_TT_SUBARU_7_6,
|
||||||
|
|
||||||
// this one is 6 cylinder, see TT_JEEP_4_cyl for 4 cylinders
|
// this one is 6 cylinder, see TT_JEEP_4_cyl for 4 cylinders
|
||||||
TT_JEEP_18_2_2_2 = 37,
|
TT_JEEP_18_2_2_2 = TT_TT_JEEP_18_2_2_2,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* See also TT_NISSAN_SR20VE
|
* See also TT_NISSAN_SR20VE
|
||||||
|
@ -328,33 +331,33 @@ typedef enum {
|
||||||
TT_DODGE_NEON_1995_ONLY_CRANK = 39,
|
TT_DODGE_NEON_1995_ONLY_CRANK = 39,
|
||||||
|
|
||||||
// Jeep XJ 2500cc 4 cylinder. See also TT_JEEP_18_2_2_2 for 6 cylinders
|
// Jeep XJ 2500cc 4 cylinder. See also TT_JEEP_18_2_2_2 for 6 cylinders
|
||||||
TT_JEEP_4_CYL = 40,
|
TT_JEEP_4_CYL = TT_TT_JEEP_4_CYL,
|
||||||
|
|
||||||
// magneti marelli Fiat/Lancia IAW P8 from the 90', 2.0 16 v turbo engine - Lancia Coupe
|
// magneti marelli Fiat/Lancia IAW P8 from the 90', 2.0 16 v turbo engine - Lancia Coupe
|
||||||
// https://rusefi.com/forum/viewtopic.php?f=5&t=1440
|
// https://rusefi.com/forum/viewtopic.php?f=5&t=1440
|
||||||
TT_FIAT_IAW_P8 = 41,
|
TT_FIAT_IAW_P8 = 41,
|
||||||
|
|
||||||
TT_MAZDA_Z5 = 42,
|
TT_FORD_ST170 = TT_TT_FORD_ST170,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cam sensor of Mazda Miata NB2 - the VVT signal shape
|
* cam sensor of Mazda Miata NB2 - the VVT signal shape
|
||||||
*/
|
*/
|
||||||
TT_VVT_MIATA_NB2 = 43,
|
TT_VVT_MIATA_NB2 = 43,
|
||||||
|
|
||||||
TT_RENIX_44_2_2 = 44,
|
TT_RENIX_44_2_2 = TT_TT_RENIX_44_2_2,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Same as TT_RENIX_44_2_2 but repeated three times, not two.
|
* Same as TT_RENIX_44_2_2 but repeated three times, not two.
|
||||||
*/
|
*/
|
||||||
TT_RENIX_66_2_2_2 = 45,
|
TT_RENIX_66_2_2_2 = TT_TT_RENIX_66_2_2_2,
|
||||||
|
|
||||||
TT_HONDA_K_12_1 = 46,
|
TT_HONDA_K_12_1 = TT_TT_HONDA_K_12_1,
|
||||||
|
|
||||||
TT_VVT_BOSCH_QUICK_START = 47,
|
TT_VVT_BOSCH_QUICK_START = TT_TT_VVT_BOSCH_QUICK_START,
|
||||||
|
|
||||||
TT_TOOTHED_WHEEL_36_2 = TT_TT_TOOTHED_WHEEL_36_2,
|
TT_TOOTHED_WHEEL_36_2 = TT_TT_TOOTHED_WHEEL_36_2,
|
||||||
|
|
||||||
TT_SUBARU_SVX = 49,
|
TT_SUBARU_SVX = TT_TT_SUBARU_SVX,
|
||||||
|
|
||||||
TT_1_16 = 50,
|
TT_1_16 = 50,
|
||||||
|
|
||||||
|
@ -436,6 +439,8 @@ typedef enum {
|
||||||
*/
|
*/
|
||||||
VVT_4_1 = 6,
|
VVT_4_1 = 6,
|
||||||
|
|
||||||
|
VVT_FORD_ST170 = 7,
|
||||||
|
|
||||||
Force_4_bytes_size_vvt_mode = ENUM_32_BITS,
|
Force_4_bytes_size_vvt_mode = ENUM_32_BITS,
|
||||||
} vvt_mode_e;
|
} vvt_mode_e;
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
#include "engine_configuration.h"
|
#include "engine_configuration.h"
|
||||||
#include "engine.h"
|
#include "engine.h"
|
||||||
#include "vehicle_speed.h"
|
#include "vehicle_speed.h"
|
||||||
|
#include "dynoview.h"
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
|
@ -98,6 +99,9 @@ void processCanRxVss(const CANRxFrame& frame, efitick_t nowNt) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if EFI_DYNO_VIEW
|
||||||
|
updateDynoViewCan(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
float getVehicleCanSpeed(void) {
|
float getVehicleCanSpeed(void) {
|
||||||
|
|
|
@ -56,6 +56,7 @@ typedef enum {
|
||||||
LE_METHOD_FSIO_DIGITAL_INPUT = 123,
|
LE_METHOD_FSIO_DIGITAL_INPUT = 123,
|
||||||
LE_METHOD_FSIO_SETTING = 124,
|
LE_METHOD_FSIO_SETTING = 124,
|
||||||
LE_METHOD_PPS = 125,
|
LE_METHOD_PPS = 125,
|
||||||
|
LE_METHOD_TIME_SINCE_TRIGGER_EVENT = 126,
|
||||||
|
|
||||||
#include "fsio_enums_generated.def"
|
#include "fsio_enums_generated.def"
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,7 @@ static LENameOrdinalPair leExhaustVVT(LE_METHOD_EXHAUST_VVT, "evvt");
|
||||||
static LENameOrdinalPair leCrankingRpm(LE_METHOD_CRANKING_RPM, "cranking_rpm");
|
static LENameOrdinalPair leCrankingRpm(LE_METHOD_CRANKING_RPM, "cranking_rpm");
|
||||||
static LENameOrdinalPair leStartupFuelPumpDuration(LE_METHOD_STARTUP_FUEL_PUMP_DURATION, "startup_fuel_pump_duration");
|
static LENameOrdinalPair leStartupFuelPumpDuration(LE_METHOD_STARTUP_FUEL_PUMP_DURATION, "startup_fuel_pump_duration");
|
||||||
static LENameOrdinalPair leInShutdown(LE_METHOD_IN_SHUTDOWN, "in_shutdown");
|
static LENameOrdinalPair leInShutdown(LE_METHOD_IN_SHUTDOWN, "in_shutdown");
|
||||||
|
static LENameOrdinalPair leTimeSinceTrigger(LE_METHOD_TIME_SINCE_TRIGGER_EVENT, "time_since_trigger");
|
||||||
|
|
||||||
#include "fsio_names.def"
|
#include "fsio_names.def"
|
||||||
|
|
||||||
|
@ -139,6 +140,8 @@ FsioValue getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
case LE_METHOD_EXHAUST_VVT:
|
case LE_METHOD_EXHAUST_VVT:
|
||||||
return engine->triggerCentral.getVVTPosition();
|
return engine->triggerCentral.getVVTPosition();
|
||||||
#endif
|
#endif
|
||||||
|
case LE_METHOD_TIME_SINCE_TRIGGER_EVENT:
|
||||||
|
return engine->triggerCentral.getTimeSinceTriggerEvent();
|
||||||
case LE_METHOD_TIME_SINCE_BOOT:
|
case LE_METHOD_TIME_SINCE_BOOT:
|
||||||
#if EFI_MAIN_RELAY_CONTROL
|
#if EFI_MAIN_RELAY_CONTROL
|
||||||
// in main relay control mode, we return the number of seconds since the ignition is turned on
|
// in main relay control mode, we return the number of seconds since the ignition is turned on
|
||||||
|
@ -781,7 +784,7 @@ void runHardcodedFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
// see FUEL_PUMP_LOGIC
|
// see FUEL_PUMP_LOGIC
|
||||||
if (CONFIG(fuelPumpPin) != GPIO_UNASSIGNED) {
|
if (CONFIG(fuelPumpPin) != GPIO_UNASSIGNED) {
|
||||||
enginePins.fuelPumpRelay.setValue((getTimeNowSeconds() < engineConfiguration->startUpFuelPumpDuration) || (engine->rpmCalculator.getRpm() > 0));
|
enginePins.fuelPumpRelay.setValue((getTimeNowSeconds() < engine->triggerActivitySecond + engineConfiguration->startUpFuelPumpDuration) || (engine->rpmCalculator.getRpm() > 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
enginePins.o2heater.setValue(engine->rpmCalculator.isRunning());
|
enginePins.o2heater.setValue(engine->rpmCalculator.isRunning());
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
#define VCS_DATE 20201129
|
#define VCS_DATE 20201205
|
||||||
|
|
|
@ -59,6 +59,7 @@
|
||||||
#include "date_stamp.h"
|
#include "date_stamp.h"
|
||||||
#include "buttonshift.h"
|
#include "buttonshift.h"
|
||||||
#include "start_stop.h"
|
#include "start_stop.h"
|
||||||
|
#include "dynoview.h"
|
||||||
|
|
||||||
#if EFI_SENSOR_CHART
|
#if EFI_SENSOR_CHART
|
||||||
#include "sensor_chart.h"
|
#include "sensor_chart.h"
|
||||||
|
@ -605,6 +606,10 @@ void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_S
|
||||||
initLaunchControl(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
|
initLaunchControl(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if EFI_DYNO_VIEW
|
||||||
|
initDynoView(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if EFI_SHAFT_POSITION_INPUT
|
#if EFI_SHAFT_POSITION_INPUT
|
||||||
/**
|
/**
|
||||||
* there is an implicit dependency on the fact that 'tachometer' listener is the 1st listener - this case
|
* there is an implicit dependency on the fact that 'tachometer' listener is the 1st listener - this case
|
||||||
|
@ -708,7 +713,7 @@ void initEngineContoller(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX)
|
||||||
#define RAM_UNUSED_SIZE 3400
|
#define RAM_UNUSED_SIZE 3400
|
||||||
#endif
|
#endif
|
||||||
#ifndef CCM_UNUSED_SIZE
|
#ifndef CCM_UNUSED_SIZE
|
||||||
#define CCM_UNUSED_SIZE 2900
|
#define CCM_UNUSED_SIZE 2800
|
||||||
#endif
|
#endif
|
||||||
static char UNUSED_RAM_SIZE[RAM_UNUSED_SIZE];
|
static char UNUSED_RAM_SIZE[RAM_UNUSED_SIZE];
|
||||||
static char UNUSED_CCM_SIZE[CCM_UNUSED_SIZE] CCM_OPTIONAL;
|
static char UNUSED_CCM_SIZE[CCM_UNUSED_SIZE] CCM_OPTIONAL;
|
||||||
|
|
|
@ -406,6 +406,14 @@ void mainTriggerCallback(uint32_t trgEventIndex, efitick_t edgeTimestamp DECLARE
|
||||||
int rpm = GET_RPM();
|
int rpm = GET_RPM();
|
||||||
if (rpm == 0) {
|
if (rpm == 0) {
|
||||||
// this happens while we just start cranking
|
// this happens while we just start cranking
|
||||||
|
/**
|
||||||
|
* While we have start-up priming pulse, we also want to start pumping fuel again as soon as possible.
|
||||||
|
* Hopefully battery would handle both cranking and fuel pump simultaneously?
|
||||||
|
*/
|
||||||
|
enginePins.fuelPumpRelay.setValue(true); // quickly set pin right from the callback here! todo: would it work OK for smart SPI pin?!
|
||||||
|
#if EFI_PROD_CODE
|
||||||
|
engine->triggerActivitySecond = getTimeNowSeconds();
|
||||||
|
#endif
|
||||||
// todo: check for 'trigger->is_synchnonized?'
|
// todo: check for 'trigger->is_synchnonized?'
|
||||||
// TODO: add 'pin shutdown' invocation somewhere - coils might be still open here!
|
// TODO: add 'pin shutdown' invocation somewhere - coils might be still open here!
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -386,7 +386,8 @@ efitick_t scheduleByAngle(scheduling_s *timer, efitick_t edgeTimestamp, angle_t
|
||||||
action_s action DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
action_s action DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
float delayUs = ENGINE(rpmCalculator.oneDegreeUs) * angle;
|
float delayUs = ENGINE(rpmCalculator.oneDegreeUs) * angle;
|
||||||
|
|
||||||
efitime_t delayNt = US2NT(delayUs);
|
// 'delayNt' is below 10 seconds here so we use 32 bit type for performance reasons
|
||||||
|
int32_t delayNt = USF2NT(delayUs);
|
||||||
efitime_t delayedTime = edgeTimestamp + delayNt;
|
efitime_t delayedTime = edgeTimestamp + delayNt;
|
||||||
|
|
||||||
ENGINE(executor.scheduleByTimestampNt(timer, delayedTime, action));
|
ENGINE(executor.scheduleByTimestampNt(timer, delayedTime, action));
|
||||||
|
|
|
@ -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 29 03:21:46 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
// by class com.rusefi.output.CHeaderConsumer
|
// by class com.rusefi.output.CHeaderConsumer
|
||||||
// begin
|
// begin
|
||||||
#pragma once
|
#pragma once
|
||||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
||||||
bool fuelClosedLoopCorrectionEnabled : 1;
|
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||||
/**
|
/**
|
||||||
* Print details into rusEfi console
|
* Print details into rusEfi console
|
||||||
|
* enable verbose_idle
|
||||||
offset 1464 bit 2 */
|
offset 1464 bit 2 */
|
||||||
bool isVerboseIAC : 1;
|
bool isVerboseIAC : 1;
|
||||||
/**
|
/**
|
||||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
||||||
typedef struct persistent_config_s persistent_config_s;
|
typedef struct persistent_config_s persistent_config_s;
|
||||||
|
|
||||||
// end
|
// end
|
||||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:21:46 UTC 2020
|
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
|
@ -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 29 03:21:46 UTC 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
FSIO_SETTING_FANONTEMPERATURE = 1000,
|
FSIO_SETTING_FANONTEMPERATURE = 1000,
|
||||||
|
|
|
@ -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 29 03:21:46 UTC 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
case FSIO_SETTING_FANONTEMPERATURE:
|
||||||
|
|
|
@ -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 29 03:21:46 UTC 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");
|
static LENameOrdinalPair lefanOnTemperature(FSIO_SETTING_FANONTEMPERATURE, "cfg_fanOnTemperature");
|
||||||
|
|
|
@ -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 29 03:21:46 UTC 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileFsioSettingsConsumer
|
// by class com.rusefi.output.FileFsioSettingsConsumer
|
||||||
case FSIO_SETTING_FANONTEMPERATURE:
|
case FSIO_SETTING_FANONTEMPERATURE:
|
||||||
|
|
|
@ -373,7 +373,7 @@
|
||||||
#define ENGINE_MAKE_VAG "VAG"
|
#define ENGINE_MAKE_VAG "VAG"
|
||||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||||
#define ENGINE_SNIFFER_UNIT_US 10
|
#define ENGINE_SNIFFER_UNIT_US 10
|
||||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MIATA_1994_DEVIATOR", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "FORD_FIESTA", "NISSAN_PRIMERA", "HONDA_ACCORD_CD", "FORD_INLINE_6_1995", "GY6_139QMB", "MAZDA_MIATA_NB1", "ROVER_V8", "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", "HONDA_ACCORD_CD_DIP", "MIATA_1990", "MRE_MIATA_94_MAP", "MIATA_1996", "SUBARU_2003_WRX", "MRE_BODY_CONTROL", "BMW_M73_M", "BMW_E34", "TEST_ENGINE", "ISSUE_898", "MAZDA_626", "SACHS", "MRE_BOARD_OLD_TEST", "MRE_BOARD_NEW_TEST", "VW_ABA", "UNUSED_33", "UNUSED_34", "CAMARO_4", "UNUSED_36", "CHEVY_C20_1973", "TOYOTA_JZS147", "LADA_KALINA", "BMW_M73_F", "MIATA_NA6_MAP", "ZIL_130", "HONDA_600", "TOYOTA_2JZ_GTE_VVTi", "TEST_ENGINE_VVT", "DODGE_NEON_2003_CRANK", "MAZDA_MIATA_2003", "HONDA_ACCORD_1_24_SHIFTED", "FRANKENSO_QA_ENGINE", "TEST_CIVIC_4_0_BOTH", "TEST_CIVIC_4_0_RISE", "TEST_ISSUE_366_BOTH", "TEST_ISSUE_366_RISE", "MAZDA_MIATA_2003_NA_RAIL", "MAZDA_MIATA_2003_BOARD_TEST", "MAZDA_MIATA_NA8", "MIATA_NA6_VAF", "ETB_BENCH_ENGINE", "TLE8888_BENCH_ENGINE", "MICRO_RUS_EFI", "PROTEUS", "VW_B6", "BMW_M73_PROTEUS", "DODGE_RAM", "CITROEN_TU3JP", "MRE_MIATA_NA6_MAP", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "MINIMAL_PINS", "PROMETHEUS_DEFAULTS", "SUBARUEJ20G_DEFAULTS", "VAG_18_TURBO", "TEST_33816", "BMW_M73_MRE", "BMW_M73_MRE_SLAVE"
|
||||||
#define engineChartSize_offset 1480
|
#define engineChartSize_offset 1480
|
||||||
#define engineCode_offset 1128
|
#define engineCode_offset 1128
|
||||||
#define engineConfiguration_offset 0
|
#define engineConfiguration_offset 0
|
||||||
|
@ -1212,8 +1212,8 @@
|
||||||
#define showHumanReadableWarning_offset 976
|
#define showHumanReadableWarning_offset 976
|
||||||
#define showSdCardWarning_offset 76
|
#define showSdCardWarning_offset 76
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 104376296
|
#define SIGNATURE_HASH 768848914
|
||||||
#define silentTriggerError_offset 1464
|
#define silentTriggerError_offset 1464
|
||||||
#define slowAdcAlpha_offset 2088
|
#define slowAdcAlpha_offset 2088
|
||||||
#define sparkDwellRpmBins_offset 332
|
#define sparkDwellRpmBins_offset 332
|
||||||
|
@ -1410,7 +1410,7 @@
|
||||||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_MINI_COOPER_R50", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_HONDA_CBR_600_CUSTOM", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_MAZDA_Z5", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_DAIHATSU", "TT_MAZDA_SOHC_4", "TT_TOOTHED_WHEEL_60_2", "TT_TOOTHED_WHEEL_36_1", "TT_HONDA_4_24_1", "TT_MITSUBISHI", "TT_HONDA_4_24", "TT_HONDA_1_4_24", "TT_DODGE_NEON_2003_CAM", "TT_MAZDA_DOHC_1_4", "TT_ONE_PLUS_ONE", "TT_VVT_JZ", "TT_ONE", "TT_DODGE_RAM", "TT_60_2_VW", "TT_HONDA_1_24", "TT_DODGE_STRATUS", "TT_36_2_2_2", "TT_NISSAN_SR20VE", "TT_2JZ_3_34", "TT_ROVER_K", "TT_GM_LS_24", "TT_HONDA_CBR_600", "TT_2JZ_1_12", "TT_CHRYSLER_NGC_36_2_2", "TT_3_1_CAM", "TT_DODGE_NEON_2003_CRANK", "TT_MIATA_VVT", "TT_HONDA_ACCORD_1_24_SHIFTED", "TT_MAZDA_MIATA_VVT_TEST", "TT_SUBARU_7_6", "TT_JEEP_18_2_2_2", "TT_NISSAN_SR20VE_360", "TT_DODGE_NEON_1995_ONLY_CRANK", "TT_JEEP_4_CYL", "TT_FIAT_IAW_P8", "TT_FORD_ST170", "TT_VVT_MIATA_NB2", "TT_RENIX_44_2_2", "TT_RENIX_66_2_2_2", "TT_HONDA_K_12_1", "TT_VVT_BOSCH_QUICK_START", "TT_TOOTHED_WHEEL_36_2", "TT_SUBARU_SVX", "TT_1_16", "TT_UNUSED"
|
||||||
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
#define trigger_type_e_enum "custom toothed wheel", "Ford Aspire", "Dodge Neon 1995", "Miata NA", "Miata NB", "GM_7X", "Cooper R50", "Mazda SOHC 4", "60/2", "36/1", "Honda 4+24+1", "Mitsubishi", "Honda 4+24", "Honda 1+4+24", "Dodge Neon 2003", "Mazda DOHC 1+4", "1+1", "INVALID", "Single Tooth", "Dodge Ram 1+16", "60/2 VW", "Honda 1+24", "Dodge Stratus", "36_2_2_2", "Nissan Primera", "dev 2JZ 3/34 simulator", "Rover K", "GM LS 24", "Honda CBR 600", "2JZ_1_12", "Honda CBR 600 custom", "3/1 skipped" , "Dodge Neon 2003 crank", "Miata VVT", "trg34", "trg35", "Subaru 7+6", "Jeep 18-2-2-2", "WIP", "Dodge Neon 1995 crank only", "Jeep XJ 4 cyl", "FiatIAQ_P8", "Mazda Z5", "trg43", "Renix 44-2-2", "Renix 66-2-2-2", "Honda K 12+1", "trg47", "36/2", "Subaru SVX", "1+16", "trg51", "trg52", "INVALID"
|
||||||
#define trigger_type_offset 524
|
#define trigger_type_offset 524
|
||||||
#define trigger_unusedBit_4_10_offset 528
|
#define trigger_unusedBit_4_10_offset 528
|
||||||
|
@ -1492,7 +1492,7 @@
|
||||||
#define TS_ONLINE_PROTOCOL_char z
|
#define TS_ONLINE_PROTOCOL_char z
|
||||||
#define TS_OUTPUT_COMMAND 'O'
|
#define TS_OUTPUT_COMMAND 'O'
|
||||||
#define TS_OUTPUT_COMMAND_char O
|
#define TS_OUTPUT_COMMAND_char O
|
||||||
#define TS_OUTPUT_SIZE 288
|
#define TS_OUTPUT_SIZE 340
|
||||||
#define TS_PAGE_COMMAND 'P'
|
#define TS_PAGE_COMMAND 'P'
|
||||||
#define TS_PAGE_COMMAND_char P
|
#define TS_PAGE_COMMAND_char P
|
||||||
#define TS_PERF_TRACE_BEGIN '_'
|
#define TS_PERF_TRACE_BEGIN '_'
|
||||||
|
@ -1543,16 +1543,46 @@
|
||||||
#define ts_show_spi true
|
#define ts_show_spi true
|
||||||
#define ts_show_trigger_comparator false
|
#define ts_show_trigger_comparator false
|
||||||
#define ts_show_tunerstudio_port true
|
#define ts_show_tunerstudio_port true
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.all.104376296"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914"
|
||||||
#define TS_SINGLE_WRITE_COMMAND 'W'
|
#define TS_SINGLE_WRITE_COMMAND 'W'
|
||||||
#define TS_SINGLE_WRITE_COMMAND_char W
|
#define TS_SINGLE_WRITE_COMMAND_char W
|
||||||
#define TS_TEST_COMMAND 't' // 0x74
|
#define TS_TEST_COMMAND 't' // 0x74
|
||||||
|
#define TT_TT_1_16 50
|
||||||
|
#define TT_TT_2JZ_1_12 29
|
||||||
|
#define TT_TT_2JZ_3_34 25
|
||||||
|
#define TT_TT_36_2_2_2 23
|
||||||
|
#define TT_TT_3_1_CAM 31
|
||||||
#define TT_TT_60_2_VW 20
|
#define TT_TT_60_2_VW 20
|
||||||
|
#define TT_TT_CHRYSLER_NGC_36_2_2 30
|
||||||
|
#define TT_TT_DAIHATSU 6
|
||||||
|
#define TT_TT_FORD_ASPIRE 1
|
||||||
|
#define TT_TT_FORD_ST170 42
|
||||||
|
#define TT_TT_GM_7X 5
|
||||||
|
#define TT_TT_GM_LS_24 27
|
||||||
|
#define TT_TT_HONDA_1_24 21
|
||||||
|
#define TT_TT_HONDA_1_4_24 13
|
||||||
|
#define TT_TT_HONDA_4_24_1 10
|
||||||
|
#define TT_TT_HONDA_CBR_600 28
|
||||||
|
#define TT_TT_HONDA_K_12_1 46
|
||||||
|
#define TT_TT_JEEP_18_2_2_2 37
|
||||||
|
#define TT_TT_JEEP_4_CYL 40
|
||||||
|
#define TT_TT_MAZDA_DOHC_1_4 15
|
||||||
|
#define TT_TT_MAZDA_MIATA_NA 3
|
||||||
|
#define TT_TT_MAZDA_MIATA_NB1 4
|
||||||
|
#define TT_TT_MAZDA_SOHC_4 7
|
||||||
|
#define TT_TT_MIATA_VVT 33
|
||||||
#define TT_TT_ONE 18
|
#define TT_TT_ONE 18
|
||||||
|
#define TT_TT_RENIX_44_2_2 44
|
||||||
|
#define TT_TT_RENIX_66_2_2_2 45
|
||||||
|
#define TT_TT_ROVER_K 26
|
||||||
|
#define TT_TT_SUBARU_7_6 36
|
||||||
|
#define TT_TT_SUBARU_SVX 49
|
||||||
#define TT_TT_TOOTHED_WHEEL 0
|
#define TT_TT_TOOTHED_WHEEL 0
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||||
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
||||||
|
#define TT_TT_VVT_BOSCH_QUICK_START 47
|
||||||
|
#define TT_TT_VVT_JZ 17
|
||||||
#define tunerStudioSerialSpeed_offset 728
|
#define tunerStudioSerialSpeed_offset 728
|
||||||
#define twoWireBatchIgnition_offset 1476
|
#define twoWireBatchIgnition_offset 1476
|
||||||
#define twoWireBatchInjection_offset 1476
|
#define twoWireBatchInjection_offset 1476
|
||||||
|
@ -1691,7 +1721,7 @@
|
||||||
#define veTable_offset 17440
|
#define veTable_offset 17440
|
||||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||||
#define vRefAdcChannel_offset 1470
|
#define vRefAdcChannel_offset 1470
|
||||||
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1"
|
#define vvt_mode_e_auto_enum "VVT_INACTIVE", "VVT_SECOND_HALF", "VVT_2JZ", "MIATA_NB2", "VVT_FIRST_HALF", "VVT_BOSCH_QUICK_START", "VVT_4_1", "VVT_FORD_ST170"
|
||||||
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
#define vvt_mode_e_enum "Inactive", "Single Tooth Second Half", "2GZ", "Miata NB2", "Single Tooth First Half", "Bosch Quick Start", "4/1", "mode7"
|
||||||
#define vvtCamSensorUseRise_offset 744
|
#define vvtCamSensorUseRise_offset 744
|
||||||
#define vvtMode_offset 2328
|
#define vvtMode_offset 2328
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD all
|
#define SIGNATURE_BOARD all
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 3115617215
|
#define SIGNATURE_HASH 768848914
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.all.3115617215"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD frankenso_na6
|
#define SIGNATURE_BOARD frankenso_na6
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 801389124
|
#define SIGNATURE_HASH 3148023273
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.frankenso_na6.801389124"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.frankenso_na6.3148023273"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD hellen_cypress
|
#define SIGNATURE_BOARD hellen_cypress
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 1883581820
|
#define SIGNATURE_HASH 3827438289
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.hellen_cypress.1883581820"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD kin
|
#define SIGNATURE_BOARD kin
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 559486854
|
#define SIGNATURE_HASH 3040749611
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.kin.559486854"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f4
|
#define SIGNATURE_BOARD mre_f4
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 2925811142
|
#define SIGNATURE_HASH 973302379
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f4.2925811142"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f4.973302379"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD mre_f7
|
#define SIGNATURE_BOARD mre_f7
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 2925811142
|
#define SIGNATURE_HASH 973302379
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f7.2925811142"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f7.973302379"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_405
|
#define SIGNATURE_BOARD prometheus_405
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 4218195438
|
#define SIGNATURE_HASH 1863037507
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_405.4218195438"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_405.1863037507"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD prometheus_469
|
#define SIGNATURE_BOARD prometheus_469
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 4218195438
|
#define SIGNATURE_HASH 1863037507
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_469.4218195438"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_469.1863037507"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f4
|
#define SIGNATURE_BOARD proteus_f4
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 1881063777
|
#define SIGNATURE_HASH 3833200332
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f4.1881063777"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f4.3833200332"
|
||||||
|
|
|
@ -3,6 +3,6 @@
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SIGNATURE_BOARD proteus_f7
|
#define SIGNATURE_BOARD proteus_f7
|
||||||
#define SIGNATURE_DATE 2020.11.29
|
#define SIGNATURE_DATE 2020.12.04
|
||||||
#define SIGNATURE_HASH 1881063777
|
#define SIGNATURE_HASH 3833200332
|
||||||
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f7.1881063777"
|
#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f7.3833200332"
|
||||||
|
|
|
@ -552,7 +552,8 @@ void OutputPin::initPin(const char *msg, brain_pin_e brainPin, const pin_output_
|
||||||
actualValue = !actualValue;
|
actualValue = !actualValue;
|
||||||
}
|
}
|
||||||
if (actualValue) {
|
if (actualValue) {
|
||||||
firmwareError(OBD_PCM_Processor_Fault, "%s: startup pin state %s value=%d mode=%s", msg, hwPortname(brainPin), actualValue, getPin_output_mode_e(*outputMode));
|
// todo: https://github.com/rusefi/rusefi/issues/2006
|
||||||
|
// firmwareError(OBD_PCM_Processor_Fault, "%s: startup pin state %s value=%d mode=%s", msg, hwPortname(brainPin), actualValue, getPin_output_mode_e(*outputMode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,8 +136,9 @@ void PwmConfig::setFrequency(float frequency) {
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* see #handleCycleStart()
|
* see #handleCycleStart()
|
||||||
|
* 'periodNt' is below 10 seconds here so we use 32 bit type for performance reasons
|
||||||
*/
|
*/
|
||||||
periodNt = US2NT(frequency2periodUs(frequency));
|
periodNt = USF2NT(frequency2periodUs(frequency));
|
||||||
}
|
}
|
||||||
|
|
||||||
void PwmConfig::stop() {
|
void PwmConfig::stop() {
|
||||||
|
|
|
@ -13,6 +13,11 @@
|
||||||
# (self and (coolant > fan_off_setting)) | (coolant > fan_on_setting) | is_clt_broken
|
# (self and (coolant > fan_off_setting)) | (coolant > fan_on_setting) | is_clt_broken
|
||||||
FAN_CONTROL_LOGIC=(fan and (coolant > cfg_fanOffTemperature)) | (coolant > cfg_fanOnTemperature) | is_clt_broken
|
FAN_CONTROL_LOGIC=(fan and (coolant > cfg_fanOffTemperature)) | (coolant > cfg_fanOnTemperature) | is_clt_broken
|
||||||
|
|
||||||
|
#
|
||||||
|
# todo: we might have a bug here?
|
||||||
|
# todo: 'time_since_boot' means 'getTimeIgnitionSeconds' in case of EFI_MAIN_RELAY_CONTROL like Proteus
|
||||||
|
# and it's negative if ignition is off? does Proteus not get fuel pump start-up priming pulse?!
|
||||||
|
#
|
||||||
FUEL_PUMP_LOGIC=((time_since_boot >= 0) & (time_since_boot < startup_fuel_pump_duration)) | (rpm > 0)
|
FUEL_PUMP_LOGIC=((time_since_boot >= 0) & (time_since_boot < startup_fuel_pump_duration)) | (rpm > 0)
|
||||||
|
|
||||||
ALTERNATOR_LOGIC=vbatt < 14.5
|
ALTERNATOR_LOGIC=vbatt < 14.5
|
||||||
|
|
|
@ -1,74 +0,0 @@
|
||||||
/**
|
|
||||||
* @file trigger_bmw.cpp
|
|
||||||
*
|
|
||||||
* @date May 11, 2014
|
|
||||||
* @author Andrey Belomutskiy, (c) 2012-2020
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "trigger_bmw.h"
|
|
||||||
|
|
||||||
static inline float addPair(TriggerWaveform *s, float a, float w) {
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
a += w;
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureMiniCooperTriggerWaveform(TriggerWaveform *s) {
|
|
||||||
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
|
||||||
|
|
||||||
// s->initialState[0] = 1;
|
|
||||||
|
|
||||||
float w = 360.0 / 121;
|
|
||||||
float a = w / 2;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
a += w;
|
|
||||||
|
|
||||||
for (int i = 0; i <= 22; i++) {
|
|
||||||
a = addPair(s, a, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
a += 3 * w;
|
|
||||||
|
|
||||||
float firstGapAngle = a;
|
|
||||||
/* may be */UNUSED(firstGapAngle);
|
|
||||||
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += 3 * w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
a += w;
|
|
||||||
|
|
||||||
for (int i = 0; i < 36; i++) {
|
|
||||||
a = addPair(s, a, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
s->addEvent720(376, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
for (int i = 0; i < 21; i++) {
|
|
||||||
a = addPair(s, a, w);
|
|
||||||
}
|
|
||||||
a += 3 * w;
|
|
||||||
|
|
||||||
efiAssertVoid(CUSTOM_ERR_6584, absF(firstGapAngle + 360 - a) < 0.1, "shape constraint");
|
|
||||||
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += 3 * w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
a += w;
|
|
||||||
|
|
||||||
for (int i = 0; i < 33; i++) {
|
|
||||||
a = addPair(s, a, w);
|
|
||||||
}
|
|
||||||
|
|
||||||
efiAssertVoid(CUSTOM_ERR_6585, absF(720 - w / 2 - a) < 0.1, "shape constraint");
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
|
|
||||||
s->addEvent720(720.0, T_PRIMARY, TV_FALL);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* With just one tooth on camshaft synchronization is not needed
|
|
||||||
*/
|
|
||||||
s->isSynchronizationNeeded = false;
|
|
||||||
s->useOnlyPrimaryForSync = true;
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
/**
|
|
||||||
* @file trigger_bmw.h
|
|
||||||
*
|
|
||||||
* @date May 11, 2014
|
|
||||||
* @author Andrey Belomutskiy, (c) 2012-2020
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "trigger_structure.h"
|
|
||||||
|
|
||||||
void configureMiniCooperTriggerWaveform(TriggerWaveform *s);
|
|
||||||
|
|
|
@ -574,3 +574,41 @@ void initJeep_XJ_4cyl_2500(TriggerWaveform *s) {
|
||||||
s->addEvent720(596 + offset, T_PRIMARY, TV_FALL); // 720
|
s->addEvent720(596 + offset, T_PRIMARY, TV_FALL); // 720
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void configureChryslerNGC_36_2_2(TriggerWaveform *s) {
|
||||||
|
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
||||||
|
|
||||||
|
float wide = 30 * 2;
|
||||||
|
float narrow = 10 * 2;
|
||||||
|
|
||||||
|
s->isSynchronizationNeeded = true;
|
||||||
|
s->setTriggerSynchronizationGap(3.5);
|
||||||
|
for (int i = 1; i < 15; i++) {
|
||||||
|
s->setTriggerSynchronizationGap3(/*gapIndex*/i, TRIGGER_GAP_DEVIATION_LOW, TRIGGER_GAP_DEVIATION_HIGH);
|
||||||
|
}
|
||||||
|
s->setTriggerSynchronizationGap3(/*gapIndex*/15, 0.4 * TRIGGER_GAP_DEVIATION_LOW, 0.4 * TRIGGER_GAP_DEVIATION_HIGH);
|
||||||
|
|
||||||
|
float base = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < 14; i++) {
|
||||||
|
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(base + narrow, T_PRIMARY, TV_FALL);
|
||||||
|
base += narrow;
|
||||||
|
}
|
||||||
|
|
||||||
|
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
|
||||||
|
base += narrow / 2;
|
||||||
|
s->addEventAngle(base + wide, T_PRIMARY, TV_FALL);
|
||||||
|
base += wide;
|
||||||
|
|
||||||
|
for (int i = 0; i < 16; i++) {
|
||||||
|
s->addEventAngle(base + narrow / 2, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(base + narrow, T_PRIMARY, TV_FALL);
|
||||||
|
base += narrow;
|
||||||
|
}
|
||||||
|
|
||||||
|
// one small tooth at the end of the engine cycle
|
||||||
|
s->addEventAngle(s->getCycleDuration() - narrow / 2, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(s->getCycleDuration(), T_PRIMARY, TV_FALL);
|
||||||
|
s->useOnlyPrimaryForSync = true;
|
||||||
|
}
|
||||||
|
|
|
@ -24,3 +24,5 @@ void configureDodgeStratusTriggerWaveform(TriggerWaveform *s);
|
||||||
void initJeep18_2_2_2(TriggerWaveform *s);
|
void initJeep18_2_2_2(TriggerWaveform *s);
|
||||||
void initJeep_XJ_4cyl_2500(TriggerWaveform *s);
|
void initJeep_XJ_4cyl_2500(TriggerWaveform *s);
|
||||||
|
|
||||||
|
void configureChryslerNGC_36_2_2(TriggerWaveform *s);
|
||||||
|
|
||||||
|
|
|
@ -209,80 +209,6 @@ void configureHondaCbr600(TriggerWaveform *s) {
|
||||||
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
|
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void configureHondaCbr600custom(TriggerWaveform *s) {
|
|
||||||
|
|
||||||
// w = 15
|
|
||||||
float w = 720 / 2 / 24;
|
|
||||||
// s->initialize(FOUR_STROKE_CAM_SENSOR);
|
|
||||||
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
|
||||||
|
|
||||||
s->useOnlyPrimaryForSync = true;
|
|
||||||
s->isSynchronizationNeeded = true;
|
|
||||||
s->setTriggerSynchronizationGap2(0.7, 1.1);
|
|
||||||
|
|
||||||
|
|
||||||
float a = 0;
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a - 1, T_SECONDARY, TV_FALL); // 30
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
s->addEvent720(52.4, T_PRIMARY, TV_FALL);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a - 1, T_SECONDARY, TV_FALL); // 60
|
|
||||||
|
|
||||||
for (int i = 0;i<10;i++) {
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
|
|
||||||
s->addEvent720(381.34f, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a - 1, T_SECONDARY, TV_FALL);
|
|
||||||
|
|
||||||
for (int i = 0;i<1;i++) {
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
|
|
||||||
|
|
||||||
s->addEvent720(449.1f, T_PRIMARY, TV_FALL);
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0;i<8;i++) {
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_FALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a, T_SECONDARY, TV_RISE);
|
|
||||||
a += w;
|
|
||||||
s->addEvent720(a - 1, T_SECONDARY, TV_FALL);
|
|
||||||
|
|
||||||
|
|
||||||
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void configureHondaAccordShifted(TriggerWaveform *s) {
|
void configureHondaAccordShifted(TriggerWaveform *s) {
|
||||||
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,5 @@ void configureHonda_1_4_24(TriggerWaveform *s, bool withOneEventSignal, bool wit
|
||||||
void configureOnePlus16(TriggerWaveform *s);
|
void configureOnePlus16(TriggerWaveform *s);
|
||||||
|
|
||||||
void configureHondaCbr600(TriggerWaveform *s);
|
void configureHondaCbr600(TriggerWaveform *s);
|
||||||
void configureHondaCbr600custom(TriggerWaveform *s);
|
|
||||||
|
|
||||||
void configureHondaK_12_1(TriggerWaveform *s);
|
void configureHondaK_12_1(TriggerWaveform *s);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -52,55 +52,23 @@ void initializeMazdaMiataNaShape(TriggerWaveform *s) {
|
||||||
s->useOnlyPrimaryForSync = true;
|
s->useOnlyPrimaryForSync = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* by alexander-n8hgeg5e
|
|
||||||
* See https://rusefi.com/forum/viewtopic.php?f=5&t=1447
|
|
||||||
*/
|
|
||||||
void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s) {
|
|
||||||
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
|
||||||
/**
|
|
||||||
* My Signal is: 60, 60, 102, 60
|
|
||||||
* 120, 120, 120, 78,
|
|
||||||
* ^
|
|
||||||
* |
|
|
||||||
* sync point = 0 degree from now on
|
|
||||||
* All rising edges are 60 befor some OT.
|
|
||||||
* If the edge goes high, it should look at the last past 2 events. (high-low-now)
|
|
||||||
* time1/time2 == 78/102 = 13/17 then triggerevent '0' would be nice.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
s->useRiseEdge = false;
|
|
||||||
s->tdcPosition = 0; // 1 and 3 are at top , so 0 or 360
|
|
||||||
s->setTriggerSynchronizationGap(0.7);
|
|
||||||
|
|
||||||
s->addEvent720(60.0f, T_PRIMARY, TV_FALL);
|
|
||||||
s->addEvent720(180.0f, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
s->addEvent720(240.0f, T_PRIMARY, TV_FALL);
|
|
||||||
s->addEvent720(360.0f, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
s->addEvent720(420.0f, T_PRIMARY, TV_FALL);
|
|
||||||
s->addEvent720(540.0f, T_PRIMARY, TV_RISE);
|
|
||||||
|
|
||||||
s->addEvent720(618.0f, T_PRIMARY, TV_FALL);
|
|
||||||
s->addEvent720(720.0f, T_PRIMARY, TV_RISE);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TT_MIATA_VVT
|
// TT_MIATA_VVT
|
||||||
void initializeMazdaMiataNb2Crank(TriggerWaveform *s) {
|
void initializeMazdaMiataNb2Crank(TriggerWaveform *s) {
|
||||||
|
/**
|
||||||
|
* Note how we use 0..180 range while defining FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR trigger
|
||||||
|
* Note that only half of the physical wheel is defined here!
|
||||||
|
*/
|
||||||
s->initialize(FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR);
|
s->initialize(FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR);
|
||||||
|
|
||||||
float o = 40;
|
|
||||||
|
|
||||||
s->tdcPosition = 60 + 655;
|
s->tdcPosition = 60 + 655;
|
||||||
|
|
||||||
s->setTriggerSynchronizationGap2(0.35f, 0.98f);
|
s->setTriggerSynchronizationGap2(0.35f, 0.98f);
|
||||||
// 384
|
// 384
|
||||||
s->addEventAngle(o + 56.0f, T_PRIMARY, TV_FALL);
|
s->addEventAngle(96.0f, T_PRIMARY, TV_FALL);
|
||||||
// 400
|
// 400
|
||||||
s->addEventAngle(o + 60.0f, T_PRIMARY, TV_RISE);
|
s->addEventAngle(100.0f, T_PRIMARY, TV_RISE);
|
||||||
s->addEventAngle(o + 136.0f, T_PRIMARY, TV_FALL);
|
s->addEventAngle(176.0f, T_PRIMARY, TV_FALL);
|
||||||
s->addEventAngle(o + 140.0f, T_PRIMARY, TV_RISE);
|
s->addEventAngle(180.0f, T_PRIMARY, TV_RISE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void initializeMazdaMiataNb1ShapeWithOffset(TriggerWaveform *s, float offset) {
|
static void initializeMazdaMiataNb1ShapeWithOffset(TriggerWaveform *s, float offset) {
|
||||||
|
|
|
@ -17,7 +17,6 @@ void initializeMazdaMiataNb2Crank(TriggerWaveform *s);
|
||||||
void initializeMazdaMiataVVtTestShape(TriggerWaveform *s);
|
void initializeMazdaMiataVVtTestShape(TriggerWaveform *s);
|
||||||
void configureMazdaProtegeSOHC(TriggerWaveform *s);
|
void configureMazdaProtegeSOHC(TriggerWaveform *s);
|
||||||
void configureMazdaProtegeLx(TriggerWaveform *s);
|
void configureMazdaProtegeLx(TriggerWaveform *s);
|
||||||
void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TT_VVT_MIATA_NB2
|
* TT_VVT_MIATA_NB2
|
||||||
|
|
|
@ -25,3 +25,49 @@ void configureFiatIAQ_P8(TriggerWaveform * s) {
|
||||||
s->setTriggerSynchronizationGap(3);
|
s->setTriggerSynchronizationGap(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void configureFordST170(TriggerWaveform * s) {
|
||||||
|
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
||||||
|
s->isSynchronizationNeeded = true;
|
||||||
|
int width = 10;
|
||||||
|
|
||||||
|
int total = s->getCycleDuration() / 8;
|
||||||
|
|
||||||
|
s->addEventAngle(1 * total - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(1 * total, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(2 * total - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(2 * total, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(4 * total - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(4 * total, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(6 * total - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(6 * total, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(8 * total - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(8 * total, T_PRIMARY, TV_FALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
void configureDaihatsu4(TriggerWaveform * s) {
|
||||||
|
s->initialize(FOUR_STROKE_CAM_SENSOR);
|
||||||
|
|
||||||
|
s->isSynchronizationNeeded = true;
|
||||||
|
|
||||||
|
int width = 10;
|
||||||
|
|
||||||
|
s->setTriggerSynchronizationGap(0.125);
|
||||||
|
|
||||||
|
s->addEventAngle(30 - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(30, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
|
||||||
|
s->addEventAngle(s->getCycleDuration() / 3 - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(s->getCycleDuration() / 3, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(s->getCycleDuration() / 3 * 2 - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(s->getCycleDuration() / 3 * 2, T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
s->addEventAngle(s->getCycleDuration() - width, T_PRIMARY, TV_RISE);
|
||||||
|
s->addEventAngle(s->getCycleDuration(), T_PRIMARY, TV_FALL);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -10,4 +10,6 @@
|
||||||
#include "trigger_structure.h"
|
#include "trigger_structure.h"
|
||||||
|
|
||||||
void configureFiatIAQ_P8(TriggerWaveform * s);
|
void configureFiatIAQ_P8(TriggerWaveform * s);
|
||||||
|
void configureDaihatsu4(TriggerWaveform * s);
|
||||||
|
void configureFordST170(TriggerWaveform * s);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "os_access.h"
|
#include "os_access.h"
|
||||||
#include "engine.h"
|
#include "engine.h"
|
||||||
#include "trigger_bmw.h"
|
|
||||||
#include "trigger_chrysler.h"
|
#include "trigger_chrysler.h"
|
||||||
#include "trigger_gm.h"
|
#include "trigger_gm.h"
|
||||||
#include "trigger_nissan.h"
|
#include "trigger_nissan.h"
|
||||||
|
@ -102,7 +101,8 @@ void TriggerWaveform::initialize(operation_mode_e operationMode) {
|
||||||
previousAngle = 0;
|
previousAngle = 0;
|
||||||
memset(isRiseEvent, 0, sizeof(isRiseEvent));
|
memset(isRiseEvent, 0, sizeof(isRiseEvent));
|
||||||
#if EFI_UNIT_TEST
|
#if EFI_UNIT_TEST
|
||||||
memset(&triggerSignals, 0, sizeof(triggerSignals));
|
memset(&triggerSignalIndeces, 0, sizeof(triggerSignalIndeces));
|
||||||
|
memset(&triggerSignalStates, 0, sizeof(triggerSignalStates));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,8 +228,8 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
#if EFI_UNIT_TEST
|
#if EFI_UNIT_TEST
|
||||||
int signal = channelIndex * 1000 + stateParam;
|
triggerSignalIndeces[privateTriggerDefinitionSize] = channelIndex;
|
||||||
triggerSignals[privateTriggerDefinitionSize] = signal;
|
triggerSignalStates[privateTriggerDefinitionSize] = stateParam;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -240,7 +240,7 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
|
||||||
expectedEventCount[channelIndex]++;
|
expectedEventCount[channelIndex]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
efiAssertVoid(CUSTOM_ERR_6599, angle > 0, "angle should be positive");
|
efiAssertVoid(CUSTOM_ERR_6599, angle > 0 && angle <= 1, "angle should be positive not above 1");
|
||||||
if (privateTriggerDefinitionSize > 0) {
|
if (privateTriggerDefinitionSize > 0) {
|
||||||
if (angle <= previousAngle) {
|
if (angle <= previousAngle) {
|
||||||
warning(CUSTOM_ERR_TRG_ANGLE_ORDER, "invalid angle order: new=%.2f/%f and prev=%.2f/%f, size=%d",
|
warning(CUSTOM_ERR_TRG_ANGLE_ORDER, "invalid angle order: new=%.2f/%f and prev=%.2f/%f, size=%d",
|
||||||
|
@ -330,6 +330,7 @@ void TriggerWaveform::setTriggerSynchronizationGap2(float syncRatioFrom, float s
|
||||||
|
|
||||||
void TriggerWaveform::setTriggerSynchronizationGap3(int gapIndex, float syncRatioFrom, float syncRatioTo) {
|
void TriggerWaveform::setTriggerSynchronizationGap3(int gapIndex, float syncRatioFrom, float syncRatioTo) {
|
||||||
isSynchronizationNeeded = true;
|
isSynchronizationNeeded = true;
|
||||||
|
efiAssertVoid(OBD_PCM_Processor_Fault, gapIndex >= 0 && gapIndex < GAP_TRACKING_LENGTH, "gapIndex out of range");
|
||||||
this->syncronizationRatioFrom[gapIndex] = syncRatioFrom;
|
this->syncronizationRatioFrom[gapIndex] = syncRatioFrom;
|
||||||
this->syncronizationRatioTo[gapIndex] = syncRatioTo;
|
this->syncronizationRatioTo[gapIndex] = syncRatioTo;
|
||||||
if (gapIndex == 0) {
|
if (gapIndex == 0) {
|
||||||
|
@ -427,7 +428,7 @@ void TriggerWaveform::prepareShape(TriggerFormDetails *details DECLARE_ENGINE_PA
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerWaveform::setTriggerSynchronizationGap(float syncRatio) {
|
void TriggerWaveform::setTriggerSynchronizationGap(float syncRatio) {
|
||||||
setTriggerSynchronizationGap3(/*gapIndex*/0, syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(/*gapIndex*/0, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo) {
|
||||||
|
@ -435,11 +436,11 @@ void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, f
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerWaveform::setThirdTriggerSynchronizationGap(float syncRatio) {
|
void TriggerWaveform::setThirdTriggerSynchronizationGap(float syncRatio) {
|
||||||
setTriggerSynchronizationGap3(/*gapIndex*/2, syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(/*gapIndex*/2, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TriggerWaveform::setSecondTriggerSynchronizationGap(float syncRatio) {
|
void TriggerWaveform::setSecondTriggerSynchronizationGap(float syncRatio) {
|
||||||
setTriggerSynchronizationGap3(/*gapIndex*/1, syncRatio * 0.75f, syncRatio * 1.25f);
|
setTriggerSynchronizationGap3(/*gapIndex*/1, syncRatio * TRIGGER_GAP_DEVIATION_LOW, syncRatio * TRIGGER_GAP_DEVIATION_HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -476,8 +477,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
|
||||||
initializeMazdaMiataVVtTestShape(this);
|
initializeMazdaMiataVVtTestShape(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_MAZDA_Z5:
|
case TT_FORD_ST170:
|
||||||
initialize_Mazda_Engine_z5_Shape(this);
|
configureFordST170(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_VVT_MIATA_NB2:
|
case TT_VVT_MIATA_NB2:
|
||||||
|
@ -545,8 +546,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
|
||||||
configureMazdaProtegeSOHC(this);
|
configureMazdaProtegeSOHC(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_MINI_COOPER_R50:
|
case TT_TT_DAIHATSU:
|
||||||
configureMiniCooperTriggerWaveform(this);
|
configureDaihatsu4(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_VVT_JZ:
|
case TT_VVT_JZ:
|
||||||
|
@ -607,8 +608,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
|
||||||
configureHondaCbr600(this);
|
configureHondaCbr600(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_HONDA_CBR_600_CUSTOM:
|
case TT_CHRYSLER_NGC_36_2_2:
|
||||||
configureHondaCbr600custom(this);
|
configureChryslerNGC_36_2_2(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TT_MITSUBISHI:
|
case TT_MITSUBISHI:
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
|
|
||||||
#define FOUR_STROKE_ENGINE_CYCLE 720
|
#define FOUR_STROKE_ENGINE_CYCLE 720
|
||||||
|
|
||||||
|
#define TRIGGER_GAP_DEVIATION 0.25f
|
||||||
|
#define TRIGGER_GAP_DEVIATION_LOW (1.0f - TRIGGER_GAP_DEVIATION)
|
||||||
|
#define TRIGGER_GAP_DEVIATION_HIGH (1.0f + TRIGGER_GAP_DEVIATION)
|
||||||
|
|
||||||
#if EFI_ENABLE_ASSERTS
|
#if EFI_ENABLE_ASSERTS
|
||||||
#define assertAngleRange(angle, msg, code) if (angle > 10000000 || angle < -10000000) { firmwareError(code, "angle range %s %.2f", msg, angle);angle = 0;}
|
#define assertAngleRange(angle, msg, code) if (angle > 10000000 || angle < -10000000) { firmwareError(code, "angle range %s %.2f", msg, angle);angle = 0;}
|
||||||
#else
|
#else
|
||||||
|
@ -68,7 +72,8 @@ class TriggerState;
|
||||||
class TriggerFormDetails;
|
class TriggerFormDetails;
|
||||||
class TriggerConfiguration;
|
class TriggerConfiguration;
|
||||||
|
|
||||||
#define GAP_TRACKING_LENGTH 4
|
// https://github.com/rusefi/rusefi/issues/2010 shows the corner case wheel with huge depth requirement
|
||||||
|
#define GAP_TRACKING_LENGTH 18
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Trigger shape has all the fields needed to describe and decode trigger signal.
|
* @brief Trigger shape has all the fields needed to describe and decode trigger signal.
|
||||||
|
@ -181,7 +186,8 @@ public:
|
||||||
/**
|
/**
|
||||||
* These signals are used for trigger export only
|
* These signals are used for trigger export only
|
||||||
*/
|
*/
|
||||||
int triggerSignals[PWM_PHASE_MAX_COUNT];
|
int triggerSignalIndeces[PWM_PHASE_MAX_COUNT];
|
||||||
|
int triggerSignalStates[PWM_PHASE_MAX_COUNT];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MultiChannelStateSequence wave;
|
MultiChannelStateSequence wave;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
TRIGGER_DECODERS_SRC_CPP = \
|
TRIGGER_DECODERS_SRC_CPP = \
|
||||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_bmw.cpp \
|
|
||||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_mazda.cpp \
|
$(CONTROLLERS_DIR)/trigger/decoders/trigger_mazda.cpp \
|
||||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_chrysler.cpp \
|
$(CONTROLLERS_DIR)/trigger/decoders/trigger_chrysler.cpp \
|
||||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_structure.cpp \
|
$(CONTROLLERS_DIR)/trigger/decoders/trigger_structure.cpp \
|
||||||
|
|
|
@ -82,6 +82,7 @@ angle_t TriggerCentral::getVVTPosition() {
|
||||||
static bool vvtWithRealDecoder(vvt_mode_e vvtMode) {
|
static bool vvtWithRealDecoder(vvt_mode_e vvtMode) {
|
||||||
return vvtMode == MIATA_NB2
|
return vvtMode == MIATA_NB2
|
||||||
|| vvtMode == VVT_BOSCH_QUICK_START
|
|| vvtMode == VVT_BOSCH_QUICK_START
|
||||||
|
|| vvtMode == VVT_FORD_ST170
|
||||||
|| vvtMode == VVT_4_1;
|
|| vvtMode == VVT_4_1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -426,6 +427,8 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta
|
||||||
|
|
||||||
engine->onTriggerSignalEvent(timestamp);
|
engine->onTriggerSignalEvent(timestamp);
|
||||||
|
|
||||||
|
m_lastEventTimer.reset(timestamp);
|
||||||
|
|
||||||
int eventIndex = (int) signal;
|
int eventIndex = (int) signal;
|
||||||
efiAssertVoid(CUSTOM_TRIGGER_EVENT_TYPE, eventIndex >= 0 && eventIndex < HW_EVENT_TYPES, "signal type");
|
efiAssertVoid(CUSTOM_TRIGGER_EVENT_TYPE, eventIndex >= 0 && eventIndex < HW_EVENT_TYPES, "signal type");
|
||||||
hwEventCounters[eventIndex]++;
|
hwEventCounters[eventIndex]++;
|
||||||
|
@ -517,6 +520,7 @@ static void triggerShapeInfo(void) {
|
||||||
#if EFI_UNIT_TEST
|
#if EFI_UNIT_TEST
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
extern trigger_type_e focusOnTrigger;
|
||||||
#define TRIGGERS_FILE_NAME "triggers.txt"
|
#define TRIGGERS_FILE_NAME "triggers.txt"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -536,6 +540,10 @@ void printAllTriggers() {
|
||||||
for (int triggerId = 1; triggerId < TT_UNUSED; triggerId++) {
|
for (int triggerId = 1; triggerId < TT_UNUSED; triggerId++) {
|
||||||
trigger_type_e tt = (trigger_type_e) triggerId;
|
trigger_type_e tt = (trigger_type_e) triggerId;
|
||||||
|
|
||||||
|
if (focusOnTrigger != TT_UNUSED && tt != focusOnTrigger) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
printf("Exporting %s\r\n", getTrigger_type_e(tt));
|
printf("Exporting %s\r\n", getTrigger_type_e(tt));
|
||||||
|
|
||||||
persistent_config_s pc;
|
persistent_config_s pc;
|
||||||
|
@ -553,7 +561,7 @@ void printAllTriggers() {
|
||||||
engine->initializeTriggerWaveform(NULL PASS_ENGINE_PARAMETER_SUFFIX);
|
engine->initializeTriggerWaveform(NULL PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
if (shape->shapeDefinitionError) {
|
if (shape->shapeDefinitionError) {
|
||||||
printf("Trigger error %d\r\n", triggerId);
|
printf("Trigger shapeDefinitionError %d\r\n", triggerId);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -566,7 +574,11 @@ void printAllTriggers() {
|
||||||
int triggerDefinitionCoordinate = (shape->getTriggerWaveformSynchPointIndex() + i) % shape->getSize();
|
int triggerDefinitionCoordinate = (shape->getTriggerWaveformSynchPointIndex() + i) % shape->getSize();
|
||||||
|
|
||||||
|
|
||||||
fprintf(fp, "event %d %d %.2f\n", i, shape->triggerSignals[triggerDefinitionCoordinate], triggerFormDetails->eventAngles[i]);
|
fprintf(fp, "event %d %d %d %.2f\n",
|
||||||
|
i,
|
||||||
|
shape->triggerSignalIndeces[triggerDefinitionCoordinate],
|
||||||
|
shape->triggerSignalStates[triggerDefinitionCoordinate],
|
||||||
|
triggerFormDetails->eventAngles[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#include "listener_array.h"
|
#include "listener_array.h"
|
||||||
#include "trigger_decoder.h"
|
#include "trigger_decoder.h"
|
||||||
#include "trigger_central_generated.h"
|
#include "trigger_central_generated.h"
|
||||||
|
#include "timer.h"
|
||||||
|
|
||||||
class Engine;
|
class Engine;
|
||||||
typedef void (*ShaftPositionListener)(trigger_event_e signal, uint32_t index, efitick_t edgeTimestamp DECLARE_ENGINE_PARAMETER_SUFFIX);
|
typedef void (*ShaftPositionListener)(trigger_event_e signal, uint32_t index, efitick_t edgeTimestamp DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
@ -43,6 +44,10 @@ public:
|
||||||
void resetCounters();
|
void resetCounters();
|
||||||
void validateCamVvtCounters();
|
void validateCamVvtCounters();
|
||||||
|
|
||||||
|
float getTimeSinceTriggerEvent() const {
|
||||||
|
return m_lastEventTimer.getElapsedSeconds();
|
||||||
|
}
|
||||||
|
|
||||||
TriggerNoiseFilter noiseFilter;
|
TriggerNoiseFilter noiseFilter;
|
||||||
|
|
||||||
trigger_type_e vvtTriggerType;
|
trigger_type_e vvtTriggerType;
|
||||||
|
@ -67,6 +72,9 @@ public:
|
||||||
TriggerWaveform vvtShape;
|
TriggerWaveform vvtShape;
|
||||||
|
|
||||||
TriggerFormDetails triggerFormDetails;
|
TriggerFormDetails triggerFormDetails;
|
||||||
|
|
||||||
|
// Keep track of the last time we got a valid trigger event
|
||||||
|
Timer m_lastEventTimer;
|
||||||
};
|
};
|
||||||
|
|
||||||
void triggerInfo(void);
|
void triggerInfo(void);
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
|
|
||||||
EXTERN_ENGINE;
|
EXTERN_ENGINE;
|
||||||
|
|
||||||
|
#if EFI_UNIT_TEST
|
||||||
|
extern bool printTriggerTrace;
|
||||||
|
#endif
|
||||||
|
|
||||||
// this is not the only place where we have 'isUpEvent'. todo: reuse
|
// this is not the only place where we have 'isUpEvent'. todo: reuse
|
||||||
static const bool isRisingEdge[HW_EVENT_TYPES] = { false, true, false, true, false, true };
|
static const bool isRisingEdge[HW_EVENT_TYPES] = { false, true, false, true, false, true };
|
||||||
|
|
||||||
|
@ -112,21 +116,32 @@ void TriggerStimulatorHelper::assertSyncPositionAndSetDutyCycle(
|
||||||
TriggerWaveform& shape
|
TriggerWaveform& shape
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
// todo: is anything limiting this TEST_REVOLUTIONS? why does value '8' not work for example?
|
||||||
|
#define TEST_REVOLUTIONS 6
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* let's feed two more cycles to validate shape definition
|
* let's feed two more cycles to validate shape definition
|
||||||
*/
|
*/
|
||||||
for (uint32_t i = syncIndex + 1; i <= syncIndex + GAP_TRACKING_LENGTH * shape.getSize(); i++) {
|
for (uint32_t i = syncIndex + 1; i <= syncIndex + TEST_REVOLUTIONS * shape.getSize(); i++) {
|
||||||
feedSimulatedEvent(triggerCycleCallback,
|
feedSimulatedEvent(triggerCycleCallback,
|
||||||
triggerConfiguration,
|
triggerConfiguration,
|
||||||
state, shape, i);
|
state, shape, i);
|
||||||
}
|
}
|
||||||
int revolutionCounter = state.getTotalRevolutionCounter();
|
int revolutionCounter = state.getTotalRevolutionCounter();
|
||||||
if (revolutionCounter != GAP_TRACKING_LENGTH + 1) {
|
if (revolutionCounter != TEST_REVOLUTIONS + 1) {
|
||||||
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s rc=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
|
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s revolutionCounter=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
|
||||||
shape.setShapeDefinitionError(true);
|
shape.setShapeDefinitionError(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
shape.shapeDefinitionError = false;
|
shape.shapeDefinitionError = false;
|
||||||
|
#if EFI_UNIT_TEST
|
||||||
|
if (printTriggerTrace) {
|
||||||
|
printf("Happy %s revolutionCounter=%d\r\n",
|
||||||
|
getTrigger_type_e(triggerConfiguration.TriggerType),
|
||||||
|
revolutionCounter);
|
||||||
|
}
|
||||||
|
#endif /* EFI_UNIT_TEST */
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < PWM_PHASE_MAX_WAVE_PER_PWM; i++) {
|
for (int i = 0; i < PWM_PHASE_MAX_WAVE_PER_PWM; i++) {
|
||||||
shape.expectedDutyCycle[i] = 1.0 * state.expectedTotalTime[i] / SIMULATION_CYCLE_PERIOD;
|
shape.expectedDutyCycle[i] = 1.0 * state.expectedTotalTime[i] / SIMULATION_CYCLE_PERIOD;
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
rusEfi is trying to use latest stable ChibiOS with minimal changes
|
rusEFI is trying to use latest stable ChibiOS with minimal changes
|
||||||
|
|
||||||
At the moment rusEfi custom version of ChibiOS has the following changes:
|
At the moment rusEFI uses https://github.com/rusefi/ChibiOS/tree/stable_18.2.rusefi
|
||||||
|
|
||||||
|
rusEFI custom version of ChibiOS has the following changes:
|
||||||
|
|
||||||
*) minor OS monitoring and maintainability fixes:
|
*) minor OS monitoring and maintainability fixes:
|
||||||
chDbgStackOverflowPanic allows to know which thread has stack overflow
|
chDbgStackOverflowPanic allows to know which thread has stack overflow
|
|
@ -28,8 +28,8 @@ public:
|
||||||
bool isHwUsed(adc_channel_e hwChannel) const;
|
bool isHwUsed(adc_channel_e hwChannel) const;
|
||||||
int size() const;
|
int size() const;
|
||||||
void init(void);
|
void init(void);
|
||||||
int conversionCount;
|
uint32_t conversionCount = 0;
|
||||||
int errorsCount;
|
uint32_t errorsCount = 0;
|
||||||
int getAdcValueByIndex(int internalIndex) const;
|
int getAdcValueByIndex(int internalIndex) const;
|
||||||
void invalidateSamplesCache();
|
void invalidateSamplesCache();
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public:
|
||||||
int getAdcValueByHwChannel(adc_channel_e hwChannel) const;
|
int getAdcValueByHwChannel(adc_channel_e hwChannel) const;
|
||||||
|
|
||||||
adc_state values;
|
adc_state values;
|
||||||
int channelCount;
|
size_t channelCount = 0;
|
||||||
private:
|
private:
|
||||||
ADCConversionGroup* hwConfig;
|
ADCConversionGroup* hwConfig;
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -64,9 +64,6 @@ float getVoltage(const char *msg, adc_channel_e hwChannel DECLARE_ENGINE_PARAMET
|
||||||
AdcDevice::AdcDevice(ADCConversionGroup* hwConfig, adcsample_t *buf) {
|
AdcDevice::AdcDevice(ADCConversionGroup* hwConfig, adcsample_t *buf) {
|
||||||
this->hwConfig = hwConfig;
|
this->hwConfig = hwConfig;
|
||||||
this->samples = buf;
|
this->samples = buf;
|
||||||
channelCount = 0;
|
|
||||||
conversionCount = 0;
|
|
||||||
errorsCount = 0;
|
|
||||||
|
|
||||||
hwConfig->sqr1 = 0;
|
hwConfig->sqr1 = 0;
|
||||||
hwConfig->sqr2 = 0;
|
hwConfig->sqr2 = 0;
|
||||||
|
@ -342,7 +339,7 @@ void AdcDevice::init(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AdcDevice::isHwUsed(adc_channel_e hwChannelIndex) const {
|
bool AdcDevice::isHwUsed(adc_channel_e hwChannelIndex) const {
|
||||||
for (int i = 0; i < channelCount; i++) {
|
for (size_t i = 0; i < channelCount; i++) {
|
||||||
if (hardwareIndexByIndernalAdcIndex[i] == hwChannelIndex) {
|
if (hardwareIndexByIndernalAdcIndex[i] == hwChannelIndex) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,13 +47,10 @@
|
||||||
!
|
!
|
||||||
!
|
!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
!
|
!
|
||||||
! this is here so that rusEfi console can access it, too
|
! this is here so that rusEfi console can access it, too
|
||||||
! [IMPORTANT] every time TS_OUTPUT_SIZE is changed make sure to increment TS_SIGNATURE above
|
|
||||||
!
|
!
|
||||||
#define TS_OUTPUT_SIZE 288
|
#define TS_OUTPUT_SIZE 340
|
||||||
|
|
||||||
!
|
!
|
||||||
! this is used to confirm that firmware and TunerStudio are using the same rusefi.ini version
|
! this is used to confirm that firmware and TunerStudio are using the same rusefi.ini version
|
||||||
|
@ -389,11 +386,41 @@ struct ThermistorConf @brief Thermistor curve parameters
|
||||||
end_struct
|
end_struct
|
||||||
|
|
||||||
#define TT_TT_TOOTHED_WHEEL 0
|
#define TT_TT_TOOTHED_WHEEL 0
|
||||||
|
#define TT_TT_FORD_ASPIRE 1
|
||||||
|
#define TT_TT_MAZDA_MIATA_NA 3
|
||||||
|
#define TT_TT_MAZDA_MIATA_NB1 4
|
||||||
|
#define TT_TT_GM_7X 5
|
||||||
|
#define TT_TT_DAIHATSU 6
|
||||||
|
#define TT_TT_MAZDA_SOHC_4 7
|
||||||
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
#define TT_TT_TOOTHED_WHEEL_60_2 8
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
#define TT_TT_TOOTHED_WHEEL_36_1 9
|
||||||
|
#define TT_TT_HONDA_4_24_1 10
|
||||||
|
#define TT_TT_HONDA_1_4_24 13
|
||||||
|
#define TT_TT_MAZDA_DOHC_1_4 15
|
||||||
|
#define TT_TT_VVT_JZ 17
|
||||||
#define TT_TT_ONE 18
|
#define TT_TT_ONE 18
|
||||||
#define TT_TT_60_2_VW 20
|
#define TT_TT_60_2_VW 20
|
||||||
|
#define TT_TT_HONDA_1_24 21
|
||||||
|
#define TT_TT_36_2_2_2 23
|
||||||
|
#define TT_TT_2JZ_3_34 25
|
||||||
|
#define TT_TT_ROVER_K 26
|
||||||
|
#define TT_TT_GM_LS_24 27
|
||||||
|
#define TT_TT_HONDA_CBR_600 28
|
||||||
|
#define TT_TT_2JZ_1_12 29
|
||||||
|
#define TT_TT_CHRYSLER_NGC_36_2_2 30
|
||||||
|
#define TT_TT_3_1_CAM 31
|
||||||
|
#define TT_TT_MIATA_VVT 33
|
||||||
|
#define TT_TT_SUBARU_7_6 36
|
||||||
|
#define TT_TT_JEEP_18_2_2_2 37
|
||||||
|
#define TT_TT_JEEP_4_CYL 40
|
||||||
|
#define TT_TT_FORD_ST170 42
|
||||||
|
#define TT_TT_RENIX_44_2_2 44
|
||||||
|
#define TT_TT_RENIX_66_2_2_2 45
|
||||||
|
#define TT_TT_HONDA_K_12_1 46
|
||||||
|
#define TT_TT_VVT_BOSCH_QUICK_START 47
|
||||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||||
|
#define TT_TT_SUBARU_SVX 49
|
||||||
|
#define TT_TT_1_16 50
|
||||||
|
|
||||||
#define ET_DODGE_NEON_1995 2
|
#define ET_DODGE_NEON_1995 2
|
||||||
#define ET_FORD_ASPIRE 3
|
#define ET_FORD_ASPIRE 3
|
||||||
|
@ -977,7 +1004,7 @@ custom maf_sensor_type_e 4 bits, S32, @OFFSET@, [0:1], @@maf_sensor_type_e_enum@
|
||||||
|
|
||||||
bit unusedHereWeHave
|
bit unusedHereWeHave
|
||||||
bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling.
|
bit fuelClosedLoopCorrectionEnabled;+Enables lambda sensor closed loop feedback for fuelling.
|
||||||
bit isVerboseIAC;+Print details into rusEfi console
|
bit isVerboseIAC;+Print details into rusEfi console\nenable verbose_idle
|
||||||
bit isVerboseETB;+Prints ETB details to rusEFI console
|
bit isVerboseETB;+Prints ETB details to rusEFI console
|
||||||
bit useConstantDwellDuringCranking;+If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode.
|
bit useConstantDwellDuringCranking;+If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode.
|
||||||
bit isEngineChartEnabled;+This options enables data for 'engine sniffer' tab in console, which comes at some CPU price
|
bit isEngineChartEnabled;+This options enables data for 'engine sniffer' tab in console, which comes at some CPU price
|
||||||
|
|
Binary file not shown.
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.all.3115617215"
|
signature = "rusEFI 2020.12.04.all.768848914"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.all.3115617215" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.all.768848914" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:35 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.frankenso_na6.801389124"
|
signature = "rusEFI 2020.12.04.frankenso_na6.3148023273"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.frankenso_na6.801389124" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.frankenso_na6.3148023273" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:41 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:34 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4652,13 +4669,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.hellen_cypress.1883581820"
|
signature = "rusEFI 2020.12.04.hellen_cypress.3827438289"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.hellen_cypress.1883581820" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.hellen_cypress.3827438289" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 29 03:50:57 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:43 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.kin.559486854"
|
signature = "rusEFI 2020.12.04.kin.3040749611"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.kin.559486854" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.kin.3040749611" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; 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 29 03:50:56 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Fri Dec 04 16:38:41 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4661,13 +4678,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.mre_f4.2925811142"
|
signature = "rusEFI 2020.12.04.mre_f4.973302379"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.mre_f4.2925811142" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.mre_f4.973302379" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:39 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:32 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.mre_f7.2925811142"
|
signature = "rusEFI 2020.12.04.mre_f7.973302379"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.mre_f7.2925811142" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.mre_f7.973302379" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:37 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:31 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.prometheus_405.4218195438"
|
signature = "rusEFI 2020.12.04.prometheus_405.1863037507"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.prometheus_405.4218195438" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.prometheus_405.1863037507" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:44 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:37 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.prometheus_469.4218195438"
|
signature = "rusEFI 2020.12.04.prometheus_469.1863037507"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.prometheus_469.4218195438" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.prometheus_469.1863037507" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:43 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:35 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.proteus_f4.1881063777"
|
signature = "rusEFI 2020.12.04.proteus_f4.3833200332"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.proteus_f4.1881063777" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.proteus_f4.3833200332" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:54 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:40 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
[MegaTune]
|
[MegaTune]
|
||||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||||
signature = "rusEFI 2020.11.29.proteus_f7.1881063777"
|
signature = "rusEFI 2020.12.04.proteus_f7.3833200332"
|
||||||
|
|
||||||
[TunerStudio]
|
[TunerStudio]
|
||||||
queryCommand = "S"
|
queryCommand = "S"
|
||||||
versionInfo = "V" ; firmwave version for title bar.
|
versionInfo = "V" ; firmwave version for title bar.
|
||||||
signature = "rusEFI 2020.11.29.proteus_f7.1881063777" ; signature is expected to be 7 or more characters.
|
signature = "rusEFI 2020.12.04.proteus_f7.3833200332" ; signature is expected to be 7 or more characters.
|
||||||
|
|
||||||
[Constants]
|
[Constants]
|
||||||
; new packet serial format with CRC
|
; new packet serial format with CRC
|
||||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
||||||
|
|
||||||
; see PAGE_0_SIZE in C source code
|
; see PAGE_0_SIZE in C source code
|
||||||
; CONFIG_DEFINITION_START
|
; CONFIG_DEFINITION_START
|
||||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 29 03:50:48 UTC 2020
|
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:38 UTC 2020
|
||||||
|
|
||||||
pageSize = 20000
|
pageSize = 20000
|
||||||
page = 1
|
page = 1
|
||||||
|
@ -1357,7 +1357,7 @@ page = 1
|
||||||
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
engineCode = "For example, LS1 or NB2\nREQUIRED for rusEFI Online"
|
||||||
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
vehicleName = "For example, Hunchback or Orange Miata\nVehicle name has to be unique between your vehicles.\nREQUIRED for rusEFI Online"
|
||||||
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
fuelClosedLoopCorrectionEnabled = "Enables lambda sensor closed loop feedback for fuelling."
|
||||||
isVerboseIAC = "Print details into rusEfi console"
|
isVerboseIAC = "Print details into rusEfi console\nenable verbose_idle"
|
||||||
isVerboseETB = "Prints ETB details to rusEFI console"
|
isVerboseETB = "Prints ETB details to rusEFI console"
|
||||||
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
useConstantDwellDuringCranking = "If set to true, will use the specified duration for cranking dwell. If set to false, will use the specified dwell angle. Unless you have a really good reason to, leave this set to true to use duration mode."
|
||||||
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
isEngineChartEnabled = "This options enables data for 'engine sniffer' tab in console, which comes at some CPU price"
|
||||||
|
@ -1464,6 +1464,8 @@ page = 1
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -1542,12 +1544,17 @@ page = 1
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
|
||||||
; see TS_OUTPUT_SIZE in console source code
|
; see TS_OUTPUT_SIZE in console source code
|
||||||
ochBlockSize = 288
|
ochBlockSize = 340
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
|
@ -1763,12 +1770,13 @@ page = 1
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, "Time", float, "%.3f"
|
entry = time, "Time", float, "%.3f"
|
||||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -80,6 +80,8 @@ enable2ndByteCanID = false
|
||||||
; CONFIG_DEFINITION_END
|
; CONFIG_DEFINITION_END
|
||||||
idleRpmPid_offset = "Constant base value"
|
idleRpmPid_offset = "Constant base value"
|
||||||
|
|
||||||
|
; 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
|
||||||
|
|
||||||
[Tuning]
|
[Tuning]
|
||||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||||
|
@ -158,6 +160,11 @@ enable2ndByteCanID = false
|
||||||
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
filter = minTps, "Minimum TPS", TPSValue, < , 1, , true
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; in order to add new TunerStudio gauge you need to chagne two places
|
||||||
|
; 1) add a line here in '[OutputChannels]'
|
||||||
|
; 2) in rusEFI firmware make a change to tunerstudio_outputs.h
|
||||||
|
;
|
||||||
[OutputChannels]
|
[OutputChannels]
|
||||||
|
|
||||||
ochGetCommand = "O%2o%2c"
|
ochGetCommand = "O%2o%2c"
|
||||||
|
@ -379,12 +386,13 @@ enable2ndByteCanID = false
|
||||||
highFuelPressure = scalar, S16, 278, "bar", {1/@@PACK_MULT_HIGH_PRESSURE@@}, 0
|
highFuelPressure = scalar, S16, 278, "bar", {1/@@PACK_MULT_HIGH_PRESSURE@@}, 0
|
||||||
targetLambda = scalar, U16, 280, "",{1/@@PACK_MULT_LAMBDA@@}, 0.0
|
targetLambda = scalar, U16, 280, "",{1/@@PACK_MULT_LAMBDA@@}, 0.0
|
||||||
AFRValue = scalar, U16, 282, "AFR",{1/@@PACK_MULT_AFR@@}, 0.0
|
AFRValue = scalar, U16, 282, "AFR",{1/@@PACK_MULT_AFR@@}, 0.0
|
||||||
|
VssAcceleration = scalar, S16, 284, "m/s2", {1/@@PACK_MULT_MS@@}, 0.0
|
||||||
|
|
||||||
;
|
;
|
||||||
; see TunerStudioOutputChannels struct
|
; see TunerStudioOutputChannels struct
|
||||||
;
|
;
|
||||||
|
|
||||||
; todo: generate this section programatically
|
; todo: generate this section programmatically
|
||||||
LM_SPEED_DENSITY = {3},
|
LM_SPEED_DENSITY = {3},
|
||||||
LM_REAL_MAF = {4}
|
LM_REAL_MAF = {4}
|
||||||
|
|
||||||
|
@ -1049,6 +1057,9 @@ gaugeCategory = Knock
|
||||||
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock7Gauge = knock7, "Knock Cyl 7", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
knock8Gauge = knock8, "Knock Cyl 8", "dBv", -60, 10, -60, -60, 10, 10, 0, 0
|
||||||
|
|
||||||
|
gaugeCategory = DynoView
|
||||||
|
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||||
|
|
||||||
[WueAnalyze]
|
[WueAnalyze]
|
||||||
|
|
||||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||||
|
@ -1148,6 +1159,10 @@ gaugeCategory = Knock
|
||||||
showPanel = spi, spiFunction
|
showPanel = spi, spiFunction
|
||||||
showPanel = con, connection
|
showPanel = con, connection
|
||||||
|
|
||||||
|
;
|
||||||
|
; this section defines how we log output channels
|
||||||
|
; see [OutputChannels]
|
||||||
|
;
|
||||||
[Datalog]
|
[Datalog]
|
||||||
; Channel Label Type Format
|
; Channel Label Type Format
|
||||||
entry = time, @@GAUGE_NAME_TIME@@, float, "%.3f"
|
entry = time, @@GAUGE_NAME_TIME@@, float, "%.3f"
|
||||||
|
@ -1277,6 +1292,8 @@ gaugeCategory = Knock
|
||||||
entry = knock7, "Knock 7", int, "%d"
|
entry = knock7, "Knock 7", int, "%d"
|
||||||
entry = knock8, "Knock 8", int, "%d"
|
entry = knock8, "Knock 8", int, "%d"
|
||||||
|
|
||||||
|
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||||
|
|
||||||
; tpsADC = U16, "ADC",
|
; tpsADC = U16, "ADC",
|
||||||
; alignmet = U16, "al",
|
; alignmet = U16, "al",
|
||||||
; atmPres = F32, "pres",
|
; atmPres = F32, "pres",
|
||||||
|
@ -3268,13 +3285,14 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
||||||
field = "Activation Mode", launchActivationMode
|
field = "Activation Mode", launchActivationMode
|
||||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
|
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||||
field = ""
|
field = ""
|
||||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||||
|
|
|
@ -20,8 +20,13 @@
|
||||||
#define MS2US(MS_TIME) ((MS_TIME) * 1000)
|
#define MS2US(MS_TIME) ((MS_TIME) * 1000)
|
||||||
|
|
||||||
// microseconds to ticks
|
// microseconds to ticks
|
||||||
|
// since only about 20 seconds of ticks fit in 32 bits this macro is casting parameter into 64 bits 'efitime_t' type
|
||||||
|
// please note that int64 <-> float is a heavy operation thus we have 'USF2NT' below
|
||||||
#define US2NT(us) (((efitime_t)(us)) * US_TO_NT_MULTIPLIER)
|
#define US2NT(us) (((efitime_t)(us)) * US_TO_NT_MULTIPLIER)
|
||||||
|
|
||||||
|
// microseconds to ticks, but floating point
|
||||||
|
// If converting a floating point time period, use this macro to avoid
|
||||||
|
// the expensive conversions from int64 <-> float
|
||||||
#define USF2NT(us_float) ((us_float) * US_TO_NT_MULTIPLIER)
|
#define USF2NT(us_float) ((us_float) * US_TO_NT_MULTIPLIER)
|
||||||
|
|
||||||
// And back
|
// And back
|
||||||
|
@ -29,6 +34,7 @@
|
||||||
|
|
||||||
// milliseconds to ticks
|
// milliseconds to ticks
|
||||||
#define MS2NT(msTime) US2NT(MS2US(msTime))
|
#define MS2NT(msTime) US2NT(MS2US(msTime))
|
||||||
|
// See USF2NT above for when to use MSF2NT
|
||||||
#define MSF2NT(msTimeFloat) USF2NT(MS2US(msTimeFloat))
|
#define MSF2NT(msTimeFloat) USF2NT(MS2US(msTimeFloat))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
#include "timer.h"
|
||||||
|
#include "global.h"
|
||||||
|
|
||||||
|
void Timer::reset() {
|
||||||
|
m_lastReset = getTimeNowNt();
|
||||||
|
}
|
||||||
|
|
||||||
|
void Timer::reset(efitick_t nowNt) {
|
||||||
|
m_lastReset = nowNt;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Timer::hasElapsedSec(float seconds) const {
|
||||||
|
return hasElapsedMs(seconds * 1e3);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Timer::hasElapsedMs(float milliseconds) const {
|
||||||
|
return hasElapsedUs(milliseconds * 1e3);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Timer::hasElapsedUs(float microseconds) const {
|
||||||
|
auto delta = getTimeNowNt() - m_lastReset;
|
||||||
|
|
||||||
|
// If larger than 32 bits, timer has certainly expired
|
||||||
|
if (delta >= UINT32_MAX) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto delta32 = (uint32_t)delta;
|
||||||
|
|
||||||
|
return delta32 > USF2NT(microseconds);
|
||||||
|
}
|
||||||
|
|
||||||
|
float Timer::getElapsedSeconds() const {
|
||||||
|
auto delta = getTimeNowNt() - m_lastReset;
|
||||||
|
|
||||||
|
if (delta > UINT32_MAX - 1) {
|
||||||
|
delta = UINT32_MAX - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto delta32 = (uint32_t)delta;
|
||||||
|
|
||||||
|
return NT2US(delta32);
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "efitime.h"
|
||||||
|
|
||||||
|
class Timer {
|
||||||
|
public:
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
// Reset the timer to a known timestamp (don't take a timestamp internally)
|
||||||
|
void reset(efitick_t nowNt);
|
||||||
|
|
||||||
|
bool hasElapsedSec(float seconds) const;
|
||||||
|
bool hasElapsedMs(float ms) const;
|
||||||
|
bool hasElapsedUs(float us) const;
|
||||||
|
|
||||||
|
// Return the elapsed time since the last reset.
|
||||||
|
// If the elapsed time is longer than 2^32 timer tick counts,
|
||||||
|
// then a time period representing 2^32 counts will be returned.
|
||||||
|
float getElapsedSeconds() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
efitick_t m_lastReset = INT64_MIN;
|
||||||
|
};
|
|
@ -17,6 +17,7 @@ UTILSRC_CPP = \
|
||||||
$(PROJECT_DIR)/util/loggingcentral.cpp \
|
$(PROJECT_DIR)/util/loggingcentral.cpp \
|
||||||
$(PROJECT_DIR)/util/cli_registry.cpp \
|
$(PROJECT_DIR)/util/cli_registry.cpp \
|
||||||
$(PROJECT_DIR)/util/efilib.cpp \
|
$(PROJECT_DIR)/util/efilib.cpp \
|
||||||
|
$(PROJECT_DIR)/util/timer.cpp \
|
||||||
|
|
||||||
|
|
||||||
UTIL_INC = \
|
UTIL_INC = \
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<configuration default="false" name="TriggerImage" type="Application" factoryName="Application" nameIsGenerated="true">
|
<configuration default="false" name="TriggerImage" type="Application" factoryName="Application" nameIsGenerated="true">
|
||||||
<option name="MAIN_CLASS_NAME" value="com.rusefi.TriggerImage" />
|
<option name="MAIN_CLASS_NAME" value="com.rusefi.TriggerImage" />
|
||||||
<module name="ui" />
|
<module name="ui" />
|
||||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
<option name="PROGRAM_PARAMETERS" value="../unit_tests" />
|
||||||
<extension name="coverage">
|
<extension name="coverage">
|
||||||
<pattern>
|
<pattern>
|
||||||
<option name="PATTERN" value="com.rusefi.ui.console.*" />
|
<option name="PATTERN" value="com.rusefi.ui.console.*" />
|
||||||
|
|
|
@ -149,7 +149,6 @@ public class IoUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void realHardwareConnect(LinkManager linkManager, String port) {
|
static void realHardwareConnect(LinkManager linkManager, String port) {
|
||||||
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
|
||||||
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_OUTPIN, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_OUTPIN, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
||||||
linkManager.getEngineState().registerStringValueAction(AverageAnglesUtil.KEY, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
linkManager.getEngineState().registerStringValueAction(AverageAnglesUtil.KEY, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@ package com.rusefi;
|
||||||
|
|
||||||
import com.devexperts.logging.Logging;
|
import com.devexperts.logging.Logging;
|
||||||
import com.rusefi.autodetect.PortDetector;
|
import com.rusefi.autodetect.PortDetector;
|
||||||
|
import com.rusefi.config.generated.Fields;
|
||||||
|
import com.rusefi.core.EngineState;
|
||||||
import com.rusefi.io.LinkManager;
|
import com.rusefi.io.LinkManager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
@ -15,9 +17,9 @@ import static com.rusefi.Timeouts.SECOND;
|
||||||
* A few jumper wires are used to test some subsystems as realistically as possible:
|
* A few jumper wires are used to test some subsystems as realistically as possible:
|
||||||
* PD1 <=> PC6
|
* PD1 <=> PC6
|
||||||
* PD2 <=> PA5
|
* PD2 <=> PA5
|
||||||
*
|
* <p>
|
||||||
*
|
* <p>
|
||||||
*
|
* <p>
|
||||||
* this test connects to real hardware via serial port
|
* this test connects to real hardware via serial port
|
||||||
* Andrey Belomutskiy, (c) 2013-2020
|
* Andrey Belomutskiy, (c) 2013-2020
|
||||||
* 2/22/2015
|
* 2/22/2015
|
||||||
|
@ -25,6 +27,7 @@ import static com.rusefi.Timeouts.SECOND;
|
||||||
public class RealHwTest {
|
public class RealHwTest {
|
||||||
private static final Logging log = getLogging(RealHwTest.class);
|
private static final Logging log = getLogging(RealHwTest.class);
|
||||||
private static final int STARTUP_SLEEP = 20;
|
private static final int STARTUP_SLEEP = 20;
|
||||||
|
private volatile static String firmwareVersion;
|
||||||
|
|
||||||
public static void main(String[] args) throws InterruptedException {
|
public static void main(String[] args) throws InterruptedException {
|
||||||
log.info("Sleeping " + STARTUP_SLEEP + " seconds to give OS time to connect VCP driver");
|
log.info("Sleeping " + STARTUP_SLEEP + " seconds to give OS time to connect VCP driver");
|
||||||
|
@ -92,9 +95,18 @@ public class RealHwTest {
|
||||||
|
|
||||||
private static void runRealHardwareTest(String port) {
|
private static void runRealHardwareTest(String port) {
|
||||||
LinkManager linkManager = new LinkManager().setCompositeLogicEnabled(false);
|
LinkManager linkManager = new LinkManager().setCompositeLogicEnabled(false);
|
||||||
|
linkManager.getEngineState().registerStringValueAction(Fields.PROTOCOL_VERSION_TAG, new EngineState.ValueCallback<String>() {
|
||||||
|
@Override
|
||||||
|
public void onUpdate(String firmwareVersion) {
|
||||||
|
RealHwTest.firmwareVersion = firmwareVersion;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
IoUtil.realHardwareConnect(linkManager, port);
|
IoUtil.realHardwareConnect(linkManager, port);
|
||||||
// first run tests which require real hardware
|
// first run tests which require real hardware
|
||||||
new HardwareTests(linkManager.getCommandQueue()).runRealHardwareTests();
|
new HardwareTests(linkManager.getCommandQueue()).runRealHardwareTests();
|
||||||
|
if (firmwareVersion == null)
|
||||||
|
throw new IllegalStateException("firmwareVersion has not arrived");
|
||||||
|
|
||||||
// now run common part of the test which should be same on real hardware and simulator
|
// now run common part of the test which should be same on real hardware and simulator
|
||||||
new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody();
|
new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package com.rusefi.config.generated;
|
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 29 03:21:46 UTC 2020
|
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Fri Dec 04 16:38:29 UTC 2020
|
||||||
|
|
||||||
// by class com.rusefi.output.FileJavaFieldsConsumer
|
// by class com.rusefi.output.FileJavaFieldsConsumer
|
||||||
import com.rusefi.config.*;
|
import com.rusefi.config.*;
|
||||||
|
@ -1167,7 +1167,7 @@ public class Fields {
|
||||||
public static final int servoOutputPins8_offset = 3147;
|
public static final int servoOutputPins8_offset = 3147;
|
||||||
public static final int showHumanReadableWarning_offset = 976;
|
public static final int showHumanReadableWarning_offset = 976;
|
||||||
public static final int showSdCardWarning_offset = 76;
|
public static final int showSdCardWarning_offset = 76;
|
||||||
public static final int SIGNATURE_HASH = 104376296;
|
public static final int SIGNATURE_HASH = 768848914;
|
||||||
public static final int silentTriggerError_offset = 1464;
|
public static final int silentTriggerError_offset = 1464;
|
||||||
public static final int slowAdcAlpha_offset = 2088;
|
public static final int slowAdcAlpha_offset = 2088;
|
||||||
public static final int sparkDwellRpmBins_offset = 332;
|
public static final int sparkDwellRpmBins_offset = 332;
|
||||||
|
@ -1423,7 +1423,7 @@ public class Fields {
|
||||||
public static final char TS_IO_TEST_COMMAND = 'Z';
|
public static final char TS_IO_TEST_COMMAND = 'Z';
|
||||||
public static final char TS_ONLINE_PROTOCOL = 'z';
|
public static final char TS_ONLINE_PROTOCOL = 'z';
|
||||||
public static final char TS_OUTPUT_COMMAND = 'O';
|
public static final char TS_OUTPUT_COMMAND = 'O';
|
||||||
public static final int TS_OUTPUT_SIZE = 288;
|
public static final int TS_OUTPUT_SIZE = 340;
|
||||||
public static final char TS_PAGE_COMMAND = 'P';
|
public static final char TS_PAGE_COMMAND = 'P';
|
||||||
public static final char TS_PERF_TRACE_BEGIN = '_';
|
public static final char TS_PERF_TRACE_BEGIN = '_';
|
||||||
public static final char TS_PERF_TRACE_GET_BUFFER = 'b';
|
public static final char TS_PERF_TRACE_GET_BUFFER = 'b';
|
||||||
|
@ -1447,14 +1447,44 @@ public class Fields {
|
||||||
public static final char TS_SD_R_COMMAND = 'r';
|
public static final char TS_SD_R_COMMAND = 'r';
|
||||||
public static final char TS_SD_W_COMMAND = 'w';
|
public static final char TS_SD_W_COMMAND = 'w';
|
||||||
public static final char TS_SET_LOGGER_SWITCH = 'l';
|
public static final char TS_SET_LOGGER_SWITCH = 'l';
|
||||||
public static final String TS_SIGNATURE = "rusEFI 2020.11.29.all.104376296";
|
public static final String TS_SIGNATURE = "rusEFI 2020.12.04.all.768848914";
|
||||||
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
public static final char TS_SINGLE_WRITE_COMMAND = 'W';
|
||||||
|
public static final int TT_TT_1_16 = 50;
|
||||||
|
public static final int TT_TT_2JZ_1_12 = 29;
|
||||||
|
public static final int TT_TT_2JZ_3_34 = 25;
|
||||||
|
public static final int TT_TT_36_2_2_2 = 23;
|
||||||
|
public static final int TT_TT_3_1_CAM = 31;
|
||||||
public static final int TT_TT_60_2_VW = 20;
|
public static final int TT_TT_60_2_VW = 20;
|
||||||
|
public static final int TT_TT_CHRYSLER_NGC_36_2_2 = 30;
|
||||||
|
public static final int TT_TT_DAIHATSU = 6;
|
||||||
|
public static final int TT_TT_FORD_ASPIRE = 1;
|
||||||
|
public static final int TT_TT_FORD_ST170 = 42;
|
||||||
|
public static final int TT_TT_GM_7X = 5;
|
||||||
|
public static final int TT_TT_GM_LS_24 = 27;
|
||||||
|
public static final int TT_TT_HONDA_1_24 = 21;
|
||||||
|
public static final int TT_TT_HONDA_1_4_24 = 13;
|
||||||
|
public static final int TT_TT_HONDA_4_24_1 = 10;
|
||||||
|
public static final int TT_TT_HONDA_CBR_600 = 28;
|
||||||
|
public static final int TT_TT_HONDA_K_12_1 = 46;
|
||||||
|
public static final int TT_TT_JEEP_18_2_2_2 = 37;
|
||||||
|
public static final int TT_TT_JEEP_4_CYL = 40;
|
||||||
|
public static final int TT_TT_MAZDA_DOHC_1_4 = 15;
|
||||||
|
public static final int TT_TT_MAZDA_MIATA_NA = 3;
|
||||||
|
public static final int TT_TT_MAZDA_MIATA_NB1 = 4;
|
||||||
|
public static final int TT_TT_MAZDA_SOHC_4 = 7;
|
||||||
|
public static final int TT_TT_MIATA_VVT = 33;
|
||||||
public static final int TT_TT_ONE = 18;
|
public static final int TT_TT_ONE = 18;
|
||||||
|
public static final int TT_TT_RENIX_44_2_2 = 44;
|
||||||
|
public static final int TT_TT_RENIX_66_2_2_2 = 45;
|
||||||
|
public static final int TT_TT_ROVER_K = 26;
|
||||||
|
public static final int TT_TT_SUBARU_7_6 = 36;
|
||||||
|
public static final int TT_TT_SUBARU_SVX = 49;
|
||||||
public static final int TT_TT_TOOTHED_WHEEL = 0;
|
public static final int TT_TT_TOOTHED_WHEEL = 0;
|
||||||
public static final int TT_TT_TOOTHED_WHEEL_36_1 = 9;
|
public static final int TT_TT_TOOTHED_WHEEL_36_1 = 9;
|
||||||
public static final int TT_TT_TOOTHED_WHEEL_36_2 = 48;
|
public static final int TT_TT_TOOTHED_WHEEL_36_2 = 48;
|
||||||
public static final int TT_TT_TOOTHED_WHEEL_60_2 = 8;
|
public static final int TT_TT_TOOTHED_WHEEL_60_2 = 8;
|
||||||
|
public static final int TT_TT_VVT_BOSCH_QUICK_START = 47;
|
||||||
|
public static final int TT_TT_VVT_JZ = 17;
|
||||||
public static final int tunerStudioSerialSpeed_offset = 728;
|
public static final int tunerStudioSerialSpeed_offset = 728;
|
||||||
public static final int twoWireBatchIgnition_offset = 1476;
|
public static final int twoWireBatchIgnition_offset = 1476;
|
||||||
public static final int twoWireBatchInjection_offset = 1476;
|
public static final int twoWireBatchInjection_offset = 1476;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<roms>
|
<roms>
|
||||||
|
|
||||||
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Sun Nov 29 03:21:47 UTC 2020 -->
|
<!-- was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh Fri Dec 04 16:38:30 UTC 2020 -->
|
||||||
|
|
||||||
<rom>
|
<rom>
|
||||||
<romid>
|
<romid>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.rusefi;
|
package com.rusefi;
|
||||||
|
|
||||||
|
import com.rusefi.config.generated.Fields;
|
||||||
import com.rusefi.trigger.WaveState;
|
import com.rusefi.trigger.WaveState;
|
||||||
import com.rusefi.ui.engine.UpDownImage;
|
import com.rusefi.ui.engine.UpDownImage;
|
||||||
import com.rusefi.ui.util.FrameHelper;
|
import com.rusefi.ui.util.FrameHelper;
|
||||||
|
@ -9,15 +10,18 @@ import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.io.*;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This utility produces images of trigger signals supported by rusEfi
|
* This utility produces images of trigger signals supported by rusEFI
|
||||||
*
|
* <p>
|
||||||
* 06/23/15
|
* 06/23/15
|
||||||
* Andrey Belomutskiy, (c) 2013-2020
|
* Andrey Belomutskiy, (c) 2013-2020
|
||||||
*/
|
*/
|
||||||
|
@ -27,12 +31,63 @@ public class TriggerImage {
|
||||||
private static final String INPUT_FILE_NAME = "triggers.txt";
|
private static final String INPUT_FILE_NAME = "triggers.txt";
|
||||||
private static final String TOP_MESSAGE = StartupFrame.LINK_TEXT;
|
private static final String TOP_MESSAGE = StartupFrame.LINK_TEXT;
|
||||||
private static final String DEFAULT_WORK_FOLDER = ".." + File.separator + "unit_tests";
|
private static final String DEFAULT_WORK_FOLDER = ".." + File.separator + "unit_tests";
|
||||||
|
|
||||||
|
private static final int WHEEL_BORDER = 20;
|
||||||
|
private static final int WHEEL_DIAMETER = 500;
|
||||||
|
private static final int SMALL_DIAMETER = 420;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* number of extra frames
|
* number of extra frames
|
||||||
*/
|
*/
|
||||||
public static int EXTRA_COUNT = 1;
|
public static int EXTRA_COUNT = 1;
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException, InvocationTargetException, InterruptedException {
|
private static String getTriggerName(TriggerWheelInfo triggerName) {
|
||||||
|
switch (triggerName.id) {
|
||||||
|
case Fields.TT_TT_FORD_ASPIRE:
|
||||||
|
return "Ford Aspire";
|
||||||
|
case Fields.TT_TT_VVT_BOSCH_QUICK_START:
|
||||||
|
return "Bosch Quick Start";
|
||||||
|
case Fields.TT_TT_MAZDA_MIATA_NA:
|
||||||
|
return "Miata NA";
|
||||||
|
case Fields.TT_TT_MAZDA_MIATA_NB1:
|
||||||
|
return "Miata NB";
|
||||||
|
case Fields.TT_TT_SUBARU_SVX:
|
||||||
|
return "Subaru SVX";
|
||||||
|
case Fields.TT_TT_HONDA_K_12_1:
|
||||||
|
return "Honda K 1/12";
|
||||||
|
case Fields.TT_TT_HONDA_1_24:
|
||||||
|
return "Honda 1+24";
|
||||||
|
case Fields.TT_TT_SUBARU_7_6:
|
||||||
|
return "Subaru 7/6";
|
||||||
|
case Fields.TT_TT_GM_LS_24:
|
||||||
|
return "GM 24x";
|
||||||
|
case Fields.TT_TT_GM_7X:
|
||||||
|
return "GM 7x";
|
||||||
|
case Fields.TT_TT_CHRYSLER_NGC_36_2_2:
|
||||||
|
return "Chrysler NGC 36/2/2";
|
||||||
|
case Fields.TT_TT_ONE:
|
||||||
|
return "Single Tooth";
|
||||||
|
case Fields.TT_TT_2JZ_1_12:
|
||||||
|
return "2JZ 1/12";
|
||||||
|
case Fields.TT_TT_JEEP_4_CYL:
|
||||||
|
return "Jeep 4 cylinder";
|
||||||
|
case Fields.TT_TT_JEEP_18_2_2_2:
|
||||||
|
return "18/2/2/2";
|
||||||
|
case Fields.TT_TT_RENIX_44_2_2:
|
||||||
|
return "44/2/2";
|
||||||
|
case Fields.TT_TT_RENIX_66_2_2_2:
|
||||||
|
return "66/2/2/2";
|
||||||
|
case Fields.TT_TT_TOOTHED_WHEEL_36_1:
|
||||||
|
return "36/1";
|
||||||
|
case Fields.TT_TT_TOOTHED_WHEEL_36_2:
|
||||||
|
return "36/2";
|
||||||
|
case Fields.TT_TT_TOOTHED_WHEEL_60_2:
|
||||||
|
return "60/2";
|
||||||
|
}
|
||||||
|
return triggerName.triggerName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) throws InvocationTargetException, InterruptedException {
|
||||||
final String workingFolder;
|
final String workingFolder;
|
||||||
if (args.length != 1) {
|
if (args.length != 1) {
|
||||||
workingFolder = DEFAULT_WORK_FOLDER;
|
workingFolder = DEFAULT_WORK_FOLDER;
|
||||||
|
@ -42,6 +97,7 @@ public class TriggerImage {
|
||||||
|
|
||||||
FrameHelper f = new FrameHelper();
|
FrameHelper f = new FrameHelper();
|
||||||
|
|
||||||
|
JPanel content = new JPanel(new BorderLayout());
|
||||||
final TriggerPanel triggerPanel = new TriggerPanel() {
|
final TriggerPanel triggerPanel = new TriggerPanel() {
|
||||||
@Override
|
@Override
|
||||||
public Dimension getPreferredSize() {
|
public Dimension getPreferredSize() {
|
||||||
|
@ -49,13 +105,18 @@ public class TriggerImage {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
f.showFrame(triggerPanel);
|
JPanel topPanel = new JPanel(new FlowLayout());
|
||||||
|
content.add(topPanel, BorderLayout.NORTH);
|
||||||
|
content.add(triggerPanel, BorderLayout.CENTER);
|
||||||
|
|
||||||
|
f.showFrame(content);
|
||||||
|
f.getFrame().setSize(900, 700);
|
||||||
|
|
||||||
SwingUtilities.invokeAndWait(new Runnable() {
|
SwingUtilities.invokeAndWait(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
generateImages(workingFolder, triggerPanel);
|
generateImages(workingFolder, triggerPanel, topPanel, content);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
throw new IllegalStateException(e);
|
throw new IllegalStateException(e);
|
||||||
}
|
}
|
||||||
|
@ -64,7 +125,7 @@ public class TriggerImage {
|
||||||
System.exit(-1);
|
System.exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void generateImages(String workingFolder, TriggerPanel trigger) throws IOException {
|
private static void generateImages(String workingFolder, TriggerPanel trigger, JPanel topPanel, JPanel content) throws IOException {
|
||||||
String fileName = workingFolder + File.separator + INPUT_FILE_NAME;
|
String fileName = workingFolder + File.separator + INPUT_FILE_NAME;
|
||||||
BufferedReader br = new BufferedReader(new FileReader(fileName));
|
BufferedReader br = new BufferedReader(new FileReader(fileName));
|
||||||
|
|
||||||
|
@ -77,27 +138,34 @@ public class TriggerImage {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (line.startsWith(TRIGGERTYPE)) {
|
if (line.startsWith(TRIGGERTYPE)) {
|
||||||
readTrigger(br, line, trigger);
|
readTrigger(br, line, trigger, topPanel, content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void readTrigger(BufferedReader reader, String line, TriggerPanel triggerPanel) throws IOException {
|
private static void readTrigger(BufferedReader reader, String line, TriggerPanel triggerPanel, JPanel topPanel, JPanel content) throws IOException {
|
||||||
String[] tokens = line.split(" ");
|
TriggerWheelInfo triggerWheelInfo = TriggerWheelInfo.readTriggerWheelInfo(line, reader);
|
||||||
String idStr = tokens[1];
|
// if (triggerWheelInfo.id != Fields.TT_TT_SUBARU_7_6)
|
||||||
String eventCountStr = tokens[2];
|
|
||||||
String triggerName = tokens[3];
|
|
||||||
System.out.println("Processing " + line + " " + idStr);
|
|
||||||
triggerPanel.tdcPosition = Double.parseDouble(tokens[4]);
|
|
||||||
int eventCount = Integer.parseInt(eventCountStr);
|
|
||||||
int id = Integer.parseInt(idStr);
|
|
||||||
|
|
||||||
// if (id != 20)
|
|
||||||
// return;
|
// return;
|
||||||
|
|
||||||
System.out.println("id=" + id + ", count=" + eventCount + ", name=" + triggerName);
|
|
||||||
|
|
||||||
List<WaveState> waves = readTrigger(reader, eventCount);
|
topPanel.removeAll();
|
||||||
|
|
||||||
|
JPanel firstWheelControl = createWheelPanel(triggerWheelInfo.getFirstWheeTriggerSignals());
|
||||||
|
|
||||||
|
topPanel.add(firstWheelControl);
|
||||||
|
topPanel.add(StartupFrame.createLogoLabel());
|
||||||
|
|
||||||
|
if (!triggerWheelInfo.waves.get(1).list.isEmpty()) {
|
||||||
|
JPanel secondWheelControl = createWheelPanel(triggerWheelInfo.getSecondWheeTriggerSignals());
|
||||||
|
topPanel.add(secondWheelControl);
|
||||||
|
}
|
||||||
|
|
||||||
|
UiUtils.trueLayout(topPanel);
|
||||||
|
UiUtils.trueLayout(content);
|
||||||
|
|
||||||
|
triggerPanel.tdcPosition = triggerWheelInfo.tdcPosition;
|
||||||
|
List<WaveState> waves = triggerWheelInfo.waves;
|
||||||
|
|
||||||
EngineReport re0 = new EngineReport(waves.get(0).list, 720, 720 * (1 + EXTRA_COUNT));
|
EngineReport re0 = new EngineReport(waves.get(0).list, 720, 720 * (1 + EXTRA_COUNT));
|
||||||
System.out.println(re0);
|
System.out.println(re0);
|
||||||
|
@ -134,20 +202,98 @@ public class TriggerImage {
|
||||||
if (isThirdVisible)
|
if (isThirdVisible)
|
||||||
triggerPanel.add(upDownImage2);
|
triggerPanel.add(upDownImage2);
|
||||||
|
|
||||||
triggerPanel.name = triggerName;
|
triggerPanel.name = getTriggerName(triggerWheelInfo);
|
||||||
triggerPanel.id = id;
|
// triggerPanel.id = "#" + triggerWheelInfo.id;
|
||||||
|
|
||||||
UiUtils.trueLayout(triggerPanel);
|
UiUtils.trueLayout(triggerPanel);
|
||||||
UiUtils.trueRepaint(triggerPanel);
|
UiUtils.trueRepaint(triggerPanel);
|
||||||
|
content.paintImmediately(content.getVisibleRect());
|
||||||
new File(OUTPUT_FOLDER).mkdir();
|
new File(OUTPUT_FOLDER).mkdir();
|
||||||
UiUtils.saveImage(OUTPUT_FOLDER + File.separator + "trigger_" + id + ".png", triggerPanel);
|
UiUtils.saveImage(OUTPUT_FOLDER + File.separator + "trigger_" + triggerWheelInfo.id + ".png", content);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private static List<WaveState> readTrigger(BufferedReader reader, int count) throws IOException {
|
private static JPanel createWheelPanel(List<TriggerSignal> wheel) {
|
||||||
|
JPanel clock = new JPanel() {
|
||||||
|
@Override
|
||||||
|
public void paint(Graphics g) {
|
||||||
|
super.paint(g);
|
||||||
|
g.setColor(Color.black);
|
||||||
|
|
||||||
|
for (int i = 0; i < wheel.size(); i++) {
|
||||||
|
TriggerSignal current = wheel.get(i);
|
||||||
|
|
||||||
|
drawRadialLine(g, current.angle);
|
||||||
|
|
||||||
|
double nextAngle = i == wheel.size() - 1 ? 360 + wheel.get(0).angle : wheel.get(i + 1).angle;
|
||||||
|
int arcDuration = (int) (nextAngle - current.angle);
|
||||||
|
if (current.state == 1) {
|
||||||
|
g.drawArc(WHEEL_BORDER, WHEEL_BORDER, WHEEL_DIAMETER, WHEEL_DIAMETER, (int) current.angle, arcDuration);
|
||||||
|
} else {
|
||||||
|
int corner = WHEEL_BORDER + (WHEEL_DIAMETER - SMALL_DIAMETER) / 2;
|
||||||
|
g.drawArc(corner, corner, SMALL_DIAMETER, SMALL_DIAMETER, (int) current.angle, arcDuration);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Dimension getPreferredSize() {
|
||||||
|
return new Dimension(WHEEL_DIAMETER + 2 * WHEEL_BORDER, WHEEL_DIAMETER + 2 * WHEEL_BORDER);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// clock.setBackground(Color.orange);
|
||||||
|
return clock;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void drawRadialLine(Graphics g, double angle) {
|
||||||
|
int center = WHEEL_BORDER + WHEEL_DIAMETER / 2;
|
||||||
|
|
||||||
|
// converting to 'drawArc' angle convention
|
||||||
|
angle = 90 + angle;
|
||||||
|
double radianAngle = Math.toRadians(angle);
|
||||||
|
|
||||||
|
int smallX = (int) (SMALL_DIAMETER / 2 * Math.sin(radianAngle));
|
||||||
|
int smallY = (int) (SMALL_DIAMETER / 2 * Math.cos(radianAngle));
|
||||||
|
int largeX = (int) (WHEEL_DIAMETER / 2 * Math.sin(radianAngle));
|
||||||
|
int largeY = (int) (WHEEL_DIAMETER / 2 * Math.cos(radianAngle));
|
||||||
|
|
||||||
|
g.drawLine(center + smallX, center + smallY, center + largeX, center + largeY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
static List<WaveState> convertSignalsToWaves(List<TriggerSignal> signals) {
|
||||||
|
/**
|
||||||
|
* todo: what does this code do? does this work?
|
||||||
|
* looks to be repeating trigger share couple of times? but not visible on images somehow?
|
||||||
|
*/
|
||||||
|
List<TriggerSignal> toShow = new ArrayList<>(signals);
|
||||||
|
for (int i = 1; i <= 2 + EXTRA_COUNT; i++) {
|
||||||
|
for (TriggerSignal s : signals)
|
||||||
|
toShow.add(new TriggerSignal(s.waveIndex, s.state, s.angle + i * 720));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<WaveState> waves = new ArrayList<>();
|
||||||
|
waves.add(new WaveState());
|
||||||
|
waves.add(new WaveState());
|
||||||
|
waves.add(new WaveState());
|
||||||
|
|
||||||
|
for (TriggerSignal s : toShow) {
|
||||||
|
WaveState.trigger_value_e signal = (s.state == 0) ? WaveState.trigger_value_e.TV_LOW : WaveState.trigger_value_e.TV_HIGH;
|
||||||
|
|
||||||
|
WaveState waveState = waves.get(s.waveIndex);
|
||||||
|
waveState.handle(signal, s.angle);
|
||||||
|
}
|
||||||
|
for (WaveState wave : waves)
|
||||||
|
wave.wrap();
|
||||||
|
|
||||||
|
return waves;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
static List<TriggerSignal> readSignals(BufferedReader reader, int count) throws IOException {
|
||||||
String line;
|
String line;
|
||||||
String[] tokens;
|
String[] tokens;
|
||||||
List<Signal> signals = new ArrayList<>();
|
List<TriggerSignal> signals = new ArrayList<>();
|
||||||
|
|
||||||
int index = 0;
|
int index = 0;
|
||||||
while (index < count) {
|
while (index < count) {
|
||||||
|
@ -157,66 +303,25 @@ public class TriggerImage {
|
||||||
tokens = line.split(" ");
|
tokens = line.split(" ");
|
||||||
if (tokens.length < 4)
|
if (tokens.length < 4)
|
||||||
throw new IllegalStateException("Unexpected [" + line + "]");
|
throw new IllegalStateException("Unexpected [" + line + "]");
|
||||||
String signalStr = tokens[2];
|
int signalIndex = Integer.parseInt(tokens[2]);
|
||||||
int signal = Integer.parseInt(signalStr);
|
int signalState = Integer.parseInt(tokens[3]);
|
||||||
String angleStr = tokens[3];
|
double angle = Double.parseDouble(tokens[4]);
|
||||||
double angle = Double.parseDouble(angleStr);
|
|
||||||
|
|
||||||
Signal s = new Signal(signal, angle);
|
TriggerSignal s = new TriggerSignal(signalIndex, signalState, angle);
|
||||||
// System.out.println(s);
|
// System.out.println(s);
|
||||||
signals.add(s);
|
signals.add(s);
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
|
return signals;
|
||||||
List<Signal> toShow = new ArrayList<>(signals);
|
|
||||||
for (int i = 1; i <= 2 + EXTRA_COUNT; i++) {
|
|
||||||
for (Signal s : signals)
|
|
||||||
toShow.add(new Signal(s.signal, s.angle + i * 720));
|
|
||||||
}
|
|
||||||
|
|
||||||
List<WaveState> waves = new ArrayList<>();
|
|
||||||
waves.add(new WaveState());
|
|
||||||
waves.add(new WaveState());
|
|
||||||
waves.add(new WaveState());
|
|
||||||
|
|
||||||
for (Signal s : toShow) {
|
|
||||||
int waveIndex = s.signal / 1000;
|
|
||||||
WaveState.trigger_value_e signal = (s.signal % 1000 == 0) ? WaveState.trigger_value_e.TV_LOW : WaveState.trigger_value_e.TV_HIGH;
|
|
||||||
|
|
||||||
WaveState waveState = waves.get(waveIndex);
|
|
||||||
waveState.handle(signal, s.angle);
|
|
||||||
}
|
|
||||||
for (WaveState wave : waves)
|
|
||||||
wave.wrap();
|
|
||||||
|
|
||||||
return waves;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int angleToTime(double prevUp) {
|
public static int angleToTime(double prevUp) {
|
||||||
return (int) (prevUp);
|
return (int) (prevUp);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class Signal {
|
|
||||||
private final int signal;
|
|
||||||
private final double angle;
|
|
||||||
|
|
||||||
public Signal(int signal, double angle) {
|
|
||||||
this.signal = signal;
|
|
||||||
this.angle = angle;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Signal{" +
|
|
||||||
"signal=" + signal +
|
|
||||||
", angle=" + angle +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class TriggerPanel extends JPanel {
|
private static class TriggerPanel extends JPanel {
|
||||||
public String name = "";
|
public String name = "";
|
||||||
public int id;
|
public String id;
|
||||||
public double tdcPosition;
|
public double tdcPosition;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -239,8 +344,9 @@ public class TriggerImage {
|
||||||
|
|
||||||
int h = getHeight();
|
int h = getHeight();
|
||||||
|
|
||||||
g.drawString(name, 0, (int) (h * 0.75));
|
g.drawString(name, 50, (int) (h * 0.75));
|
||||||
g.drawString("#" + id, 0, (int) (h * 0.9));
|
if (id != null)
|
||||||
|
g.drawString(id, 0, (int) (h * 0.9));
|
||||||
|
|
||||||
g.setColor(Color.green);
|
g.setColor(Color.green);
|
||||||
int tdcFontSize = (int) (f.getSize() * 1.5);
|
int tdcFontSize = (int) (f.getSize() * 1.5);
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.rusefi;
|
||||||
|
|
||||||
|
public class TriggerSignal {
|
||||||
|
final double angle;
|
||||||
|
final int state;
|
||||||
|
final int waveIndex;
|
||||||
|
|
||||||
|
public TriggerSignal(int waveIndex, int state, double angle) {
|
||||||
|
this.waveIndex = waveIndex;
|
||||||
|
this.state = state;
|
||||||
|
this.angle = angle;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Signal{" +
|
||||||
|
"signal=" + waveIndex +
|
||||||
|
", state=" + state +
|
||||||
|
", angle=" + angle +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,97 @@
|
||||||
|
package com.rusefi;
|
||||||
|
|
||||||
|
import com.rusefi.config.generated.Fields;
|
||||||
|
import com.rusefi.trigger.WaveState;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
class TriggerWheelInfo {
|
||||||
|
final int id;
|
||||||
|
final double tdcPosition;
|
||||||
|
final String triggerName;
|
||||||
|
final List<WaveState> waves;
|
||||||
|
final List<TriggerSignal> signals;
|
||||||
|
|
||||||
|
public TriggerWheelInfo(int id, double tdcPosition, String triggerName, List<WaveState> waves, List<TriggerSignal> signals) {
|
||||||
|
this.id = id;
|
||||||
|
this.tdcPosition = tdcPosition;
|
||||||
|
this.triggerName = triggerName;
|
||||||
|
this.waves = waves;
|
||||||
|
this.signals = signals;
|
||||||
|
}
|
||||||
|
|
||||||
|
static TriggerWheelInfo readTriggerWheelInfo(String line, BufferedReader reader) throws IOException {
|
||||||
|
String[] tokens = line.split(" ");
|
||||||
|
String idStr = tokens[1];
|
||||||
|
int eventCount = Integer.parseInt(tokens[2]);
|
||||||
|
String triggerName = tokens[3];
|
||||||
|
System.out.println("Processing " + line + " " + idStr);
|
||||||
|
|
||||||
|
int id = Integer.parseInt(idStr);
|
||||||
|
double tdcPosition = Double.parseDouble(tokens[4]);
|
||||||
|
|
||||||
|
System.out.println("id=" + id + ", count=" + eventCount + ", name=" + triggerName);
|
||||||
|
|
||||||
|
List<TriggerSignal> signals = TriggerImage.readSignals(reader, eventCount);
|
||||||
|
|
||||||
|
List<WaveState> waves = TriggerImage.convertSignalsToWaves(signals);
|
||||||
|
|
||||||
|
return new TriggerWheelInfo(id, tdcPosition, triggerName, waves, signals);
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
List<TriggerSignal> getFirstWheeTriggerSignals() {
|
||||||
|
List<TriggerSignal> firstWheel = getTriggerSignals(0);
|
||||||
|
if (isFirstCrankBased()) {
|
||||||
|
return takeFirstHalf(firstWheel);
|
||||||
|
} else {
|
||||||
|
return compressAngle(firstWheel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<TriggerSignal> getTriggerSignals(int index) {
|
||||||
|
return signals.stream().filter(signal -> signal.waveIndex == index).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<TriggerSignal> takeFirstHalf(List<TriggerSignal> wheel) {
|
||||||
|
return wheel.stream().filter(triggerSignal -> triggerSignal.angle < 360).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* this is about converting 720 cycle of crank wheel shape into normal 360 circle range
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
private static List<TriggerSignal> compressAngle(List<TriggerSignal> wheel) {
|
||||||
|
return wheel.stream().map(triggerSignal -> new TriggerSignal(triggerSignal.waveIndex, triggerSignal.state, triggerSignal.angle / 2)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<TriggerSignal> getSecondWheeTriggerSignals() {
|
||||||
|
List<TriggerSignal> secondWheel = getTriggerSignals(1);
|
||||||
|
if (isSecondCamBased()) {
|
||||||
|
return compressAngle(secondWheel);
|
||||||
|
} else {
|
||||||
|
return takeFirstHalf(secondWheel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isFirstCrankBased() {
|
||||||
|
return id == Fields.TT_TT_GM_LS_24 ||
|
||||||
|
id == Fields.TT_TT_HONDA_K_12_1 ||
|
||||||
|
id == Fields.TT_TT_RENIX_44_2_2 ||
|
||||||
|
id == Fields.TT_TT_RENIX_66_2_2_2 ||
|
||||||
|
id == Fields.TT_TT_MIATA_VVT ||
|
||||||
|
id == Fields.TT_TT_GM_7X;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isSecondCamBased() {
|
||||||
|
return id == Fields.TT_TT_MAZDA_MIATA_NA ||
|
||||||
|
id == Fields.TT_TT_MAZDA_DOHC_1_4 ||
|
||||||
|
id == Fields.TT_TT_FORD_ASPIRE;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,13 @@
|
||||||
.container {
|
.container {
|
||||||
max-width: 800px; }
|
max-width: 800px;
|
||||||
|
overflow-y: hidden;
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
/* margin-top: 6rem; */
|
/* margin-top: 6rem; */
|
||||||
background-image: linear-gradient( 180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.25) 100%),url('../images/site/bg.jpg');
|
background-image: linear-gradient( 180deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.25) 100%),url('../images/site/bg.jpg');
|
||||||
background-attachment:fixed;
|
background-attachment:fixed;
|
||||||
/* background-size: cover; */
|
background-size: cover;
|
||||||
background-size: 100%;
|
background-repeat: no-repeat;
|
||||||
padding-top: 6rem;
|
padding-top: 6rem;
|
||||||
text-align: center; }
|
text-align: center; }
|
||||||
.value-prop {
|
.value-prop {
|
||||||
|
@ -94,13 +96,22 @@
|
||||||
margin-left: 2rem;
|
margin-left: 2rem;
|
||||||
}
|
}
|
||||||
.footer {
|
.footer {
|
||||||
padding-top: 1rem;
|
background-color: #222;
|
||||||
margin-bottom: 1rem;
|
padding-top: 2rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.footer a{
|
||||||
|
margin-left: 1rem;
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
/* Larger than phone */
|
/* Larger than phone */
|
||||||
@media (min-width: 550px) {
|
@media (min-width: 550px) {
|
||||||
|
.container {
|
||||||
|
overflow-y: visible;
|
||||||
|
}
|
||||||
.header {
|
.header {
|
||||||
/* margin-top: 18rem; */
|
/* margin-top: 18rem; */
|
||||||
padding-top: 18rem;}
|
padding-top: 18rem;}
|
||||||
|
@ -127,6 +138,9 @@
|
||||||
|
|
||||||
/* Larger than tablet */
|
/* Larger than tablet */
|
||||||
@media (min-width: 750px) {
|
@media (min-width: 750px) {
|
||||||
|
.container {
|
||||||
|
overflow-y: visible;
|
||||||
|
}
|
||||||
/* Navbar */
|
/* Navbar */
|
||||||
.navbar + .docs-section {
|
.navbar + .docs-section {
|
||||||
border-top-width: 0; }
|
border-top-width: 0; }
|
||||||
|
@ -143,7 +157,7 @@
|
||||||
.navbar-spacer {
|
.navbar-spacer {
|
||||||
display: none; }
|
display: none; }
|
||||||
.navbar > .container {
|
.navbar > .container {
|
||||||
width: 100%; }
|
width: 80%; }
|
||||||
.navbar-list {
|
.navbar-list {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin-bottom: 0; }
|
margin-bottom: 0; }
|
||||||
|
@ -254,7 +268,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.dl-link {
|
.dl-link {
|
||||||
margin-left: 25rem; }
|
/* margin-left: 25rem; */
|
||||||
|
float: right;}
|
||||||
|
|
||||||
td.oddrow {
|
td.oddrow {
|
||||||
background-color: rgb(230, 230, 230);
|
background-color: rgb(230, 230, 230);
|
||||||
|
|
|
@ -89,11 +89,11 @@
|
||||||
<ul class="popover-list">
|
<ul class="popover-list">
|
||||||
<li class="popover-item">
|
<li class="popover-item">
|
||||||
<a class="popover-link" href="index.html#microrusefi">microRusEFI</a>
|
<a class="popover-link" href="index.html#microrusefi">microRusEFI</a>
|
||||||
<!-- </li> -->
|
|
||||||
<!-- <li class="popover-item">
|
|
||||||
<a class="popover-link" href="index.html#proteus">Proteus</a>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="popover-item">
|
<li class="popover-item">
|
||||||
|
<a class="popover-link" href="https://github.com/mck1117/proteus/">Proteus</a>
|
||||||
|
</li>
|
||||||
|
<!--<li class="popover-item">
|
||||||
<a class="popover-link" href="#buttons">Frankenstein</a>
|
<a class="popover-link" href="#buttons">Frankenstein</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="popover-item">
|
<li class="popover-item">
|
||||||
|
@ -162,48 +162,48 @@
|
||||||
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='evenrow'>Wasted Ignition</td>
|
<td>Acceleration enrichment - wall wetting/fuel trip/tau factor</td>
|
||||||
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class='oddrow'>Direct Injection</td>
|
|
||||||
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class='evenrow'>Rotary Engines</td>
|
|
||||||
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='oddrow'>Closed Loop Fueling</td>
|
<td class='oddrow'>Closed Loop Fueling</td>
|
||||||
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='evenrow'>Electronic Throttle Body</td>
|
<td class='evenrow'>Wasted Ignition</td>
|
||||||
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='oddrow'>Knock Sensing</td>
|
<td class='oddrow'>Electronic Throttle Body</td>
|
||||||
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='evenrow'>Boost Control</td>
|
<td class='evenrow'>Boost Control</td>
|
||||||
<td class='evenrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='evenrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='oddrow'>Launch Control</td>
|
<td class='oddrow'>Launch Control</td>
|
||||||
<td class='oddrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class='oddrow'><a href='https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers'>20+ OEM triggers supported</a></td>
|
||||||
|
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class='evenrow'>Automatic Transmission Control</td>
|
||||||
|
<td class='evenrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class='oddrow'><a href='https://github.com/rusefi/rusefi/wiki/GDI-status'>Direct Injection</a></td>
|
||||||
|
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='evenrow'>Flat Shifting</td>
|
<td class='evenrow'>Flat Shifting</td>
|
||||||
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class='oddrow'>Automatic Transmission Control</td>
|
<td class='oddrow'>Rotary Engines</td>
|
||||||
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
<td class='oddrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Acceleration enrichment - wall wetting/fuel trip/tau factor</td>
|
|
||||||
<td><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -259,15 +259,7 @@
|
||||||
<h6 class="docs-header">Shop</h6>
|
<h6 class="docs-header">Shop</h6>
|
||||||
<p>The following rusEFI hardware is currently available on eBay:</p>
|
<p>The following rusEFI hardware is currently available on eBay:</p>
|
||||||
<div class="docs-example">
|
<div class="docs-example">
|
||||||
<table class="u-full-width">
|
<table class="u-half-width">
|
||||||
<!-- <thead>
|
|
||||||
<tr>
|
|
||||||
<th>picture</th>
|
|
||||||
<th>item</th>
|
|
||||||
<th>description</th>
|
|
||||||
<th>link</th>
|
|
||||||
</tr>
|
|
||||||
</thead> -->
|
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<td><img src="images/site/38p_board.jpg" width="250px" alt=""></td>
|
<td><img src="images/site/38p_board.jpg" width="250px" alt=""></td>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger" />
|
<meta http-equiv="refresh" content="0; url=https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
<br><br><br><br><br>
|
<br><br><br><br><br>
|
||||||
|
|
||||||
<a href="https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger">https://rusefi.com/wiki/index.php?title=Manual:Software:Trigger</a>
|
<a href="https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers">https://github.com/rusefi/rusefi/wiki/All-Supported-Triggers</a>
|
||||||
|
|
||||||
</center>
|
</center>
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#define EFI_LAUNCH_CONTROL TRUE
|
#define EFI_LAUNCH_CONTROL TRUE
|
||||||
|
|
||||||
|
#define EFI_DYNO_VIEW TRUE
|
||||||
|
|
||||||
#define EFI_BOOST_CONTROL TRUE
|
#define EFI_BOOST_CONTROL TRUE
|
||||||
|
|
||||||
#define EFI_IDLE_CONTROL TRUE
|
#define EFI_IDLE_CONTROL TRUE
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* @file main.cpp
|
* @file main.cpp
|
||||||
* @file First step towards unit-testing rusEfi algorithms
|
* @file Unit tests (and some integration tests to be fair) of rusEFI
|
||||||
*
|
*
|
||||||
* @author Andrey Belomutskiy, (c) 2012-2020
|
* @author Andrey Belomutskiy, (c) 2012-2020
|
||||||
*/
|
*/
|
||||||
|
@ -32,14 +32,23 @@ efitick_t getTimeNowNt(void) {
|
||||||
LoggingWithStorage sharedLogger("main");
|
LoggingWithStorage sharedLogger("main");
|
||||||
|
|
||||||
extern bool printTriggerDebug;
|
extern bool printTriggerDebug;
|
||||||
|
extern bool printTriggerTrace;
|
||||||
bool verboseMode = false;
|
bool verboseMode = false;
|
||||||
|
|
||||||
|
trigger_type_e focusOnTrigger = TT_UNUSED;
|
||||||
|
|
||||||
GTEST_API_ int main(int argc, char **argv) {
|
GTEST_API_ int main(int argc, char **argv) {
|
||||||
// printTriggerDebug = true;
|
if (focusOnTrigger != TT_UNUSED) {
|
||||||
|
printTriggerDebug = true;
|
||||||
|
printTriggerTrace = true;
|
||||||
|
}
|
||||||
|
|
||||||
// resizeMap();
|
// resizeMap();
|
||||||
printf("Success 20200510\r\n");
|
printf("Success 20201203\r\n");
|
||||||
printAllTriggers();
|
printAllTriggers();
|
||||||
|
if (focusOnTrigger != TT_UNUSED) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
testing::InitGoogleTest(&argc, argv);
|
testing::InitGoogleTest(&argc, argv);
|
||||||
// uncomment if you only want to run selected tests
|
// uncomment if you only want to run selected tests
|
||||||
|
|
|
@ -0,0 +1,114 @@
|
||||||
|
#include "engine_test_helper.h"
|
||||||
|
#include "engine_controller.h"
|
||||||
|
#include "dynoview.h"
|
||||||
|
#include "vehicle_speed.h"
|
||||||
|
|
||||||
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
|
||||||
|
void printResults(DynoView *dut) {
|
||||||
|
#ifdef DBG_TESTS
|
||||||
|
std::cerr.precision(32);
|
||||||
|
std::cerr << "Acceleration m/s " << dut->getAcceleration() << std::endl;
|
||||||
|
std::cerr << "Car force in N " << dut->getEngineForce() << std::endl;
|
||||||
|
std::cerr << "Car power in KW "<< dut->getEnginePower() << std::endl;
|
||||||
|
std::cerr << "Car HP " << dut->getEngineHP() << std::endl;
|
||||||
|
std::cerr << "Car Torque at wheel Nm " << dut->getEngineTorque() << std::endl;
|
||||||
|
#else
|
||||||
|
(void)dut;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(DynoView, VSS_T1) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
DynoView dut;
|
||||||
|
INJECT_ENGINE_REFERENCE(&dut);
|
||||||
|
|
||||||
|
// Test Speed trashold
|
||||||
|
engineConfiguration->vehicleWeight = 900;
|
||||||
|
eth.moveTimeForwardMs(50);
|
||||||
|
|
||||||
|
setMockVehicleSpeed(18.0);
|
||||||
|
dut.update(ICU);
|
||||||
|
|
||||||
|
eth.smartMoveTimeForwardSeconds(20);
|
||||||
|
setMockVehicleSpeed(126.0);
|
||||||
|
dut.update(ICU);
|
||||||
|
|
||||||
|
ASSERT_EQ(1.5, dut.getAcceleration());
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(DynoView, algo) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
DynoView dut;
|
||||||
|
INJECT_ENGINE_REFERENCE(&dut);
|
||||||
|
|
||||||
|
// Test Speed trashold
|
||||||
|
engineConfiguration->vehicleWeight = 900;
|
||||||
|
|
||||||
|
//to capture vss
|
||||||
|
setMockVehicleSpeed(35*3.6);
|
||||||
|
dut.update(ICU);
|
||||||
|
|
||||||
|
dut.setAcceleration(1.5);
|
||||||
|
dut.updateHP();
|
||||||
|
|
||||||
|
ASSERT_EQ(1.5, dut.getAcceleration());
|
||||||
|
ASSERT_EQ(1350, dut.getEngineForce());
|
||||||
|
ASSERT_EQ(47, dut.getEnginePower());
|
||||||
|
ASSERT_EQ(63, dut.getEngineHP());
|
||||||
|
|
||||||
|
printResults(&dut);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(DynoView, VSS_fast) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
DynoView dut;
|
||||||
|
INJECT_ENGINE_REFERENCE(&dut);
|
||||||
|
|
||||||
|
// Test Speed trashold
|
||||||
|
engineConfiguration->vehicleWeight = 900; //kg
|
||||||
|
engine->rpmCalculator.mockRpm = 2200;
|
||||||
|
eth.moveTimeForwardMs(50);
|
||||||
|
|
||||||
|
setMockVehicleSpeed(50.0);
|
||||||
|
dut.update(CAN);
|
||||||
|
|
||||||
|
//delay 50ms
|
||||||
|
eth.moveTimeForwardMs(50);
|
||||||
|
setMockVehicleSpeed(50.252);
|
||||||
|
dut.update(CAN);
|
||||||
|
|
||||||
|
ASSERT_EQ(1259, dut.getEngineForce());
|
||||||
|
printResults(&dut);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TEST(DynoView, VSS_Torque) {
|
||||||
|
WITH_ENGINE_TEST_HELPER(TEST_ENGINE);
|
||||||
|
|
||||||
|
DynoView dut;
|
||||||
|
INJECT_ENGINE_REFERENCE(&dut);
|
||||||
|
|
||||||
|
// Test Speed trashold
|
||||||
|
engineConfiguration->vehicleWeight = 900; //kg
|
||||||
|
engine->rpmCalculator.mockRpm = 2200;
|
||||||
|
eth.moveTimeForwardMs(50);
|
||||||
|
|
||||||
|
setMockVehicleSpeed(80.0);
|
||||||
|
dut.update(CAN);
|
||||||
|
|
||||||
|
//delay 50ms
|
||||||
|
eth.moveTimeForwardMs(50);
|
||||||
|
setMockVehicleSpeed(80.504);
|
||||||
|
dut.update(CAN);
|
||||||
|
|
||||||
|
ASSERT_EQ(242, dut.getEngineTorque());
|
||||||
|
printResults(&dut);
|
||||||
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue