Technical debt: ENUM_32_BITS #3874

poking the bear
This commit is contained in:
rusefi 2023-06-01 01:56:40 -04:00 committed by rusefillc
parent e4dbd5838b
commit 1908896598
34 changed files with 147 additions and 146 deletions

View File

@ -36,7 +36,7 @@ void setGy6139qmbDefaultEngineConfiguration() {
/** /**
* We treat the trigger as 8-1 toothed wheel * We treat the trigger as 8-1 toothed wheel
*/ */
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 8; engineConfiguration->trigger.customTotalToothCount = 8;
engineConfiguration->trigger.customSkippedToothCount = 1; engineConfiguration->trigger.customSkippedToothCount = 1;

View File

@ -103,7 +103,7 @@ void m73engine() {
engineConfiguration->globalTriggerAngleOffset = 90; engineConfiguration->globalTriggerAngleOffset = 90;
setCrankOperationMode(); setCrankOperationMode();
// todo: that's not right, should be 60/2 without VW // todo: that's not right, should be 60/2 without VW
engineConfiguration->trigger.type = TT_60_2_VW; engineConfiguration->trigger.type = trigger_type_e::TT_60_2_VW;
// this large engine seems to crank at around only 150 RPM? And happily idle at 400RPM? // this large engine seems to crank at around only 150 RPM? And happily idle at 400RPM?
engineConfiguration->cranking.rpm = 350; engineConfiguration->cranking.rpm = 350;

View File

@ -100,7 +100,7 @@ void setEngineBMW_M73_microRusEfi() {
// do I have VR wires flipped? // do I have VR wires flipped?
engineConfiguration->trigger.type = TT_60_2_VW; engineConfiguration->trigger.type = trigger_type_e::TT_60_2_VW;
//set tps_min 891 //set tps_min 891
engineConfiguration->tpsMin = 891; engineConfiguration->tpsMin = 891;

View File

@ -33,7 +33,7 @@ void setCamaro4() {
engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->ignitionMode = IM_WASTED_SPARK;
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_GM_24x; engineConfiguration->trigger.type = trigger_type_e::TT_GM_24x;
engineConfiguration->map.sensor.hwChannel = EFI_ADC_0; // PA0 engineConfiguration->map.sensor.hwChannel = EFI_ADC_0; // PA0

View File

@ -19,7 +19,7 @@ void setCitroenBerlingoTU3JPConfiguration() {
* Base engine setting * Base engine setting
*/ */
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2;
engineConfiguration->globalTriggerAngleOffset = 114; engineConfiguration->globalTriggerAngleOffset = 114;
engineConfiguration->cylindersCount = 4; engineConfiguration->cylindersCount = 4;
engineConfiguration->displacement = 1.360; engineConfiguration->displacement = 1.360;

View File

@ -67,7 +67,7 @@ void setDiscoveryPdm() {
// todo: should this be part of more default configurations? // todo: should this be part of more default configurations?
void setFrankensoConfiguration() { void setFrankensoConfiguration() {
engineConfiguration->trigger.type = TT_ONE_PLUS_ONE; engineConfiguration->trigger.type = trigger_type_e::TT_ONE_PLUS_ONE;
commonFrankensoAnalogInputs(); commonFrankensoAnalogInputs();
@ -230,7 +230,7 @@ void setEtbTestConfiguration() {
engineConfiguration->rpmHardLimit = 30000; engineConfiguration->rpmHardLimit = 30000;
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2;
engineConfiguration->ignitionPins[0] = Gpio::Unassigned; engineConfiguration->ignitionPins[0] = Gpio::Unassigned;
@ -832,7 +832,7 @@ void setRotary() {
engineConfiguration->cylindersCount = 2; engineConfiguration->cylindersCount = 2;
engineConfiguration->firingOrder = FO_1_2; engineConfiguration->firingOrder = FO_1_2;
engineConfiguration->trigger.type = TT_36_2_2_2; engineConfiguration->trigger.type = trigger_type_e::TT_36_2_2_2;
// todo: fix UI to make this possible via TS // todo: fix UI to make this possible via TS
setTwoStrokeOperationMode(); setTwoStrokeOperationMode();

View File

@ -19,7 +19,7 @@
#include "custom_engine.h" #include "custom_engine.h"
void setDodgeNeon1995EngineConfiguration() { void setDodgeNeon1995EngineConfiguration() {
engineConfiguration->trigger.type = TT_DODGE_NEON_1995; engineConfiguration->trigger.type = trigger_type_e::TT_DODGE_NEON_1995;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N; engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
@ -103,7 +103,7 @@ void setDodgeNeon1995EngineConfiguration() {
} }
void setDodgeNeonNGCEngineConfiguration() { void setDodgeNeonNGCEngineConfiguration() {
engineConfiguration->trigger.type = TT_DODGE_NEON_2003_CAM; engineConfiguration->trigger.type = trigger_type_e::TT_DODGE_NEON_2003_CAM;
// set global_trigger_offset_angle 38 // set global_trigger_offset_angle 38
engineConfiguration->globalTriggerAngleOffset = 38; engineConfiguration->globalTriggerAngleOffset = 38;

View File

@ -15,7 +15,7 @@
void setDodgeRam1996() { void setDodgeRam1996() {
setFrankensoConfiguration(); setFrankensoConfiguration();
engineConfiguration->trigger.type = TT_DODGE_RAM; engineConfiguration->trigger.type = trigger_type_e::TT_DODGE_RAM;
engineConfiguration->injector.flow = 243.6; // 23.2lb/h engineConfiguration->injector.flow = 243.6; // 23.2lb/h
engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003; engineConfiguration->map.sensor.type = MT_DODGE_NEON_2003;

View File

@ -39,7 +39,7 @@ void setFordInline6() {
* We treat the trigger as 6/0 toothed wheel * We treat the trigger as 6/0 toothed wheel
*/ */
engineConfiguration->skippedWheelOnCam = true; engineConfiguration->skippedWheelOnCam = true;
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 6; engineConfiguration->trigger.customTotalToothCount = 6;
engineConfiguration->trigger.customSkippedToothCount = 0; engineConfiguration->trigger.customSkippedToothCount = 0;

View File

@ -73,7 +73,7 @@ void setFordAspireEngineConfiguration() {
setSingleCoilDwell(); setSingleCoilDwell();
engineConfiguration->ignitionMode = IM_ONE_COIL; engineConfiguration->ignitionMode = IM_ONE_COIL;
engineConfiguration->trigger.type = TT_FORD_ASPIRE; engineConfiguration->trigger.type = trigger_type_e::TT_FORD_ASPIRE;
engineConfiguration->triggerInputDebugPins[0] = Gpio::C15; engineConfiguration->triggerInputDebugPins[0] = Gpio::C15;

View File

@ -66,7 +66,7 @@ static const uint8_t racingFestivaVeTable[16][16] = {
void setFordEscortGt() { void setFordEscortGt() {
common079721_2351(); common079721_2351();
engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4; engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_DOHC_1_4;
setDensoTODO(config); setDensoTODO(config);

View File

@ -81,7 +81,7 @@ void setSbc() {
setStepperHw(); setStepperHw();
// 8 cylinders one coil HEI trigger // 8 cylinders one coil HEI trigger
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 8; engineConfiguration->trigger.customTotalToothCount = 8;
engineConfiguration->trigger.customSkippedToothCount = 0; engineConfiguration->trigger.customSkippedToothCount = 0;
engineConfiguration->skippedWheelOnCam = true; engineConfiguration->skippedWheelOnCam = true;

View File

@ -24,7 +24,7 @@ static void setDefaultCustomMaps() {
void setHonda600() { void setHonda600() {
engineConfiguration->trigger.type = TT_HONDA_CBR_600; engineConfiguration->trigger.type = trigger_type_e::TT_HONDA_CBR_600;
engineConfiguration->fuelAlgorithm = LM_ALPHA_N; engineConfiguration->fuelAlgorithm = LM_ALPHA_N;
// upside down wiring // upside down wiring

View File

@ -16,7 +16,7 @@ void setHondaK() {
engineConfiguration->displacement = 2.4; engineConfiguration->displacement = 2.4;
engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->firingOrder = FO_1_3_4_2;
engineConfiguration->engineSyncCam = SC_Exhaust_First; engineConfiguration->engineSyncCam = SC_Exhaust_First;
engineConfiguration->trigger.type = TT_HONDA_K_CRANK_12_1; engineConfiguration->trigger.type = trigger_type_e::TT_HONDA_K_CRANK_12_1;
int magic = 12; // note that offset and VVT are related int magic = 12; // note that offset and VVT are related
engineConfiguration->globalTriggerAngleOffset = 675 - magic; engineConfiguration->globalTriggerAngleOffset = 675 - magic;

View File

@ -17,7 +17,7 @@ void setHyundaiPb() {
strcpy(engineConfiguration->engineMake, ENGINE_MAKE_Hyundai); strcpy(engineConfiguration->engineMake, ENGINE_MAKE_Hyundai);
strcpy(engineConfiguration->engineCode, "Gamma"); strcpy(engineConfiguration->engineCode, "Gamma");
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 60; engineConfiguration->trigger.customTotalToothCount = 60;
engineConfiguration->trigger.customSkippedToothCount = 1; engineConfiguration->trigger.customSkippedToothCount = 1;
engineConfiguration->globalTriggerAngleOffset = 90; engineConfiguration->globalTriggerAngleOffset = 90;

View File

@ -73,7 +73,7 @@ static const uint8_t miataNA8_maf_advance_table[16][16] = { {/*0 engineLoad=1.2
#endif #endif
static void commonMiataNa() { static void commonMiataNa() {
engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA; engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_MIATA_NA;
engineConfiguration->engineChartSize = 100; engineConfiguration->engineChartSize = 100;
engineConfiguration->triggerInputPins[0] = Gpio::C6; // 2G YEL/BLU engineConfiguration->triggerInputPins[0] = Gpio::C6; // 2G YEL/BLU

View File

@ -90,7 +90,7 @@ static const uint8_t mapBased16IgnitionTable[16][16] = {
#endif #endif
void miataNAcommonEngineSettings() { void miataNAcommonEngineSettings() {
engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA; engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_MIATA_NA;
engineConfiguration->cylindersCount = 4; engineConfiguration->cylindersCount = 4;
engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->firingOrder = FO_1_3_4_2;
engineConfiguration->compressionRatio = 9.1; engineConfiguration->compressionRatio = 9.1;

View File

@ -251,7 +251,7 @@ static void setCommonMazdaNB() {
engineConfiguration->ignitionMode = IM_WASTED_SPARK; engineConfiguration->ignitionMode = IM_WASTED_SPARK;
// Trigger // Trigger
engineConfiguration->trigger.type = TT_MIATA_VVT; engineConfiguration->trigger.type = trigger_type_e::TT_MIATA_VVT;
engineConfiguration->vvtMode[0] = VVT_MIATA_NB; engineConfiguration->vvtMode[0] = VVT_MIATA_NB;
engineConfiguration->vvtOffsets[0] = 98; engineConfiguration->vvtOffsets[0] = 98;
@ -644,7 +644,7 @@ void setMiataNB2_Proteus_TCU() {
strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA); strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA);
strcpy(engineConfiguration->vehicleName, "TCU test"); strcpy(engineConfiguration->vehicleName, "TCU test");
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 10; engineConfiguration->trigger.customTotalToothCount = 10;
engineConfiguration->trigger.customSkippedToothCount = 0; engineConfiguration->trigger.customSkippedToothCount = 0;
@ -778,7 +778,7 @@ void setMiataNB2_Hellen72() {
void setMiataNB2_Hellen72_36() { void setMiataNB2_Hellen72_36() {
setMiataNB2_Hellen72(); setMiataNB2_Hellen72();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_1; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_36_1;
engineConfiguration->globalTriggerAngleOffset = 76; engineConfiguration->globalTriggerAngleOffset = 76;
} }

View File

@ -13,7 +13,7 @@
#include "nissan_primera.h" #include "nissan_primera.h"
void setNissanPrimeraEngineConfiguration() { void setNissanPrimeraEngineConfiguration() {
engineConfiguration->trigger.type = TT_NISSAN_SR20VE; engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_SR20VE;
engineConfiguration->auxValves[0] = Gpio::E14; engineConfiguration->auxValves[0] = Gpio::E14;
engineConfiguration->auxValves[1] = Gpio::E12; engineConfiguration->auxValves[1] = Gpio::E12;

View File

@ -13,7 +13,7 @@
#define NISSAN_VQ_VVT_OFFSET 157 #define NISSAN_VQ_VVT_OFFSET 157
void setHellen121nissanQR() { void setHellen121nissanQR() {
engineConfiguration->trigger.type = TT_NISSAN_QR25; engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_QR25;
engineConfiguration->cylindersCount = 4; engineConfiguration->cylindersCount = 4;
engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->firingOrder = FO_1_3_4_2;
@ -33,7 +33,7 @@ void setHellen121nissanQR() {
static void setNissanVqEngineConfig() { static void setNissanVqEngineConfig() {
setNissanMAF0031(config); setNissanMAF0031(config);
engineConfiguration->trigger.type = TT_NISSAN_VQ35; engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_VQ35;
engineConfiguration->cylindersCount = 6; engineConfiguration->cylindersCount = 6;
engineConfiguration->firingOrder = FO_1_2_3_4_5_6; engineConfiguration->firingOrder = FO_1_2_3_4_5_6;

View File

@ -26,7 +26,7 @@ void setSachs() {
/** /**
* 50/2 trigger * 50/2 trigger
*/ */
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 50; engineConfiguration->trigger.customTotalToothCount = 50;
engineConfiguration->trigger.customSkippedToothCount = 2; engineConfiguration->trigger.customSkippedToothCount = 2;

View File

@ -16,7 +16,7 @@
#include "mre_meta.h" #include "mre_meta.h"
void setSubaru2003Wrx() { void setSubaru2003Wrx() {
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 5; engineConfiguration->trigger.customTotalToothCount = 5;
engineConfiguration->trigger.customSkippedToothCount = 1; engineConfiguration->trigger.customSkippedToothCount = 1;
@ -36,7 +36,7 @@ void setSubaru2003Wrx() {
* set engine_type 37 * set engine_type 37
*/ */
void setSubaruEJ18_MRE() { void setSubaruEJ18_MRE() {
engineConfiguration->trigger.type = TT_SUBARU_7_WITHOUT_6; engineConfiguration->trigger.type = trigger_type_e::TT_SUBARU_7_WITHOUT_6;
// engineConfiguration->isDoubleSolenoidIdle = true; // engineConfiguration->isDoubleSolenoidIdle = true;
@ -66,7 +66,7 @@ void setSubaruEJ18_MRE() {
void setSubaruEG33Defaults() { void setSubaruEG33Defaults() {
setCamOperationMode(); setCamOperationMode();
engineConfiguration->trigger.type = TT_SUBARU_SVX; engineConfiguration->trigger.type = trigger_type_e::TT_SUBARU_SVX;
engineConfiguration->cylindersCount = 6; engineConfiguration->cylindersCount = 6;
setLeftRightBanksNeedBetterName(); setLeftRightBanksNeedBetterName();

View File

@ -16,7 +16,7 @@
// TEST_ENGINE // TEST_ENGINE
void setTestCamEngineConfiguration() { void setTestCamEngineConfiguration() {
engineConfiguration->trigger.type = TT_ONE_PLUS_ONE; engineConfiguration->trigger.type = trigger_type_e::TT_ONE_PLUS_ONE;
setCamOperationMode(); setCamOperationMode();
engineConfiguration->mafAdcChannel = EFI_ADC_1; engineConfiguration->mafAdcChannel = EFI_ADC_1;
@ -44,7 +44,7 @@ void setTestCamEngineConfiguration() {
void setTestCrankEngineConfiguration() { void setTestCrankEngineConfiguration() {
setTestCamEngineConfiguration(); setTestCamEngineConfiguration();
engineConfiguration->trigger.type = TT_ONE; engineConfiguration->trigger.type = trigger_type_e::TT_ONE;
setCrankOperationMode(); setCrankOperationMode();
// this is related to 'setDefaultBaseEngine' having 'skippedWheelOnCam = true' which is a weird fact by itself // this is related to 'setDefaultBaseEngine' having 'skippedWheelOnCam = true' which is a weird fact by itself
@ -70,7 +70,7 @@ void setTestDcWastegateConfiguration() {
void setTestVVTEngineConfiguration() { void setTestVVTEngineConfiguration() {
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 3; engineConfiguration->trigger.customTotalToothCount = 3;
engineConfiguration->trigger.customSkippedToothCount = 1; engineConfiguration->trigger.customSkippedToothCount = 1;
@ -93,7 +93,7 @@ void setTestEngineIssue366both() {
engineConfiguration->trigger.customTotalToothCount = 2; engineConfiguration->trigger.customTotalToothCount = 2;
engineConfiguration->trigger.customSkippedToothCount = 1; engineConfiguration->trigger.customSkippedToothCount = 1;
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
} }
void setTestEngineIssue366rise() { void setTestEngineIssue366rise() {
@ -104,7 +104,7 @@ void setTestEngineIssue366rise() {
#ifdef HARDWARE_CI #ifdef HARDWARE_CI
void setProteusAnalogPwmTest() { void setProteusAnalogPwmTest() {
// lowest cpu trigger possible // lowest cpu trigger possible
engineConfiguration->trigger.type = TT_ONE; engineConfiguration->trigger.type = trigger_type_e::TT_ONE;
// Disable trigger stim // Disable trigger stim
engineConfiguration->triggerSimulatorPins[0] = Gpio::Unassigned; engineConfiguration->triggerSimulatorPins[0] = Gpio::Unassigned;

View File

@ -73,7 +73,7 @@ void setToyota_2jz_vics() {
common2jz(); common2jz();
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_36_2;
engineConfiguration->triggerInputPins[0] = Gpio::A5; // crank sensor engineConfiguration->triggerInputPins[0] = Gpio::A5; // crank sensor
engineConfiguration->triggerInputPins[1] = Gpio::Unassigned; // cam sensor will he handled by custom vtti code engineConfiguration->triggerInputPins[1] = Gpio::Unassigned; // cam sensor will he handled by custom vtti code

View File

@ -26,7 +26,7 @@ void setVwAba() {
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2;
engineConfiguration->mafAdcChannel = EFI_ADC_1; engineConfiguration->mafAdcChannel = EFI_ADC_1;

View File

@ -16,7 +16,7 @@
static void commonPassatB6() { static void commonPassatB6() {
setCrankOperationMode(); setCrankOperationMode();
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2;
engineConfiguration->vvtMode[0] = VVT_BOSCH_QUICK_START; engineConfiguration->vvtMode[0] = VVT_BOSCH_QUICK_START;
engineConfiguration->map.sensor.type = MT_BOSCH_2_5; engineConfiguration->map.sensor.type = MT_BOSCH_2_5;

View File

@ -79,7 +79,7 @@ void setDefaultBaseEngine() {
engineConfiguration->ALSMaxTPS = 5; engineConfiguration->ALSMaxTPS = 5;
// Trigger // Trigger
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2;
engineConfiguration->globalTriggerAngleOffset = 0; engineConfiguration->globalTriggerAngleOffset = 0;

View File

@ -67,44 +67,44 @@ void Engine::resetEngineSnifferIfInTestMode() {
trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) { trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) {
switch (vvtMode) { switch (vvtMode) {
case VVT_INACTIVE: case VVT_INACTIVE:
return TT_ONE; return trigger_type_e::TT_ONE;
case VVT_2JZ: case VVT_2JZ:
return TT_VVT_JZ; return trigger_type_e::TT_VVT_JZ;
case VVT_MIATA_NB: case VVT_MIATA_NB:
return TT_VVT_MIATA_NB; return trigger_type_e::TT_VVT_MIATA_NB;
case VVT_BOSCH_QUICK_START: case VVT_BOSCH_QUICK_START:
return TT_VVT_BOSCH_QUICK_START; return trigger_type_e::TT_VVT_BOSCH_QUICK_START;
case VVT_HONDA_K_EXHAUST: case VVT_HONDA_K_EXHAUST:
return TT_HONDA_K_CAM_4_1; return trigger_type_e::TT_HONDA_K_CAM_4_1;
case VVT_HONDA_K_INTAKE: case VVT_HONDA_K_INTAKE:
case VVT_FIRST_HALF: case VVT_FIRST_HALF:
case VVT_SECOND_HALF: case VVT_SECOND_HALF:
case VVT_MAP_V_TWIN: case VVT_MAP_V_TWIN:
return TT_ONE; return trigger_type_e::TT_ONE;
case VVT_FORD_ST170: case VVT_FORD_ST170:
return TT_FORD_ST170; return trigger_type_e::TT_FORD_ST170;
case VVT_BARRA_3_PLUS_1: case VVT_BARRA_3_PLUS_1:
return TT_VVT_BARRA_3_PLUS_1; return trigger_type_e::TT_VVT_BARRA_3_PLUS_1;
case VVT_FORD_COYOTE: case VVT_FORD_COYOTE:
return TT_VVT_FORD_COYOTE; return trigger_type_e::TT_VVT_FORD_COYOTE;
case VVT_MAZDA_SKYACTIV: case VVT_MAZDA_SKYACTIV:
return TT_VVT_MAZDA_SKYACTIV; return trigger_type_e::TT_VVT_MAZDA_SKYACTIV;
case VVT_NISSAN_VQ: case VVT_NISSAN_VQ:
return TT_VVT_NISSAN_VQ35; return trigger_type_e::TT_VVT_NISSAN_VQ35;
case VVT_TOYOTA_4_1: case VVT_TOYOTA_4_1:
return TT_VVT_TOYOTA_4_1; return trigger_type_e::TT_VVT_TOYOTA_4_1;
case VVT_MITSUBISHI_3A92: case VVT_MITSUBISHI_3A92:
return TT_VVT_MITSUBISHI_3A92; return trigger_type_e::TT_VVT_MITSUBISHI_3A92;
case VVT_MITSUBISHI_6G75: case VVT_MITSUBISHI_6G75:
case VVT_NISSAN_MR: case VVT_NISSAN_MR:
return TT_NISSAN_MR18_CAM_VVT; return trigger_type_e::TT_NISSAN_MR18_CAM_VVT;
case VVT_MITSUBISHI_4G9x: case VVT_MITSUBISHI_4G9x:
return TT_MITSU_4G9x_CAM; return trigger_type_e::TT_MITSU_4G9x_CAM;
case VVT_MITSUBISHI_4G63: case VVT_MITSUBISHI_4G63:
return TT_MITSU_4G63_CAM; return trigger_type_e::TT_MITSU_4G63_CAM;
default: default:
firmwareError(ObdCode::OBD_PCM_Processor_Fault, "getVvtTriggerType for %s", getVvt_mode_e(vvtMode)); firmwareError(ObdCode::OBD_PCM_Processor_Fault, "getVvtTriggerType for %s", getVvt_mode_e(vvtMode));
return TT_ONE; // we have to return something for the sake of -Werror=return-type return trigger_type_e::TT_ONE; // we have to return something for the sake of -Werror=return-type
} }
} }

View File

@ -306,8 +306,9 @@ typedef enum __attribute__ ((__packed__)) {
/** /**
* @see http://rusefi.com/wiki/index.php?title=Manual:Software:Trigger * @see http://rusefi.com/wiki/index.php?title=Manual:Software:Trigger
* TriggerProcessor.java has this "trigger_type_e" name hard-coded!
*/ */
typedef enum { enum class trigger_type_e : uint32_t {
TT_TOOTHED_WHEEL = 0, TT_TOOTHED_WHEEL = 0,
TT_FORD_ASPIRE = 1, TT_FORD_ASPIRE = 1,
@ -435,7 +436,7 @@ typedef enum {
// java code generator handles this value in a special way // java code generator handles this value in a special way
// also looks like 2 enums are either 1 byte or 4 bytes // also looks like 2 enums are either 1 byte or 4 bytes
Force_4_bytes_size_trigger_type = 70000, Force_4_bytes_size_trigger_type = 70000,
} trigger_type_e; // TriggerProcessor.java has this "trigger_type_e" name hard-coded! };
typedef enum { typedef enum {
TS_14_0 = 0, TS_14_0 = 0,

View File

@ -70,12 +70,12 @@ operation_mode_e lookupOperationMode() {
// this is related to 'knownOperationMode' flag // this is related to 'knownOperationMode' flag
static bool doesTriggerImplyOperationMode(trigger_type_e type) { static bool doesTriggerImplyOperationMode(trigger_type_e type) {
switch (type) { switch (type) {
case TT_TOOTHED_WHEEL: case trigger_type_e::TT_TOOTHED_WHEEL:
case TT_ONE: case trigger_type_e::TT_ONE:
case TT_3_1_CAM: case trigger_type_e::TT_3_1_CAM:
case TT_36_2_2_2: // TODO: should this one be in this list? case trigger_type_e::TT_36_2_2_2: // TODO: should this one be in this list?
case TT_TOOTHED_WHEEL_60_2: case trigger_type_e::TT_TOOTHED_WHEEL_60_2:
case TT_TOOTHED_WHEEL_36_1: case trigger_type_e::TT_TOOTHED_WHEEL_36_1:
// These modes could be either cam or crank speed // These modes could be either cam or crank speed
return false; return false;
default: default:

View File

@ -419,161 +419,161 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio
shapeDefinitionError = false; shapeDefinitionError = false;
switch (triggerType.type) { switch (triggerType.type) {
case TT_TOOTHED_WHEEL: case trigger_type_e::TT_TOOTHED_WHEEL:
initializeSkippedToothTrigger(this, triggerType.customTotalToothCount, initializeSkippedToothTrigger(this, triggerType.customTotalToothCount,
triggerType.customSkippedToothCount, triggerOperationMode, SyncEdge::RiseOnly); triggerType.customSkippedToothCount, triggerOperationMode, SyncEdge::RiseOnly);
break; break;
case TT_MAZDA_MIATA_NA: case trigger_type_e::TT_MAZDA_MIATA_NA:
initializeMazdaMiataNaShape(this); initializeMazdaMiataNaShape(this);
break; break;
case TT_MAZDA_MIATA_VVT_TEST: case trigger_type_e::TT_MAZDA_MIATA_VVT_TEST:
initializeMazdaMiataVVtTestShape(this); initializeMazdaMiataVVtTestShape(this);
break; break;
case TT_SUZUKI_G13B: case trigger_type_e::TT_SUZUKI_G13B:
initializeSuzukiG13B(this); initializeSuzukiG13B(this);
break; break;
case TT_FORD_TFI_PIP: case trigger_type_e::TT_FORD_TFI_PIP:
configureFordPip(this); configureFordPip(this);
break; break;
case TT_FORD_ST170: case trigger_type_e::TT_FORD_ST170:
configureFordST170(this); configureFordST170(this);
break; break;
case TT_VVT_MIATA_NB: case trigger_type_e::TT_VVT_MIATA_NB:
initializeMazdaMiataVVtCamShape(this); initializeMazdaMiataVVtCamShape(this);
break; break;
case TT_RENIX_66_2_2_2: case trigger_type_e::TT_RENIX_66_2_2_2:
initializeRenix66_2_2(this); initializeRenix66_2_2(this);
break; break;
case TT_RENIX_44_2_2: case trigger_type_e::TT_RENIX_44_2_2:
initializeRenix44_2_2(this); initializeRenix44_2_2(this);
break; break;
case TT_MIATA_VVT: case trigger_type_e::TT_MIATA_VVT:
initializeMazdaMiataNb2Crank(this); initializeMazdaMiataNb2Crank(this);
break; break;
case TT_DODGE_NEON_1995: case trigger_type_e::TT_DODGE_NEON_1995:
case TT_DODGE_NEON_1995_ONLY_CRANK: case trigger_type_e::TT_DODGE_NEON_1995_ONLY_CRANK:
configureNeon1995TriggerWaveformOnlyCrank(this); configureNeon1995TriggerWaveformOnlyCrank(this);
break; break;
case TT_DODGE_STRATUS: case trigger_type_e::TT_DODGE_STRATUS:
configureDodgeStratusTriggerWaveform(this); configureDodgeStratusTriggerWaveform(this);
break; break;
case TT_DODGE_NEON_2003_CAM: case trigger_type_e::TT_DODGE_NEON_2003_CAM:
configureNeon2003TriggerWaveformCam(this); configureNeon2003TriggerWaveformCam(this);
break; break;
case TT_DODGE_NEON_2003_CRANK: case trigger_type_e::TT_DODGE_NEON_2003_CRANK:
configureNeon2003TriggerWaveformCam(this); configureNeon2003TriggerWaveformCam(this);
// configureNeon2003TriggerWaveformCrank(triggerShape); // configureNeon2003TriggerWaveformCrank(triggerShape);
break; break;
case TT_FORD_ASPIRE: case trigger_type_e::TT_FORD_ASPIRE:
configureFordAspireTriggerWaveform(this); configureFordAspireTriggerWaveform(this);
break; break;
case TT_VVT_NISSAN_VQ35: case trigger_type_e::TT_VVT_NISSAN_VQ35:
initializeNissanVQvvt(this); initializeNissanVQvvt(this);
break; break;
case TT_VVT_MITSUBISHI_3A92: case trigger_type_e::TT_VVT_MITSUBISHI_3A92:
initializeVvt3A92(this); initializeVvt3A92(this);
break; break;
case TT_VVT_TOYOTA_4_1: case trigger_type_e::TT_VVT_TOYOTA_4_1:
initializeSkippedToothTrigger(this, 4, 1, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 4, 1, triggerOperationMode, SyncEdge::RiseOnly);
setTriggerSynchronizationGap3(/*gapIndex*/0, /*from*/1.60, 2.40); setTriggerSynchronizationGap3(/*gapIndex*/0, /*from*/1.60, 2.40);
setTriggerSynchronizationGap3(/*gapIndex*/1, /*from*/0.75, 1.25); setTriggerSynchronizationGap3(/*gapIndex*/1, /*from*/0.75, 1.25);
break; break;
case TT_VVT_MITSUBISHI_6G75: case trigger_type_e::TT_VVT_MITSUBISHI_6G75:
case TT_NISSAN_QR25: case trigger_type_e::TT_NISSAN_QR25:
initializeNissanQR25crank(this); initializeNissanQR25crank(this);
break; break;
case TT_NISSAN_VQ30: case trigger_type_e::TT_NISSAN_VQ30:
initializeNissanVQ30cam(this); initializeNissanVQ30cam(this);
break; break;
case TT_NISSAN_VQ35: case trigger_type_e::TT_NISSAN_VQ35:
initializeNissanVQ35crank(this); initializeNissanVQ35crank(this);
break; break;
case TT_NISSAN_MR18_CRANK: case trigger_type_e::TT_NISSAN_MR18_CRANK:
initializeNissanMR18crank(this); initializeNissanMR18crank(this);
break; break;
case TT_NISSAN_MR18_CAM_VVT: case trigger_type_e::TT_NISSAN_MR18_CAM_VVT:
initializeNissanMRvvt(this); initializeNissanMRvvt(this);
break; break;
case TT_KAWA_KX450F: case trigger_type_e::TT_KAWA_KX450F:
configureKawaKX450F(this); configureKawaKX450F(this);
break; break;
case TT_SKODA_FAVORIT: case trigger_type_e::TT_SKODA_FAVORIT:
setSkodaFavorit(this); setSkodaFavorit(this);
break; break;
case TT_GM_60_2_2_2: case trigger_type_e::TT_GM_60_2_2_2:
configureGm60_2_2_2(this); configureGm60_2_2_2(this);
break; break;
case TT_GM_7X: case trigger_type_e::TT_GM_7X:
configureGmTriggerWaveform(this); configureGmTriggerWaveform(this);
break; break;
case TT_MAZDA_DOHC_1_4: case trigger_type_e::TT_MAZDA_DOHC_1_4:
configureMazdaProtegeLx(this); configureMazdaProtegeLx(this);
break; break;
case TT_ONE_PLUS_ONE: case trigger_type_e::TT_ONE_PLUS_ONE:
configureOnePlusOne(this); configureOnePlusOne(this);
break; break;
case TT_3_1_CAM: case trigger_type_e::TT_3_1_CAM:
configure3_1_cam(this); configure3_1_cam(this);
break; break;
case TT_MERCEDES_2_SEGMENT: case trigger_type_e::TT_MERCEDES_2_SEGMENT:
setMercedesTwoSegment(this); setMercedesTwoSegment(this);
break; break;
case TT_ONE: case trigger_type_e::TT_ONE:
initializeSkippedToothTrigger(this, 1, 0, triggerOperationMode, SyncEdge::Rise); initializeSkippedToothTrigger(this, 1, 0, triggerOperationMode, SyncEdge::Rise);
break; break;
case TT_MAZDA_SOHC_4: case trigger_type_e::TT_MAZDA_SOHC_4:
configureMazdaProtegeSOHC(this); configureMazdaProtegeSOHC(this);
break; break;
case TT_DAIHATSU: case trigger_type_e::TT_DAIHATSU:
configureDaihatsu4(this); configureDaihatsu4(this);
break; break;
case TT_VVT_JZ: case trigger_type_e::TT_VVT_JZ:
initializeSkippedToothTrigger(this, 3, 0, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 3, 0, triggerOperationMode, SyncEdge::RiseOnly);
break; break;
case TT_36_2_1_1: case trigger_type_e::TT_36_2_1_1:
initialize36_2_1_1(this); initialize36_2_1_1(this);
break; break;
case TT_36_2_1: case trigger_type_e::TT_36_2_1:
initialize36_2_1(this); initialize36_2_1(this);
break; break;
case TT_TOOTHED_WHEEL_32_2: case trigger_type_e::TT_TOOTHED_WHEEL_32_2:
initializeSkippedToothTrigger(this, 32, 2, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 32, 2, triggerOperationMode, SyncEdge::RiseOnly);
// todo: why is this 32/2 asking for third gap while 60/2 is happy with just two gaps? // todo: why is this 32/2 asking for third gap while 60/2 is happy with just two gaps?
// method above sets second gap, here we add third // method above sets second gap, here we add third
@ -581,146 +581,146 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio
setThirdTriggerSynchronizationGap(1); setThirdTriggerSynchronizationGap(1);
break; break;
case TT_TOOTHED_WHEEL_60_2: case trigger_type_e::TT_TOOTHED_WHEEL_60_2:
initializeSkippedToothTrigger(this, 60, 2, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 60, 2, triggerOperationMode, SyncEdge::RiseOnly);
break; break;
case TT_TOOTHED_WHEEL_36_2: case trigger_type_e::TT_TOOTHED_WHEEL_36_2:
initializeSkippedToothTrigger(this, 36, 2, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 36, 2, triggerOperationMode, SyncEdge::RiseOnly);
setTriggerSynchronizationGap3(/*gapIndex*/0, /*from*/1.6, 3.5); setTriggerSynchronizationGap3(/*gapIndex*/0, /*from*/1.6, 3.5);
setTriggerSynchronizationGap3(/*gapIndex*/1, /*from*/0.7, 1.3); // second gap is not required to synch on perfect signal but is needed to handle to reject cranking transition noise setTriggerSynchronizationGap3(/*gapIndex*/1, /*from*/0.7, 1.3); // second gap is not required to synch on perfect signal but is needed to handle to reject cranking transition noise
break; break;
case TT_60_2_VW: case trigger_type_e::TT_60_2_VW:
setVwConfiguration(this); setVwConfiguration(this);
break; break;
case TT_TOOTHED_WHEEL_36_1: case trigger_type_e::TT_TOOTHED_WHEEL_36_1:
initializeSkippedToothTrigger(this, 36, 1, triggerOperationMode, SyncEdge::RiseOnly); initializeSkippedToothTrigger(this, 36, 1, triggerOperationMode, SyncEdge::RiseOnly);
break; break;
case TT_VVT_BOSCH_QUICK_START: case trigger_type_e::TT_VVT_BOSCH_QUICK_START:
configureQuickStartSenderWheel(this); configureQuickStartSenderWheel(this);
break; break;
case TT_VVT_BARRA_3_PLUS_1: case trigger_type_e::TT_VVT_BARRA_3_PLUS_1:
configureBarra3plus1cam(this); configureBarra3plus1cam(this);
break; break;
case TT_HONDA_K_CAM_4_1: case trigger_type_e::TT_HONDA_K_CAM_4_1:
configureHondaK_4_1(this); configureHondaK_4_1(this);
break; break;
case TT_HONDA_K_CRANK_12_1: case trigger_type_e::TT_HONDA_K_CRANK_12_1:
configureHondaK_12_1(this); configureHondaK_12_1(this);
break; break;
case TT_SUBARU_EZ30: case trigger_type_e::TT_SUBARU_EZ30:
initializeSubaruEZ30(this); initializeSubaruEZ30(this);
break; break;
case TT_VVT_MAZDA_SKYACTIV: case trigger_type_e::TT_VVT_MAZDA_SKYACTIV:
initializeMazdaSkyactivCam(this); initializeMazdaSkyactivCam(this);
break; break;
case TT_BENELLI_TRE: case trigger_type_e::TT_BENELLI_TRE:
configureBenelli(this); configureBenelli(this);
break; break;
case TT_MITSU_4G63_CRANK: case trigger_type_e::TT_MITSU_4G63_CRANK:
initializeMitsubishi4gSymmetricalCrank(this); initializeMitsubishi4gSymmetricalCrank(this);
break; break;
case TT_VVT_FORD_COYOTE: case trigger_type_e::TT_VVT_FORD_COYOTE:
configureFordCoyote(this); configureFordCoyote(this);
break; break;
case TT_UNUSED_11: case trigger_type_e::TT_UNUSED_11:
case TT_UNUSED_75: case trigger_type_e::TT_UNUSED_75:
case TT_UNUSED_77: case trigger_type_e::TT_UNUSED_77:
case TT_UNUSED_78: case trigger_type_e::TT_UNUSED_78:
case TT_MITSU_4G63_CAM: case trigger_type_e::TT_MITSU_4G63_CAM:
initializeMitsubishi4g63Cam(this); initializeMitsubishi4g63Cam(this);
break; break;
case TT_MITSU_4G9x_CAM: case trigger_type_e::TT_MITSU_4G9x_CAM:
initializeMitsubishi4g9xCam(this); initializeMitsubishi4g9xCam(this);
break; break;
case TT_1_16: case trigger_type_e::TT_1_16:
configureOnePlus16(this); configureOnePlus16(this);
break; break;
case TT_HONDA_CBR_600: case trigger_type_e::TT_HONDA_CBR_600:
configureHondaCbr600(this); configureHondaCbr600(this);
break; break;
case TT_CHRYSLER_NGC_36_2_2: case trigger_type_e::TT_CHRYSLER_NGC_36_2_2:
configureChryslerNGC_36_2_2(this); configureChryslerNGC_36_2_2(this);
break; break;
case TT_DODGE_RAM: case trigger_type_e::TT_DODGE_RAM:
initDodgeRam(this); initDodgeRam(this);
break; break;
case TT_JEEP_4_CYL: case trigger_type_e::TT_JEEP_4_CYL:
initJeep_XJ_4cyl_2500(this); initJeep_XJ_4cyl_2500(this);
break; break;
case TT_JEEP_18_2_2_2: case trigger_type_e::TT_JEEP_18_2_2_2:
initJeep18_2_2_2(this); initJeep18_2_2_2(this);
break; break;
case TT_SUBARU_7_6: case trigger_type_e::TT_SUBARU_7_6:
initializeSubaru7_6(this); initializeSubaru7_6(this);
break; break;
case TT_36_2_2_2: case trigger_type_e::TT_36_2_2_2:
initialize36_2_2_2(this); initialize36_2_2_2(this);
break; break;
case TT_2JZ_3_34: case trigger_type_e::TT_2JZ_3_34:
initialize2jzGE3_34_simulation_shape(this); initialize2jzGE3_34_simulation_shape(this);
break; break;
case TT_12_TOOTH_CRANK: case trigger_type_e::TT_12_TOOTH_CRANK:
configure12ToothCrank(this); configure12ToothCrank(this);
break; break;
case TT_NISSAN_SR20VE: case trigger_type_e::TT_NISSAN_SR20VE:
initializeNissanSR20VE_4(this); initializeNissanSR20VE_4(this);
break; break;
case TT_ROVER_K: case trigger_type_e::TT_ROVER_K:
initializeRoverK(this); initializeRoverK(this);
break; break;
case TT_FIAT_IAW_P8: case trigger_type_e::TT_FIAT_IAW_P8:
configureFiatIAQ_P8(this); configureFiatIAQ_P8(this);
break; break;
case TT_TRI_TACH: case trigger_type_e::TT_TRI_TACH:
configureTriTach(this); configureTriTach(this);
break; break;
case TT_GM_24x: case trigger_type_e::TT_GM_24x:
initGmLS24_5deg(this); initGmLS24_5deg(this);
break; break;
case TT_GM_24x_2: case trigger_type_e::TT_GM_24x_2:
initGmLS24_3deg(this); initGmLS24_3deg(this);
break; break;
case TT_SUBARU_7_WITHOUT_6: case trigger_type_e::TT_SUBARU_7_WITHOUT_6:
initializeSubaruOnly7(this); initializeSubaruOnly7(this);
break; break;
case TT_SUBARU_SVX: case trigger_type_e::TT_SUBARU_SVX:
initializeSubaru_SVX(this); initializeSubaru_SVX(this);
break; break;
case TT_SUBARU_SVX_CRANK_1: case trigger_type_e::TT_SUBARU_SVX_CRANK_1:
initializeSubaru_SVX(this); initializeSubaru_SVX(this);
break; break;
case TT_SUBARU_SVX_CAM_VVT: case trigger_type_e::TT_SUBARU_SVX_CAM_VVT:
initializeSubaru_SVX(this); initializeSubaru_SVX(this);
break; break;

View File

@ -885,7 +885,7 @@ void triggerInfo(void) {
getTrigger_type_e(engineConfiguration->trigger.type), engineConfiguration->trigger.type, getTrigger_type_e(engineConfiguration->trigger.type), engineConfiguration->trigger.type,
getSyncEdge(TRIGGER_WAVEFORM(syncEdge)), TRIGGER_WAVEFORM(tdcPosition)); getSyncEdge(TRIGGER_WAVEFORM(syncEdge)), TRIGGER_WAVEFORM(tdcPosition));
if (engineConfiguration->trigger.type == TT_TOOTHED_WHEEL) { if (engineConfiguration->trigger.type == trigger_type_e::TT_TOOTHED_WHEEL) {
efiPrintf("total %d/skipped %d", engineConfiguration->trigger.customTotalToothCount, efiPrintf("total %d/skipped %d", engineConfiguration->trigger.customTotalToothCount,
engineConfiguration->trigger.customSkippedToothCount); engineConfiguration->trigger.customSkippedToothCount);
} }

View File

@ -643,7 +643,7 @@ bool TriggerDecoderBase::isSyncPoint(const TriggerWaveform& triggerShape, trigge
// Instead of detecting short/long, this logic first checks for "maybe short" and "maybe long", // Instead of detecting short/long, this logic first checks for "maybe short" and "maybe long",
// then simply tests longer vs. shorter instead of absolute value. // then simply tests longer vs. shorter instead of absolute value.
if (triggerType == TT_MIATA_VVT) { if (triggerType == trigger_type_e::TT_MIATA_VVT) {
auto secondGap = (float)toothDurations[1] / toothDurations[2]; auto secondGap = (float)toothDurations[1] / toothDurations[2];
bool currentGapOk = isInRange(triggerShape.syncronizationRatioFrom[0], (float)triggerSyncGapRatio, triggerShape.syncronizationRatioTo[0]); bool currentGapOk = isInRange(triggerShape.syncronizationRatioFrom[0], (float)triggerSyncGapRatio, triggerShape.syncronizationRatioTo[0]);

View File

@ -18,7 +18,7 @@ TEST(Actuators, Tachometer) {
engineConfiguration->tachPulseDurationAsDutyCycle = true; engineConfiguration->tachPulseDurationAsDutyCycle = true;
// Set predictable trigger settings // Set predictable trigger settings
engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL;
engineConfiguration->trigger.customTotalToothCount = 8; engineConfiguration->trigger.customTotalToothCount = 8;
engineConfiguration->trigger.customSkippedToothCount = 0; engineConfiguration->trigger.customSkippedToothCount = 0;
setCamOperationMode(); setCamOperationMode();