Merge remote-tracking branch 'origin/master' into master
This commit is contained in:
commit
07a8e237a5
|
@ -27,7 +27,15 @@ All notable user-facing or behavior-altering changes will be documented in this
|
|||
|
||||
## 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"
|
||||
|
||||
### Breaking Changes
|
||||
|
@ -41,7 +49,7 @@ All notable user-facing or behavior-altering changes will be documented in this
|
|||
- Improved setting ECU presets/defaults from TunerStudio
|
||||
|
||||
### 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"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "rusefi_enums.h"
|
||||
#include "rusefi_hw_enums.h"
|
||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun 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
|
||||
|
||||
|
||||
|
@ -1337,6 +1337,10 @@ case TT_3_1_CAM:
|
|||
return "TT_3_1_CAM";
|
||||
case 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:
|
||||
return "TT_DODGE_NEON_1995";
|
||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||
|
@ -1353,6 +1357,8 @@ case TT_FIAT_IAW_P8:
|
|||
return "TT_FIAT_IAW_P8";
|
||||
case TT_FORD_ASPIRE:
|
||||
return "TT_FORD_ASPIRE";
|
||||
case TT_FORD_ST170:
|
||||
return "TT_FORD_ST170";
|
||||
case TT_GM_7X:
|
||||
return "TT_GM_7X";
|
||||
case TT_GM_LS_24:
|
||||
|
@ -1369,8 +1375,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
|||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||
case 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:
|
||||
return "TT_HONDA_K_12_1";
|
||||
case TT_JEEP_18_2_2_2:
|
||||
|
@ -1387,12 +1391,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
|||
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||
case TT_MAZDA_SOHC_4:
|
||||
return "TT_MAZDA_SOHC_4";
|
||||
case TT_MAZDA_Z5:
|
||||
return "TT_MAZDA_Z5";
|
||||
case TT_MIATA_VVT:
|
||||
return "TT_MIATA_VVT";
|
||||
case TT_MINI_COOPER_R50:
|
||||
return "TT_MINI_COOPER_R50";
|
||||
case TT_MITSUBISHI:
|
||||
return "TT_MITSUBISHI";
|
||||
case TT_NISSAN_SR20VE:
|
||||
|
@ -1494,6 +1494,8 @@ case VVT_BOSCH_QUICK_START:
|
|||
return "VVT_BOSCH_QUICK_START";
|
||||
case VVT_FIRST_HALF:
|
||||
return "VVT_FIRST_HALF";
|
||||
case VVT_FORD_ST170:
|
||||
return "VVT_FORD_ST170";
|
||||
case VVT_INACTIVE:
|
||||
return "VVT_INACTIVE";
|
||||
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
|
||||
// begin
|
||||
#pragma once
|
||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
|||
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||
/**
|
||||
* Print details into rusEfi console
|
||||
* enable verbose_idle
|
||||
offset 1464 bit 2 */
|
||||
bool isVerboseIAC : 1;
|
||||
/**
|
||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
|||
typedef struct persistent_config_s persistent_config_s;
|
||||
|
||||
// end
|
||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun 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_NOISE_CURVE_SIZE 8
|
||||
#define ENGINE_SNIFFER_UNIT_US 10
|
||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "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 engineCode_offset 1128
|
||||
#define engineConfiguration_offset 0
|
||||
|
@ -1212,8 +1212,8 @@
|
|||
#define showHumanReadableWarning_offset 976
|
||||
#define showSdCardWarning_offset 76
|
||||
#define SIGNATURE_BOARD hellen_cypress
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 3486056747
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3827438289
|
||||
#define silentTriggerError_offset 1464
|
||||
#define slowAdcAlpha_offset 2088
|
||||
#define sparkDwellRpmBins_offset 332
|
||||
|
@ -1410,7 +1410,7 @@
|
|||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_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_offset 524
|
||||
#define trigger_unusedBit_4_10_offset 528
|
||||
|
@ -1492,7 +1492,7 @@
|
|||
#define TS_ONLINE_PROTOCOL_char z
|
||||
#define TS_OUTPUT_COMMAND '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_char P
|
||||
#define TS_PERF_TRACE_BEGIN '_'
|
||||
|
@ -1543,16 +1543,46 @@
|
|||
#define ts_show_spi true
|
||||
#define ts_show_trigger_comparator false
|
||||
#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_char W
|
||||
#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_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_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_36_1 9
|
||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||
#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 twoWireBatchIgnition_offset 1476
|
||||
#define twoWireBatchInjection_offset 1476
|
||||
|
@ -1691,7 +1721,7 @@
|
|||
#define veTable_offset 17440
|
||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||
#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 vvtCamSensorUseRise_offset 744
|
||||
#define vvtMode_offset 2328
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "rusefi_enums.h"
|
||||
#include "rusefi_hw_enums.h"
|
||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun 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
|
||||
|
||||
|
||||
|
@ -1133,6 +1133,10 @@ case TT_3_1_CAM:
|
|||
return "TT_3_1_CAM";
|
||||
case 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:
|
||||
return "TT_DODGE_NEON_1995";
|
||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||
|
@ -1149,6 +1153,8 @@ case TT_FIAT_IAW_P8:
|
|||
return "TT_FIAT_IAW_P8";
|
||||
case TT_FORD_ASPIRE:
|
||||
return "TT_FORD_ASPIRE";
|
||||
case TT_FORD_ST170:
|
||||
return "TT_FORD_ST170";
|
||||
case TT_GM_7X:
|
||||
return "TT_GM_7X";
|
||||
case TT_GM_LS_24:
|
||||
|
@ -1165,8 +1171,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
|||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||
case 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:
|
||||
return "TT_HONDA_K_12_1";
|
||||
case TT_JEEP_18_2_2_2:
|
||||
|
@ -1183,12 +1187,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
|||
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||
case TT_MAZDA_SOHC_4:
|
||||
return "TT_MAZDA_SOHC_4";
|
||||
case TT_MAZDA_Z5:
|
||||
return "TT_MAZDA_Z5";
|
||||
case TT_MIATA_VVT:
|
||||
return "TT_MIATA_VVT";
|
||||
case TT_MINI_COOPER_R50:
|
||||
return "TT_MINI_COOPER_R50";
|
||||
case TT_MITSUBISHI:
|
||||
return "TT_MITSUBISHI";
|
||||
case TT_NISSAN_SR20VE:
|
||||
|
@ -1290,6 +1290,8 @@ case VVT_BOSCH_QUICK_START:
|
|||
return "VVT_BOSCH_QUICK_START";
|
||||
case VVT_FIRST_HALF:
|
||||
return "VVT_FIRST_HALF";
|
||||
case VVT_FORD_ST170:
|
||||
return "VVT_FORD_ST170";
|
||||
case VVT_INACTIVE:
|
||||
return "VVT_INACTIVE";
|
||||
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
|
||||
// begin
|
||||
#pragma once
|
||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
|||
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||
/**
|
||||
* Print details into rusEfi console
|
||||
* enable verbose_idle
|
||||
offset 1464 bit 2 */
|
||||
bool isVerboseIAC : 1;
|
||||
/**
|
||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
|||
typedef struct persistent_config_s persistent_config_s;
|
||||
|
||||
// end
|
||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun 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_NOISE_CURVE_SIZE 8
|
||||
#define ENGINE_SNIFFER_UNIT_US 10
|
||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "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 engineCode_offset 1128
|
||||
#define engineConfiguration_offset 0
|
||||
|
@ -1212,8 +1212,8 @@
|
|||
#define showHumanReadableWarning_offset 976
|
||||
#define showSdCardWarning_offset 76
|
||||
#define SIGNATURE_BOARD kin
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 2664774609
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3040749611
|
||||
#define silentTriggerError_offset 1464
|
||||
#define slowAdcAlpha_offset 2088
|
||||
#define sparkDwellRpmBins_offset 332
|
||||
|
@ -1410,7 +1410,7 @@
|
|||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_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_offset 524
|
||||
#define trigger_unusedBit_4_10_offset 528
|
||||
|
@ -1492,7 +1492,7 @@
|
|||
#define TS_ONLINE_PROTOCOL_char z
|
||||
#define TS_OUTPUT_COMMAND '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_char P
|
||||
#define TS_PERF_TRACE_BEGIN '_'
|
||||
|
@ -1543,16 +1543,46 @@
|
|||
#define ts_show_spi true
|
||||
#define ts_show_trigger_comparator 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_char W
|
||||
#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_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_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_36_1 9
|
||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||
#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 twoWireBatchIgnition_offset 1476
|
||||
#define twoWireBatchInjection_offset 1476
|
||||
|
@ -1691,7 +1721,7 @@
|
|||
#define veTable_offset 17440
|
||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||
#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 vvtCamSensorUseRise_offset 744
|
||||
#define vvtMode_offset 2328
|
||||
|
|
|
@ -47,7 +47,7 @@ static void setDefaultCustomMaps(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
|||
|
||||
void setHonda600(DECLARE_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;
|
||||
|
||||
// upside down wiring
|
||||
|
|
|
@ -259,7 +259,6 @@ void setMiataNA6_MAP_Frankenso(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
|||
setFrankensoConfiguration(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||
|
||||
engineConfiguration->isHip9011Enabled = false;
|
||||
CONFIG(isSdCardEnabled) = false;
|
||||
|
||||
setMiataNA6_settings(PASS_CONFIG_PARAMETER_SIGNATURE);
|
||||
|
||||
|
@ -372,6 +371,9 @@ void setMiataNA6_VAF_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
|||
#endif /* BOARD_TLE8888_COUNT */
|
||||
}
|
||||
|
||||
/**
|
||||
* set engine_type 66
|
||||
*/
|
||||
void setMiataNA6_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||
setMiataNA6_settings(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->idlePidDeactivationTpsThreshold = 90;
|
||||
|
||||
engineConfiguration->isVerboseIAC = true;
|
||||
// engineConfiguration->isVerboseIAC = true;
|
||||
|
||||
engineConfiguration->idleRpmPid.pFactor = 0.01;
|
||||
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) {
|
||||
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->specs.displacement = 1.8;
|
||||
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_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||
|
||||
/**
|
||||
* set engine_type 20
|
||||
*/
|
||||
void setMiata94_MAP_MRE(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
|
||||
#define EFI_LAUNCH_CONTROL TRUE
|
||||
|
||||
#define EFI_DYNO_VIEW TRUE
|
||||
|
||||
#define EFI_FSIO TRUE
|
||||
|
||||
#ifndef EFI_CDM_INTEGRATION
|
||||
|
|
|
@ -259,7 +259,9 @@ typedef struct {
|
|||
scaled_lambda targetLambda; // 280
|
||||
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
|
||||
TsDebugChannels* getDebugChannels() {
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
#include "cdm_ion_sense.h"
|
||||
#include "binary_logging.h"
|
||||
#include "buffered_writer.h"
|
||||
#include "dynoview.h"
|
||||
|
||||
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
|
||||
* 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
|
||||
static void printOutPin(const char *pinName, brain_pin_e hwPin) {
|
||||
|
@ -611,6 +612,10 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_
|
|||
tsOutputChannels->manifoldAirPressure = mapValue;
|
||||
}
|
||||
|
||||
#if EFI_DYNO_VIEW
|
||||
tsOutputChannels->VssAcceleration = getDynoviewAcceleration(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
#endif
|
||||
|
||||
//tsOutputChannels->knockCount = engine->knockCount;
|
||||
//tsOutputChannels->knockLevel = engine->knockVolts;
|
||||
|
||||
|
|
|
@ -250,8 +250,9 @@ size_t getMultiSparkCount(int rpm DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
|||
floatus_t multiDelay = CONFIG(multisparkSparkDuration);
|
||||
floatus_t multiDwell = CONFIG(multisparkDwell);
|
||||
|
||||
ENGINE(engineState.multispark.delay) = US2NT(multiDelay);
|
||||
ENGINE(engineState.multispark.dwell) = US2NT(multiDwell);
|
||||
// dwell times are below 10 seconds here so we use 32 bit type for performance reasons
|
||||
ENGINE(engineState.multispark.delay) = (uint32_t)USF2NT(multiDelay);
|
||||
ENGINE(engineState.multispark.dwell) = (uint32_t)USF2NT(multiDwell);
|
||||
|
||||
constexpr float usPerDegreeAt1Rpm = 60e6 / 360;
|
||||
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/accel_enrichment.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.cpp \
|
||||
$(PROJECT_DIR)/controllers/algo/engine2.cpp \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "global.h"
|
||||
#include "rusefi_enums.h"
|
||||
#include "rusefi_hw_enums.h"
|
||||
// was generated automatically by rusEfi tool from rusefi_hw_enums.h // was generated automatically by rusEfi tool from rusefi_enums.h // by enum2string.jar tool on Sun 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
|
||||
|
||||
|
||||
|
@ -1279,6 +1279,10 @@ case TT_3_1_CAM:
|
|||
return "TT_3_1_CAM";
|
||||
case 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:
|
||||
return "TT_DODGE_NEON_1995";
|
||||
case TT_DODGE_NEON_1995_ONLY_CRANK:
|
||||
|
@ -1295,6 +1299,8 @@ case TT_FIAT_IAW_P8:
|
|||
return "TT_FIAT_IAW_P8";
|
||||
case TT_FORD_ASPIRE:
|
||||
return "TT_FORD_ASPIRE";
|
||||
case TT_FORD_ST170:
|
||||
return "TT_FORD_ST170";
|
||||
case TT_GM_7X:
|
||||
return "TT_GM_7X";
|
||||
case TT_GM_LS_24:
|
||||
|
@ -1311,8 +1317,6 @@ case TT_HONDA_ACCORD_1_24_SHIFTED:
|
|||
return "TT_HONDA_ACCORD_1_24_SHIFTED";
|
||||
case 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:
|
||||
return "TT_HONDA_K_12_1";
|
||||
case TT_JEEP_18_2_2_2:
|
||||
|
@ -1329,12 +1333,8 @@ case TT_MAZDA_MIATA_VVT_TEST:
|
|||
return "TT_MAZDA_MIATA_VVT_TEST";
|
||||
case TT_MAZDA_SOHC_4:
|
||||
return "TT_MAZDA_SOHC_4";
|
||||
case TT_MAZDA_Z5:
|
||||
return "TT_MAZDA_Z5";
|
||||
case TT_MIATA_VVT:
|
||||
return "TT_MIATA_VVT";
|
||||
case TT_MINI_COOPER_R50:
|
||||
return "TT_MINI_COOPER_R50";
|
||||
case TT_MITSUBISHI:
|
||||
return "TT_MITSUBISHI";
|
||||
case TT_NISSAN_SR20VE:
|
||||
|
@ -1436,6 +1436,8 @@ case VVT_BOSCH_QUICK_START:
|
|||
return "VVT_BOSCH_QUICK_START";
|
||||
case VVT_FIRST_HALF:
|
||||
return "VVT_FIRST_HALF";
|
||||
case VVT_FORD_ST170:
|
||||
return "VVT_FORD_ST170";
|
||||
case VVT_INACTIVE:
|
||||
return "VVT_INACTIVE";
|
||||
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 "gppwm.h"
|
||||
#include "tachometer.h"
|
||||
#include "dynoview.h"
|
||||
#if EFI_MC33816
|
||||
#include "mc33816.h"
|
||||
#endif // EFI_MC33816
|
||||
|
@ -93,6 +94,8 @@ trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) {
|
|||
return TT_ONE;
|
||||
case VVT_4_1:
|
||||
return TT_ONE;
|
||||
case VVT_FORD_ST170:
|
||||
return TT_FORD_ST170;
|
||||
default:
|
||||
return TT_ONE;
|
||||
}
|
||||
|
@ -207,6 +210,10 @@ void Engine::periodicSlowCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
}
|
||||
#endif
|
||||
|
||||
#if EFI_DYNO_VIEW
|
||||
updateDynoView(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
#endif
|
||||
|
||||
slowCallBackWasInvoked = true;
|
||||
|
||||
#if HW_CHECK_MODE
|
||||
|
|
|
@ -80,6 +80,7 @@ public:
|
|||
explicit Engine(persistent_config_s *config);
|
||||
Engine();
|
||||
bool isPwmEnabled = true;
|
||||
int triggerActivitySecond = 0;
|
||||
|
||||
IEtbController *etbControllers[ETB_COUNT] = {nullptr};
|
||||
IFuelComputer *fuelComputer = nullptr;
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#include "perf_trace.h"
|
||||
#include "closed_loop_fuel.h"
|
||||
#include "sensor.h"
|
||||
#include "launch_control.h"
|
||||
|
||||
|
||||
#if EFI_PROD_CODE
|
||||
#include "svnversion.h"
|
||||
|
@ -174,6 +176,11 @@ void EngineState::periodicFastCallback(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
|||
float ignitionLoad = getIgnitionLoad(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
timingAdvance = getAdvance(rpm, ignitionLoad 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
|
||||
}
|
||||
|
||||
|
|
|
@ -24,8 +24,11 @@
|
|||
#include "engine_state.h"
|
||||
#include "advance_map.h"
|
||||
|
||||
static bool isInit = false;
|
||||
static Logging *logger;
|
||||
|
||||
LaunchControlBase launchInstance;
|
||||
|
||||
#if EFI_TUNER_STUDIO
|
||||
#include "tunerstudio_outputs.h"
|
||||
extern TunerStudioOutputChannels tsOutputChannels;
|
||||
|
@ -33,22 +36,8 @@ extern TunerStudioOutputChannels tsOutputChannels;
|
|||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
#define RETART_THD_CALC CONFIG(launchRpm) +\
|
||||
(CONFIG(enableLaunchRetard) ? CONFIG(launchAdvanceRpmRange) : 0) +\
|
||||
CONFIG(hardCutRpmRange)
|
||||
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.
|
||||
* In case we are dependent on VSS we just return true.
|
||||
|
@ -90,7 +79,8 @@ bool LaunchControlBase::isInsideSwitchCondition() const {
|
|||
*/
|
||||
bool LaunchControlBase::isInsideSpeedCondition() const {
|
||||
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;
|
||||
}
|
||||
|
||||
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||
launchInstance.update();
|
||||
}
|
||||
|
||||
void LaunchControlBase::update() {
|
||||
|
||||
if (!CONFIG(launchControlEnabled)) {
|
||||
return;
|
||||
}
|
||||
|
||||
#if ! EFI_UNIT_TEST
|
||||
if(!isInit) {
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
int rpm = GET_RPM();
|
||||
bool combinedConditions = isLaunchConditionMet(rpm);
|
||||
|
||||
float timeDelay = CONFIG(launchActivateDelay);
|
||||
int cutRpmRange = CONFIG(hardCutRpmRange);
|
||||
int launchAdvanceRpmRange = CONFIG(launchTimingRpmRange);
|
||||
|
||||
//recalculate in periodic task, this way we save time in applyLaunchControlLimiting
|
||||
//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) {
|
||||
// conditions not met, reset timer
|
||||
launchTimer = getTimeNowNt();
|
||||
m_launchTimer.reset();
|
||||
engine->isLaunchCondition = false;
|
||||
engine->setLaunchBoostDuty = false;
|
||||
engine->applyLaunchControlRetard = false;
|
||||
engine->applyLaunchExtraFuel = false;
|
||||
} else {
|
||||
// If conditions are met...
|
||||
if ((getTimeNowNt() - launchTimer > MS2NT(timeDelay * 1000)) && combinedConditions) {
|
||||
if (m_launchTimer.hasElapsedMs(timeDelay*1000) && combinedConditions) {
|
||||
engine->isLaunchCondition = true; // ...enable launch!
|
||||
engine->applyLaunchExtraFuel = true;
|
||||
}
|
||||
|
@ -181,8 +180,6 @@ void LaunchControlBase::update() {
|
|||
#endif /* EFI_TUNER_STUDIO */
|
||||
}
|
||||
|
||||
static LaunchControlImpl Launch;
|
||||
|
||||
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
||||
engineConfiguration->launchRpm = 4000; // Rpm to trigger Launch condition
|
||||
engineConfiguration->launchTimingRetard = 10; // retard in absolute degrees ATDC
|
||||
|
@ -198,20 +195,21 @@ void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE) {
|
|||
engineConfiguration->enableLaunchBoost = true;
|
||||
engineConfiguration->launchSmoothRetard = true; //interpolates the advance linear from launchrpm to fully retarded at launchtimingrpmrange
|
||||
engineConfiguration->antiLagRpmTreshold = 3000;
|
||||
|
||||
}
|
||||
|
||||
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||
|
||||
if (retardThresholdRpm < GET_RPM()) {
|
||||
if (( engine->isLaunchCondition ) && ( retardThresholdRpm < GET_RPM() )) {
|
||||
*limitedSpark = engineConfiguration->launchSparkCutEnable;
|
||||
*limitedFuel = engineConfiguration->launchFuelCutEnable;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||
logger = sharedLogger;
|
||||
retardThresholdRpm = RETART_THD_CALC;
|
||||
Launch.Start();
|
||||
INJECT_ENGINE_REFERENCE(&launchInstance);
|
||||
|
||||
isInit = true;
|
||||
}
|
||||
|
||||
#endif /* EFI_LAUNCH_CONTROL */
|
||||
|
|
|
@ -8,11 +8,13 @@
|
|||
#pragma once
|
||||
|
||||
#include "engine_ptr.h"
|
||||
#include "timer.h"
|
||||
|
||||
class Logging;
|
||||
void initLaunchControl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||
void setDefaultLaunchParameters(DECLARE_CONFIG_PARAMETER_SIGNATURE);
|
||||
void applyLaunchControlLimiting(bool *limitedSpark, bool *limitedFuel DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||
void updateLaunchConditions(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||
|
||||
class LaunchControlBase {
|
||||
public:
|
||||
|
@ -25,9 +27,8 @@ public:
|
|||
bool isInsideTpsCondition() const;
|
||||
bool isInsideSwitchCondition() const;
|
||||
bool isInsideRPMCondition(int rpm) const;
|
||||
|
||||
bool isLaunchConditionMet(int rpm) const;
|
||||
|
||||
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
|
||||
*/
|
||||
typedef enum {
|
||||
|
||||
TT_TOOTHED_WHEEL = TT_TT_TOOTHED_WHEEL,
|
||||
TT_FORD_ASPIRE = 1,
|
||||
TT_FORD_ASPIRE = TT_TT_FORD_ASPIRE,
|
||||
TT_DODGE_NEON_1995 = 2,
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
TT_MAZDA_MIATA_NB1 = 4,
|
||||
TT_GM_7X = 5,
|
||||
TT_MINI_COOPER_R50 = 6,
|
||||
TT_MAZDA_SOHC_4 = 7,
|
||||
TT_MAZDA_MIATA_NB1 = TT_TT_MAZDA_MIATA_NB1,
|
||||
TT_GM_7X = TT_TT_GM_7X,
|
||||
TT_MAZDA_SOHC_4 = TT_TT_MAZDA_SOHC_4,
|
||||
TT_DAIHATSU = TT_TT_DAIHATSU,
|
||||
/**
|
||||
* "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_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,
|
||||
|
||||
// this makes sense because mechanical spark distribution does not require synchronization
|
||||
TT_HONDA_4_24 = 12,
|
||||
|
||||
TT_HONDA_1_4_24 = 13,
|
||||
TT_HONDA_1_4_24 = TT_TT_HONDA_1_4_24,
|
||||
|
||||
// cam-based
|
||||
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
|
||||
|
@ -256,7 +259,7 @@ typedef enum {
|
|||
*/
|
||||
TT_ONE_PLUS_ONE = 16,
|
||||
// "1+60/2"
|
||||
TT_VVT_JZ = 17,
|
||||
TT_VVT_JZ = TT_TT_VVT_JZ,
|
||||
// just one channel with just one tooth
|
||||
TT_ONE = TT_TT_ONE,
|
||||
|
||||
|
@ -266,11 +269,11 @@ typedef enum {
|
|||
*/
|
||||
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_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
|
||||
|
@ -279,17 +282,17 @@ typedef enum {
|
|||
*/
|
||||
TT_NISSAN_SR20VE = 24,
|
||||
|
||||
TT_2JZ_3_34 = 25,
|
||||
TT_2JZ_3_34 = TT_TT_2JZ_3_34,
|
||||
|
||||
TT_ROVER_K = 26,
|
||||
|
||||
TT_GM_LS_24 = 27,
|
||||
TT_GM_LS_24 = TT_TT_GM_LS_24,
|
||||
|
||||
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
|
||||
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
|
||||
* 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
|
||||
|
@ -315,10 +318,10 @@ typedef enum {
|
|||
*/
|
||||
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
|
||||
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
|
||||
|
@ -328,33 +331,33 @@ typedef enum {
|
|||
TT_DODGE_NEON_1995_ONLY_CRANK = 39,
|
||||
|
||||
// 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
|
||||
// https://rusefi.com/forum/viewtopic.php?f=5&t=1440
|
||||
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
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
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_SUBARU_SVX = 49,
|
||||
TT_SUBARU_SVX = TT_TT_SUBARU_SVX,
|
||||
|
||||
TT_1_16 = 50,
|
||||
|
||||
|
@ -436,6 +439,8 @@ typedef enum {
|
|||
*/
|
||||
VVT_4_1 = 6,
|
||||
|
||||
VVT_FORD_ST170 = 7,
|
||||
|
||||
Force_4_bytes_size_vvt_mode = ENUM_32_BITS,
|
||||
} vvt_mode_e;
|
||||
|
||||
|
|
|
@ -13,6 +13,7 @@
|
|||
#include "engine_configuration.h"
|
||||
#include "engine.h"
|
||||
#include "vehicle_speed.h"
|
||||
#include "dynoview.h"
|
||||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
|
@ -98,6 +99,9 @@ void processCanRxVss(const CANRxFrame& frame, efitick_t nowNt) {
|
|||
break;
|
||||
}
|
||||
|
||||
#if EFI_DYNO_VIEW
|
||||
updateDynoViewCan(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||
#endif
|
||||
}
|
||||
|
||||
float getVehicleCanSpeed(void) {
|
||||
|
|
|
@ -56,6 +56,7 @@ typedef enum {
|
|||
LE_METHOD_FSIO_DIGITAL_INPUT = 123,
|
||||
LE_METHOD_FSIO_SETTING = 124,
|
||||
LE_METHOD_PPS = 125,
|
||||
LE_METHOD_TIME_SINCE_TRIGGER_EVENT = 126,
|
||||
|
||||
#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 leStartupFuelPumpDuration(LE_METHOD_STARTUP_FUEL_PUMP_DURATION, "startup_fuel_pump_duration");
|
||||
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"
|
||||
|
||||
|
@ -139,6 +140,8 @@ FsioValue getEngineValue(le_action_e action DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
|||
case LE_METHOD_EXHAUST_VVT:
|
||||
return engine->triggerCentral.getVVTPosition();
|
||||
#endif
|
||||
case LE_METHOD_TIME_SINCE_TRIGGER_EVENT:
|
||||
return engine->triggerCentral.getTimeSinceTriggerEvent();
|
||||
case LE_METHOD_TIME_SINCE_BOOT:
|
||||
#if EFI_MAIN_RELAY_CONTROL
|
||||
// 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
|
||||
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());
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#pragma once
|
||||
#define VCS_DATE 20201129
|
||||
#define VCS_DATE 20201205
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "date_stamp.h"
|
||||
#include "buttonshift.h"
|
||||
#include "start_stop.h"
|
||||
#include "dynoview.h"
|
||||
|
||||
#if EFI_SENSOR_CHART
|
||||
#include "sensor_chart.h"
|
||||
|
@ -605,6 +606,10 @@ void commonInitEngineController(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_S
|
|||
initLaunchControl(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||
#endif
|
||||
|
||||
#if EFI_DYNO_VIEW
|
||||
initDynoView(sharedLogger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||
#endif
|
||||
|
||||
#if EFI_SHAFT_POSITION_INPUT
|
||||
/**
|
||||
* 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
|
||||
#endif
|
||||
#ifndef CCM_UNUSED_SIZE
|
||||
#define CCM_UNUSED_SIZE 2900
|
||||
#define CCM_UNUSED_SIZE 2800
|
||||
#endif
|
||||
static char UNUSED_RAM_SIZE[RAM_UNUSED_SIZE];
|
||||
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();
|
||||
if (rpm == 0) {
|
||||
// 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: add 'pin shutdown' invocation somewhere - coils might be still open here!
|
||||
return;
|
||||
|
|
|
@ -386,7 +386,8 @@ efitick_t scheduleByAngle(scheduling_s *timer, efitick_t edgeTimestamp, angle_t
|
|||
action_s action DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||
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;
|
||||
|
||||
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
|
||||
// begin
|
||||
#pragma once
|
||||
|
@ -2020,6 +2020,7 @@ struct engine_configuration_s {
|
|||
bool fuelClosedLoopCorrectionEnabled : 1;
|
||||
/**
|
||||
* Print details into rusEfi console
|
||||
* enable verbose_idle
|
||||
offset 1464 bit 2 */
|
||||
bool isVerboseIAC : 1;
|
||||
/**
|
||||
|
@ -3777,4 +3778,4 @@ struct persistent_config_s {
|
|||
typedef struct persistent_config_s persistent_config_s;
|
||||
|
||||
// end
|
||||
// this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
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
|
||||
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
|
||||
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
|
||||
case FSIO_SETTING_FANONTEMPERATURE:
|
||||
|
|
|
@ -373,7 +373,7 @@
|
|||
#define ENGINE_MAKE_VAG "VAG"
|
||||
#define ENGINE_NOISE_CURVE_SIZE 8
|
||||
#define ENGINE_SNIFFER_UNIT_US 10
|
||||
#define engine_type_e_auto_enum "DEFAULT_FRANKENSO", "MIATA_PROTEUS_TCU", "DODGE_NEON_1995", "FORD_ASPIRE_1996", "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 engineCode_offset 1128
|
||||
#define engineConfiguration_offset 0
|
||||
|
@ -1212,8 +1212,8 @@
|
|||
#define showHumanReadableWarning_offset 976
|
||||
#define showSdCardWarning_offset 76
|
||||
#define SIGNATURE_BOARD all
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 104376296
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 768848914
|
||||
#define silentTriggerError_offset 1464
|
||||
#define slowAdcAlpha_offset 2088
|
||||
#define sparkDwellRpmBins_offset 332
|
||||
|
@ -1410,7 +1410,7 @@
|
|||
#define TRIGGER_SIMULATOR_PIN_COUNT 3
|
||||
#define trigger_todoRemoveMeOneDay0_offset 528
|
||||
#define trigger_todoRemoveMeOneDay1_offset 528
|
||||
#define trigger_type_e_auto_enum "TT_TOOTHED_WHEEL", "TT_FORD_ASPIRE", "TT_DODGE_NEON_1995", "TT_MAZDA_MIATA_NA", "TT_MAZDA_MIATA_NB1", "TT_GM_7X", "TT_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_offset 524
|
||||
#define trigger_unusedBit_4_10_offset 528
|
||||
|
@ -1492,7 +1492,7 @@
|
|||
#define TS_ONLINE_PROTOCOL_char z
|
||||
#define TS_OUTPUT_COMMAND '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_char P
|
||||
#define TS_PERF_TRACE_BEGIN '_'
|
||||
|
@ -1543,16 +1543,46 @@
|
|||
#define ts_show_spi true
|
||||
#define ts_show_trigger_comparator false
|
||||
#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_char W
|
||||
#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_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_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_36_1 9
|
||||
#define TT_TT_TOOTHED_WHEEL_36_2 48
|
||||
#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 twoWireBatchIgnition_offset 1476
|
||||
#define twoWireBatchInjection_offset 1476
|
||||
|
@ -1691,7 +1721,7 @@
|
|||
#define veTable_offset 17440
|
||||
#define VOLTAGE_1_BYTE_PACKING_DIV 0.02
|
||||
#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 vvtCamSensorUseRise_offset 744
|
||||
#define vvtMode_offset 2328
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD all
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 3115617215
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.all.3115617215"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 768848914
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.all.768848914"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD frankenso_na6
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 801389124
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.frankenso_na6.801389124"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3148023273
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.frankenso_na6.3148023273"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD hellen_cypress
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 1883581820
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.hellen_cypress.1883581820"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3827438289
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.hellen_cypress.3827438289"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD kin
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 559486854
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.kin.559486854"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3040749611
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.kin.3040749611"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD mre_f4
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 2925811142
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f4.2925811142"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 973302379
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f4.973302379"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD mre_f7
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 2925811142
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.mre_f7.2925811142"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 973302379
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.mre_f7.973302379"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD prometheus_405
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 4218195438
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_405.4218195438"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 1863037507
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_405.1863037507"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD prometheus_469
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 4218195438
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.prometheus_469.4218195438"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 1863037507
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.prometheus_469.1863037507"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD proteus_f4
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 1881063777
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f4.1881063777"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3833200332
|
||||
#define TS_SIGNATURE "rusEFI 2020.12.04.proteus_f4.3833200332"
|
||||
|
|
|
@ -3,6 +3,6 @@
|
|||
//
|
||||
|
||||
#define SIGNATURE_BOARD proteus_f7
|
||||
#define SIGNATURE_DATE 2020.11.29
|
||||
#define SIGNATURE_HASH 1881063777
|
||||
#define TS_SIGNATURE "rusEFI 2020.11.29.proteus_f7.1881063777"
|
||||
#define SIGNATURE_DATE 2020.12.04
|
||||
#define SIGNATURE_HASH 3833200332
|
||||
#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;
|
||||
}
|
||||
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()
|
||||
* '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() {
|
||||
|
|
|
@ -13,6 +13,11 @@
|
|||
# (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
|
||||
|
||||
#
|
||||
# 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)
|
||||
|
||||
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
|
||||
|
||||
}
|
||||
|
||||
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 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);
|
||||
}
|
||||
|
||||
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) {
|
||||
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 configureHondaCbr600(TriggerWaveform *s);
|
||||
void configureHondaCbr600custom(TriggerWaveform *s);
|
||||
|
||||
void configureHondaK_12_1(TriggerWaveform *s);
|
||||
|
||||
|
||||
|
|
|
@ -52,55 +52,23 @@ void initializeMazdaMiataNaShape(TriggerWaveform *s) {
|
|||
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
|
||||
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);
|
||||
|
||||
float o = 40;
|
||||
|
||||
s->tdcPosition = 60 + 655;
|
||||
|
||||
s->setTriggerSynchronizationGap2(0.35f, 0.98f);
|
||||
// 384
|
||||
s->addEventAngle(o + 56.0f, T_PRIMARY, TV_FALL);
|
||||
s->addEventAngle(96.0f, T_PRIMARY, TV_FALL);
|
||||
// 400
|
||||
s->addEventAngle(o + 60.0f, T_PRIMARY, TV_RISE);
|
||||
s->addEventAngle(o + 136.0f, T_PRIMARY, TV_FALL);
|
||||
s->addEventAngle(o + 140.0f, T_PRIMARY, TV_RISE);
|
||||
s->addEventAngle(100.0f, T_PRIMARY, TV_RISE);
|
||||
s->addEventAngle(176.0f, T_PRIMARY, TV_FALL);
|
||||
s->addEventAngle(180.0f, T_PRIMARY, TV_RISE);
|
||||
}
|
||||
|
||||
static void initializeMazdaMiataNb1ShapeWithOffset(TriggerWaveform *s, float offset) {
|
||||
|
|
|
@ -17,7 +17,6 @@ void initializeMazdaMiataNb2Crank(TriggerWaveform *s);
|
|||
void initializeMazdaMiataVVtTestShape(TriggerWaveform *s);
|
||||
void configureMazdaProtegeSOHC(TriggerWaveform *s);
|
||||
void configureMazdaProtegeLx(TriggerWaveform *s);
|
||||
void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s);
|
||||
|
||||
/**
|
||||
* TT_VVT_MIATA_NB2
|
||||
|
|
|
@ -25,3 +25,49 @@ void configureFiatIAQ_P8(TriggerWaveform * s) {
|
|||
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"
|
||||
|
||||
void configureFiatIAQ_P8(TriggerWaveform * s);
|
||||
void configureDaihatsu4(TriggerWaveform * s);
|
||||
void configureFordST170(TriggerWaveform * s);
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "global.h"
|
||||
#include "os_access.h"
|
||||
#include "engine.h"
|
||||
#include "trigger_bmw.h"
|
||||
#include "trigger_chrysler.h"
|
||||
#include "trigger_gm.h"
|
||||
#include "trigger_nissan.h"
|
||||
|
@ -102,7 +101,8 @@ void TriggerWaveform::initialize(operation_mode_e operationMode) {
|
|||
previousAngle = 0;
|
||||
memset(isRiseEvent, 0, sizeof(isRiseEvent));
|
||||
#if EFI_UNIT_TEST
|
||||
memset(&triggerSignals, 0, sizeof(triggerSignals));
|
||||
memset(&triggerSignalIndeces, 0, sizeof(triggerSignalIndeces));
|
||||
memset(&triggerSignalStates, 0, sizeof(triggerSignalStates));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -228,8 +228,8 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex
|
|||
}
|
||||
|
||||
#if EFI_UNIT_TEST
|
||||
int signal = channelIndex * 1000 + stateParam;
|
||||
triggerSignals[privateTriggerDefinitionSize] = signal;
|
||||
triggerSignalIndeces[privateTriggerDefinitionSize] = channelIndex;
|
||||
triggerSignalStates[privateTriggerDefinitionSize] = stateParam;
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -240,7 +240,7 @@ void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const 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 (angle <= previousAngle) {
|
||||
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) {
|
||||
isSynchronizationNeeded = true;
|
||||
efiAssertVoid(OBD_PCM_Processor_Fault, gapIndex >= 0 && gapIndex < GAP_TRACKING_LENGTH, "gapIndex out of range");
|
||||
this->syncronizationRatioFrom[gapIndex] = syncRatioFrom;
|
||||
this->syncronizationRatioTo[gapIndex] = syncRatioTo;
|
||||
if (gapIndex == 0) {
|
||||
|
@ -427,7 +428,7 @@ void TriggerWaveform::prepareShape(TriggerFormDetails *details DECLARE_ENGINE_PA
|
|||
}
|
||||
|
||||
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) {
|
||||
|
@ -435,11 +436,11 @@ void TriggerWaveform::setSecondTriggerSynchronizationGap2(float syncRatioFrom, f
|
|||
}
|
||||
|
||||
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) {
|
||||
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);
|
||||
break;
|
||||
|
||||
case TT_MAZDA_Z5:
|
||||
initialize_Mazda_Engine_z5_Shape(this);
|
||||
case TT_FORD_ST170:
|
||||
configureFordST170(this);
|
||||
break;
|
||||
|
||||
case TT_VVT_MIATA_NB2:
|
||||
|
@ -545,8 +546,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
|
|||
configureMazdaProtegeSOHC(this);
|
||||
break;
|
||||
|
||||
case TT_MINI_COOPER_R50:
|
||||
configureMiniCooperTriggerWaveform(this);
|
||||
case TT_TT_DAIHATSU:
|
||||
configureDaihatsu4(this);
|
||||
break;
|
||||
|
||||
case TT_VVT_JZ:
|
||||
|
@ -607,8 +608,8 @@ void TriggerWaveform::initializeTriggerWaveform(Logging *logger, operation_mode_
|
|||
configureHondaCbr600(this);
|
||||
break;
|
||||
|
||||
case TT_HONDA_CBR_600_CUSTOM:
|
||||
configureHondaCbr600custom(this);
|
||||
case TT_CHRYSLER_NGC_36_2_2:
|
||||
configureChryslerNGC_36_2_2(this);
|
||||
break;
|
||||
|
||||
case TT_MITSUBISHI:
|
||||
|
|
|
@ -13,6 +13,10 @@
|
|||
|
||||
#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
|
||||
#define assertAngleRange(angle, msg, code) if (angle > 10000000 || angle < -10000000) { firmwareError(code, "angle range %s %.2f", msg, angle);angle = 0;}
|
||||
#else
|
||||
|
@ -68,7 +72,8 @@ class TriggerState;
|
|||
class TriggerFormDetails;
|
||||
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.
|
||||
|
@ -181,7 +186,8 @@ public:
|
|||
/**
|
||||
* 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
|
||||
|
||||
MultiChannelStateSequence wave;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
|
||||
TRIGGER_DECODERS_SRC_CPP = \
|
||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_bmw.cpp \
|
||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_mazda.cpp \
|
||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_chrysler.cpp \
|
||||
$(CONTROLLERS_DIR)/trigger/decoders/trigger_structure.cpp \
|
||||
|
|
|
@ -82,6 +82,7 @@ angle_t TriggerCentral::getVVTPosition() {
|
|||
static bool vvtWithRealDecoder(vvt_mode_e vvtMode) {
|
||||
return vvtMode == MIATA_NB2
|
||||
|| vvtMode == VVT_BOSCH_QUICK_START
|
||||
|| vvtMode == VVT_FORD_ST170
|
||||
|| vvtMode == VVT_4_1;
|
||||
}
|
||||
|
||||
|
@ -426,6 +427,8 @@ void TriggerCentral::handleShaftSignal(trigger_event_e signal, efitick_t timesta
|
|||
|
||||
engine->onTriggerSignalEvent(timestamp);
|
||||
|
||||
m_lastEventTimer.reset(timestamp);
|
||||
|
||||
int eventIndex = (int) signal;
|
||||
efiAssertVoid(CUSTOM_TRIGGER_EVENT_TYPE, eventIndex >= 0 && eventIndex < HW_EVENT_TYPES, "signal type");
|
||||
hwEventCounters[eventIndex]++;
|
||||
|
@ -517,6 +520,7 @@ static void triggerShapeInfo(void) {
|
|||
#if EFI_UNIT_TEST
|
||||
#include <stdlib.h>
|
||||
|
||||
extern trigger_type_e focusOnTrigger;
|
||||
#define TRIGGERS_FILE_NAME "triggers.txt"
|
||||
|
||||
/**
|
||||
|
@ -536,6 +540,10 @@ void printAllTriggers() {
|
|||
for (int triggerId = 1; triggerId < TT_UNUSED; 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));
|
||||
|
||||
persistent_config_s pc;
|
||||
|
@ -553,7 +561,7 @@ void printAllTriggers() {
|
|||
engine->initializeTriggerWaveform(NULL PASS_ENGINE_PARAMETER_SUFFIX);
|
||||
|
||||
if (shape->shapeDefinitionError) {
|
||||
printf("Trigger error %d\r\n", triggerId);
|
||||
printf("Trigger shapeDefinitionError %d\r\n", triggerId);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
@ -566,7 +574,11 @@ void printAllTriggers() {
|
|||
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 "trigger_decoder.h"
|
||||
#include "trigger_central_generated.h"
|
||||
#include "timer.h"
|
||||
|
||||
class Engine;
|
||||
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 validateCamVvtCounters();
|
||||
|
||||
float getTimeSinceTriggerEvent() const {
|
||||
return m_lastEventTimer.getElapsedSeconds();
|
||||
}
|
||||
|
||||
TriggerNoiseFilter noiseFilter;
|
||||
|
||||
trigger_type_e vvtTriggerType;
|
||||
|
@ -67,6 +72,9 @@ public:
|
|||
TriggerWaveform vvtShape;
|
||||
|
||||
TriggerFormDetails triggerFormDetails;
|
||||
|
||||
// Keep track of the last time we got a valid trigger event
|
||||
Timer m_lastEventTimer;
|
||||
};
|
||||
|
||||
void triggerInfo(void);
|
||||
|
|
|
@ -14,6 +14,10 @@
|
|||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
#if EFI_UNIT_TEST
|
||||
extern bool printTriggerTrace;
|
||||
#endif
|
||||
|
||||
// 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 };
|
||||
|
||||
|
@ -112,21 +116,32 @@ void TriggerStimulatorHelper::assertSyncPositionAndSetDutyCycle(
|
|||
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
|
||||
*/
|
||||
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,
|
||||
triggerConfiguration,
|
||||
state, shape, i);
|
||||
}
|
||||
int revolutionCounter = state.getTotalRevolutionCounter();
|
||||
if (revolutionCounter != GAP_TRACKING_LENGTH + 1) {
|
||||
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s rc=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
|
||||
if (revolutionCounter != TEST_REVOLUTIONS + 1) {
|
||||
warning(CUSTOM_OBD_TRIGGER_WAVEFORM, "sync failed/wrong gap parameters trigger=%s revolutionCounter=%d", getTrigger_type_e(triggerConfiguration.TriggerType), revolutionCounter);
|
||||
shape.setShapeDefinitionError(true);
|
||||
return;
|
||||
}
|
||||
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++) {
|
||||
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:
|
||||
chDbgStackOverflowPanic allows to know which thread has stack overflow
|
|
@ -28,8 +28,8 @@ public:
|
|||
bool isHwUsed(adc_channel_e hwChannel) const;
|
||||
int size() const;
|
||||
void init(void);
|
||||
int conversionCount;
|
||||
int errorsCount;
|
||||
uint32_t conversionCount = 0;
|
||||
uint32_t errorsCount = 0;
|
||||
int getAdcValueByIndex(int internalIndex) const;
|
||||
void invalidateSamplesCache();
|
||||
|
||||
|
@ -38,7 +38,7 @@ public:
|
|||
int getAdcValueByHwChannel(adc_channel_e hwChannel) const;
|
||||
|
||||
adc_state values;
|
||||
int channelCount;
|
||||
size_t channelCount = 0;
|
||||
private:
|
||||
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) {
|
||||
this->hwConfig = hwConfig;
|
||||
this->samples = buf;
|
||||
channelCount = 0;
|
||||
conversionCount = 0;
|
||||
errorsCount = 0;
|
||||
|
||||
hwConfig->sqr1 = 0;
|
||||
hwConfig->sqr2 = 0;
|
||||
|
@ -342,7 +339,7 @@ void AdcDevice::init(void) {
|
|||
}
|
||||
|
||||
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) {
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -47,13 +47,10 @@
|
|||
!
|
||||
!
|
||||
|
||||
|
||||
|
||||
!
|
||||
! 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
|
||||
|
@ -389,11 +386,41 @@ struct ThermistorConf @brief Thermistor curve parameters
|
|||
end_struct
|
||||
|
||||
#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_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_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_SUBARU_SVX 49
|
||||
#define TT_TT_1_16 50
|
||||
|
||||
#define ET_DODGE_NEON_1995 2
|
||||
#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 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 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
|
||||
|
|
Binary file not shown.
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||
signature = "rusEFI 2020.11.29.all.3115617215"
|
||||
signature = "rusEFI 2020.12.04.all.768848914"
|
||||
|
||||
[TunerStudio]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4652,13 +4669,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on hellen_cypress_gen_config.bat integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4660,13 +4677,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; https://rusefi.com/forum/viewtopic.php?p=36201#p36201
|
||||
signature = "rusEFI 2020.11.29.kin.559486854"
|
||||
signature = "rusEFI 2020.12.04.kin.3040749611"
|
||||
|
||||
[TunerStudio]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on kinetis_gen_config.bat integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4661,13 +4678,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4628,13 +4645,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4656,13 +4673,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -33,12 +33,12 @@ enable2ndByteCanID = false
|
|||
|
||||
[MegaTune]
|
||||
; 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]
|
||||
queryCommand = "S"
|
||||
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]
|
||||
; new packet serial format with CRC
|
||||
|
@ -74,7 +74,7 @@ enable2ndByteCanID = false
|
|||
|
||||
; see PAGE_0_SIZE in C source code
|
||||
; CONFIG_DEFINITION_START
|
||||
; this section was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun 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
|
||||
page = 1
|
||||
|
@ -1357,7 +1357,7 @@ page = 1
|
|||
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"
|
||||
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"
|
||||
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"
|
||||
|
@ -1464,6 +1464,8 @@ page = 1
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -1542,12 +1544,17 @@ page = 1
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
||||
; see TS_OUTPUT_SIZE in console source code
|
||||
ochBlockSize = 288
|
||||
ochBlockSize = 340
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
|
@ -1763,12 +1770,13 @@ page = 1
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/10}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/10000}, 0.0
|
||||
AFRValue = scalar, U16, 282, "AFR",{1/1000}, 0.0
|
||||
VssAcceleration = scalar, S16, 284, "m/s2", {1/300}, 0.0
|
||||
|
||||
;
|
||||
; see TunerStudioOutputChannels struct
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -2433,6 +2441,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -2532,6 +2543,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, "Time", float, "%.3f"
|
||||
|
@ -2661,6 +2676,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; atmPres = F32, "pres",
|
||||
|
@ -4616,13 +4633,14 @@ cmd_set_engine_type_default = "Z\x00\x31\x00\x00"
|
|||
field = "Activation Mode", launchActivationMode
|
||||
field = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -80,6 +80,8 @@ enable2ndByteCanID = false
|
|||
; CONFIG_DEFINITION_END
|
||||
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]
|
||||
spotDepth = 2 ; 0 = no indicators, 1 = Z only, 2 = XYZ indicators.
|
||||
|
@ -158,6 +160,11 @@ enable2ndByteCanID = false
|
|||
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]
|
||||
|
||||
ochGetCommand = "O%2o%2c"
|
||||
|
@ -379,12 +386,13 @@ enable2ndByteCanID = false
|
|||
highFuelPressure = scalar, S16, 278, "bar", {1/@@PACK_MULT_HIGH_PRESSURE@@}, 0
|
||||
targetLambda = scalar, U16, 280, "",{1/@@PACK_MULT_LAMBDA@@}, 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
|
||||
;
|
||||
|
||||
; todo: generate this section programatically
|
||||
; todo: generate this section programmatically
|
||||
LM_SPEED_DENSITY = {3},
|
||||
LM_REAL_MAF = {4}
|
||||
|
||||
|
@ -1049,6 +1057,9 @@ gaugeCategory = Knock
|
|||
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
|
||||
|
||||
gaugeCategory = DynoView
|
||||
accelGauge = VssAcceleration, "Vehicle acceleration", "m/s2", -10, 10, -6, -4, 4, 6, 2, 2
|
||||
|
||||
[WueAnalyze]
|
||||
|
||||
; wueCurveName, afrTempCompensationCurve, lambdaTargetTableName, lambdaChannel, coolantTempChannel, egoCorrectionChannel, wueChannel, activeCondition
|
||||
|
@ -1148,6 +1159,10 @@ gaugeCategory = Knock
|
|||
showPanel = spi, spiFunction
|
||||
showPanel = con, connection
|
||||
|
||||
;
|
||||
; this section defines how we log output channels
|
||||
; see [OutputChannels]
|
||||
;
|
||||
[Datalog]
|
||||
; Channel Label Type Format
|
||||
entry = time, @@GAUGE_NAME_TIME@@, float, "%.3f"
|
||||
|
@ -1277,6 +1292,8 @@ gaugeCategory = Knock
|
|||
entry = knock7, "Knock 7", int, "%d"
|
||||
entry = knock8, "Knock 8", int, "%d"
|
||||
|
||||
entry = VssAcceleration, "Accel", float, "%.3f"
|
||||
|
||||
; tpsADC = U16, "ADC",
|
||||
; alignmet = U16, "al",
|
||||
; 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 = "Switch Input", launchActivatePin, {launchActivationMode == 0 && launchControlEnabled == 1}
|
||||
field = "Clutch Input", clutchDownPin, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = "Clutch Input inverted", clutchDownPinMode, {launchActivationMode == 1 && launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Rpm Treshold", launchRpmTreshold, {launchControlEnabled == 1}
|
||||
field = "Speed Treshold", launchSpeedTreshold, {launchControlEnabled == 1}
|
||||
field = ""
|
||||
field = "Launch RPM", launchRpm, {launchControlEnabled == 1}
|
||||
field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
;field = "Extra Fuel", launchFuelAdded, {launchControlEnabled == 1}
|
||||
;field = "Boost Solenoid Duty", launchBoostDuty, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard enable", enableLaunchRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard", launchTimingRetard, {launchControlEnabled == 1}
|
||||
field = "Ignition Retard RPM Range", launchTimingRpmRange, {launchControlEnabled == 1}
|
||||
|
|
|
@ -20,8 +20,13 @@
|
|||
#define MS2US(MS_TIME) ((MS_TIME) * 1000)
|
||||
|
||||
// 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)
|
||||
|
||||
// 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)
|
||||
|
||||
// And back
|
||||
|
@ -29,6 +34,7 @@
|
|||
|
||||
// milliseconds to ticks
|
||||
#define MS2NT(msTime) US2NT(MS2US(msTime))
|
||||
// See USF2NT above for when to use MSF2NT
|
||||
#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/cli_registry.cpp \
|
||||
$(PROJECT_DIR)/util/efilib.cpp \
|
||||
$(PROJECT_DIR)/util/timer.cpp \
|
||||
|
||||
|
||||
UTIL_INC = \
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<configuration default="false" name="TriggerImage" type="Application" factoryName="Application" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="com.rusefi.TriggerImage" />
|
||||
<module name="ui" />
|
||||
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||
<option name="PROGRAM_PARAMETERS" value="../unit_tests" />
|
||||
<extension name="coverage">
|
||||
<pattern>
|
||||
<option name="PATTERN" value="com.rusefi.ui.console.*" />
|
||||
|
|
|
@ -149,7 +149,6 @@ public class IoUtil {
|
|||
}
|
||||
|
||||
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(AverageAnglesUtil.KEY, (EngineState.ValueCallback<String>) EngineState.ValueCallback.VOID);
|
||||
|
||||
|
|
|
@ -2,6 +2,8 @@ package com.rusefi;
|
|||
|
||||
import com.devexperts.logging.Logging;
|
||||
import com.rusefi.autodetect.PortDetector;
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.core.EngineState;
|
||||
import com.rusefi.io.LinkManager;
|
||||
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:
|
||||
* PD1 <=> PC6
|
||||
* PD2 <=> PA5
|
||||
*
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <p>
|
||||
* <p>
|
||||
* this test connects to real hardware via serial port
|
||||
* Andrey Belomutskiy, (c) 2013-2020
|
||||
* 2/22/2015
|
||||
|
@ -25,6 +27,7 @@ import static com.rusefi.Timeouts.SECOND;
|
|||
public class RealHwTest {
|
||||
private static final Logging log = getLogging(RealHwTest.class);
|
||||
private static final int STARTUP_SLEEP = 20;
|
||||
private volatile static String firmwareVersion;
|
||||
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
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) {
|
||||
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);
|
||||
// first run tests which require real hardware
|
||||
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
|
||||
new AutoTest(linkManager, linkManager.getCommandQueue()).mainTestBody();
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.rusefi.config.generated;
|
||||
|
||||
// this file was generated automatically by rusEfi tool ConfigDefinition.jar based on gen_config.sh integration/rusefi_config.txt Sun Nov 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
|
||||
import com.rusefi.config.*;
|
||||
|
@ -1167,7 +1167,7 @@ public class Fields {
|
|||
public static final int servoOutputPins8_offset = 3147;
|
||||
public static final int showHumanReadableWarning_offset = 976;
|
||||
public static final int showSdCardWarning_offset = 76;
|
||||
public static final int SIGNATURE_HASH = 104376296;
|
||||
public static final int SIGNATURE_HASH = 768848914;
|
||||
public static final int silentTriggerError_offset = 1464;
|
||||
public static final int slowAdcAlpha_offset = 2088;
|
||||
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_ONLINE_PROTOCOL = 'z';
|
||||
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_PERF_TRACE_BEGIN = '_';
|
||||
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_W_COMMAND = 'w';
|
||||
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 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_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_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_36_1 = 9;
|
||||
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_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 twoWireBatchIgnition_offset = 1476;
|
||||
public static final int twoWireBatchInjection_offset = 1476;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<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>
|
||||
<romid>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.rusefi;
|
||||
|
||||
import com.rusefi.config.generated.Fields;
|
||||
import com.rusefi.trigger.WaveState;
|
||||
import com.rusefi.ui.engine.UpDownImage;
|
||||
import com.rusefi.ui.util.FrameHelper;
|
||||
|
@ -9,15 +10,18 @@ import org.jetbrains.annotations.NotNull;
|
|||
|
||||
import javax.swing.*;
|
||||
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.util.ArrayList;
|
||||
import java.util.Date;
|
||||
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
|
||||
* 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 TOP_MESSAGE = StartupFrame.LINK_TEXT;
|
||||
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
|
||||
*/
|
||||
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;
|
||||
if (args.length != 1) {
|
||||
workingFolder = DEFAULT_WORK_FOLDER;
|
||||
|
@ -42,6 +97,7 @@ public class TriggerImage {
|
|||
|
||||
FrameHelper f = new FrameHelper();
|
||||
|
||||
JPanel content = new JPanel(new BorderLayout());
|
||||
final TriggerPanel triggerPanel = new TriggerPanel() {
|
||||
@Override
|
||||
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() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
generateImages(workingFolder, triggerPanel);
|
||||
generateImages(workingFolder, triggerPanel, topPanel, content);
|
||||
} catch (IOException e) {
|
||||
throw new IllegalStateException(e);
|
||||
}
|
||||
|
@ -64,7 +125,7 @@ public class TriggerImage {
|
|||
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;
|
||||
BufferedReader br = new BufferedReader(new FileReader(fileName));
|
||||
|
||||
|
@ -77,27 +138,34 @@ public class TriggerImage {
|
|||
}
|
||||
|
||||
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 {
|
||||
String[] tokens = line.split(" ");
|
||||
String idStr = tokens[1];
|
||||
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)
|
||||
private static void readTrigger(BufferedReader reader, String line, TriggerPanel triggerPanel, JPanel topPanel, JPanel content) throws IOException {
|
||||
TriggerWheelInfo triggerWheelInfo = TriggerWheelInfo.readTriggerWheelInfo(line, reader);
|
||||
// if (triggerWheelInfo.id != Fields.TT_TT_SUBARU_7_6)
|
||||
// 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));
|
||||
System.out.println(re0);
|
||||
|
@ -134,20 +202,98 @@ public class TriggerImage {
|
|||
if (isThirdVisible)
|
||||
triggerPanel.add(upDownImage2);
|
||||
|
||||
triggerPanel.name = triggerName;
|
||||
triggerPanel.id = id;
|
||||
triggerPanel.name = getTriggerName(triggerWheelInfo);
|
||||
// triggerPanel.id = "#" + triggerWheelInfo.id;
|
||||
|
||||
UiUtils.trueLayout(triggerPanel);
|
||||
UiUtils.trueRepaint(triggerPanel);
|
||||
content.paintImmediately(content.getVisibleRect());
|
||||
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
|
||||
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[] tokens;
|
||||
List<Signal> signals = new ArrayList<>();
|
||||
List<TriggerSignal> signals = new ArrayList<>();
|
||||
|
||||
int index = 0;
|
||||
while (index < count) {
|
||||
|
@ -157,66 +303,25 @@ public class TriggerImage {
|
|||
tokens = line.split(" ");
|
||||
if (tokens.length < 4)
|
||||
throw new IllegalStateException("Unexpected [" + line + "]");
|
||||
String signalStr = tokens[2];
|
||||
int signal = Integer.parseInt(signalStr);
|
||||
String angleStr = tokens[3];
|
||||
double angle = Double.parseDouble(angleStr);
|
||||
int signalIndex = Integer.parseInt(tokens[2]);
|
||||
int signalState = Integer.parseInt(tokens[3]);
|
||||
double angle = Double.parseDouble(tokens[4]);
|
||||
|
||||
Signal s = new Signal(signal, angle);
|
||||
TriggerSignal s = new TriggerSignal(signalIndex, signalState, angle);
|
||||
// System.out.println(s);
|
||||
signals.add(s);
|
||||
index++;
|
||||
}
|
||||
|
||||
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;
|
||||
return signals;
|
||||
}
|
||||
|
||||
public static int angleToTime(double 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 {
|
||||
public String name = "";
|
||||
public int id;
|
||||
public String id;
|
||||
public double tdcPosition;
|
||||
|
||||
@Override
|
||||
|
@ -239,8 +344,9 @@ public class TriggerImage {
|
|||
|
||||
int h = getHeight();
|
||||
|
||||
g.drawString(name, 0, (int) (h * 0.75));
|
||||
g.drawString("#" + id, 0, (int) (h * 0.9));
|
||||
g.drawString(name, 50, (int) (h * 0.75));
|
||||
if (id != null)
|
||||
g.drawString(id, 0, (int) (h * 0.9));
|
||||
|
||||
g.setColor(Color.green);
|
||||
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 {
|
||||
max-width: 800px; }
|
||||
max-width: 800px;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
.header {
|
||||
/* 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-attachment:fixed;
|
||||
/* background-size: cover; */
|
||||
background-size: 100%;
|
||||
background-size: cover;
|
||||
background-repeat: no-repeat;
|
||||
padding-top: 6rem;
|
||||
text-align: center; }
|
||||
.value-prop {
|
||||
|
@ -94,13 +96,22 @@
|
|||
margin-left: 2rem;
|
||||
}
|
||||
.footer {
|
||||
padding-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
background-color: #222;
|
||||
padding-top: 2rem;
|
||||
padding-bottom: 1rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.footer a{
|
||||
margin-left: 1rem;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
/* Larger than phone */
|
||||
@media (min-width: 550px) {
|
||||
.container {
|
||||
overflow-y: visible;
|
||||
}
|
||||
.header {
|
||||
/* margin-top: 18rem; */
|
||||
padding-top: 18rem;}
|
||||
|
@ -127,6 +138,9 @@
|
|||
|
||||
/* Larger than tablet */
|
||||
@media (min-width: 750px) {
|
||||
.container {
|
||||
overflow-y: visible;
|
||||
}
|
||||
/* Navbar */
|
||||
.navbar + .docs-section {
|
||||
border-top-width: 0; }
|
||||
|
@ -143,7 +157,7 @@
|
|||
.navbar-spacer {
|
||||
display: none; }
|
||||
.navbar > .container {
|
||||
width: 100%; }
|
||||
width: 80%; }
|
||||
.navbar-list {
|
||||
list-style: none;
|
||||
margin-bottom: 0; }
|
||||
|
@ -254,7 +268,8 @@
|
|||
}
|
||||
|
||||
.dl-link {
|
||||
margin-left: 25rem; }
|
||||
/* margin-left: 25rem; */
|
||||
float: right;}
|
||||
|
||||
td.oddrow {
|
||||
background-color: rgb(230, 230, 230);
|
||||
|
|
|
@ -89,11 +89,11 @@
|
|||
<ul class="popover-list">
|
||||
<li class="popover-item">
|
||||
<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 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>
|
||||
</li>
|
||||
<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>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='evenrow'>Wasted Ignition</td>
|
||||
<td class='evenrow'><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>
|
||||
<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>
|
||||
<td class='oddrow'>Closed Loop Fueling</td>
|
||||
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||
</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>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='oddrow'>Knock Sensing</td>
|
||||
<td class='oddrow'><i class="fa fa-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||
<td class='oddrow'>Electronic Throttle Body</td>
|
||||
<td class='oddrow'><i class="fa fa-check-circle-o fa-2x" aria-hidden="true"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<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>
|
||||
<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>
|
||||
<td class='evenrow'>Flat Shifting</td>
|
||||
<td class='evenrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='oddrow'>Automatic Transmission Control</td>
|
||||
<td class='oddrow'><i class="fa fa-circle-o 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>
|
||||
<td class='oddrow'>Rotary Engines</td>
|
||||
<td class='oddrow'><i class="fa fa-times fa-2x" aria-hidden="true"></i></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -259,15 +259,7 @@
|
|||
<h6 class="docs-header">Shop</h6>
|
||||
<p>The following rusEFI hardware is currently available on eBay:</p>
|
||||
<div class="docs-example">
|
||||
<table class="u-full-width">
|
||||
<!-- <thead>
|
||||
<tr>
|
||||
<th>picture</th>
|
||||
<th>item</th>
|
||||
<th>description</th>
|
||||
<th>link</th>
|
||||
</tr>
|
||||
</thead> -->
|
||||
<table class="u-half-width">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><img src="images/site/38p_board.jpg" width="250px" alt=""></td>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<html>
|
||||
<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>
|
||||
<body>
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
|
||||
<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>
|
||||
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#define EFI_LAUNCH_CONTROL TRUE
|
||||
|
||||
#define EFI_DYNO_VIEW TRUE
|
||||
|
||||
#define EFI_BOOST_CONTROL TRUE
|
||||
|
||||
#define EFI_IDLE_CONTROL TRUE
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* @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
|
||||
*/
|
||||
|
@ -32,14 +32,23 @@ efitick_t getTimeNowNt(void) {
|
|||
LoggingWithStorage sharedLogger("main");
|
||||
|
||||
extern bool printTriggerDebug;
|
||||
extern bool printTriggerTrace;
|
||||
bool verboseMode = false;
|
||||
|
||||
trigger_type_e focusOnTrigger = TT_UNUSED;
|
||||
|
||||
GTEST_API_ int main(int argc, char **argv) {
|
||||
// printTriggerDebug = true;
|
||||
if (focusOnTrigger != TT_UNUSED) {
|
||||
printTriggerDebug = true;
|
||||
printTriggerTrace = true;
|
||||
}
|
||||
|
||||
// resizeMap();
|
||||
printf("Success 20200510\r\n");
|
||||
printf("Success 20201203\r\n");
|
||||
printAllTriggers();
|
||||
if (focusOnTrigger != TT_UNUSED) {
|
||||
return;
|
||||
}
|
||||
|
||||
testing::InitGoogleTest(&argc, argv);
|
||||
// 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