From 190889659830e233d86af95e79ba54993e6bdf56 Mon Sep 17 00:00:00 2001 From: rusefi Date: Thu, 1 Jun 2023 01:56:40 -0400 Subject: [PATCH] Technical debt: ENUM_32_BITS #3874 poking the bear --- firmware/config/engines/GY6_139QMB.cpp | 2 +- firmware/config/engines/bmw_m73.cpp | 2 +- firmware/config/engines/bmw_m73_mre.cpp | 2 +- .../config/engines/chevrolet_camaro_4.cpp | 2 +- .../config/engines/citroenBerlingoTU3JP.cpp | 2 +- firmware/config/engines/custom_engine.cpp | 6 +- firmware/config/engines/dodge_neon.cpp | 4 +- firmware/config/engines/dodge_ram.cpp | 2 +- .../config/engines/ford_1995_inline_6.cpp | 2 +- firmware/config/engines/ford_aspire.cpp | 2 +- firmware/config/engines/ford_festiva.cpp | 2 +- firmware/config/engines/gm_sbc.cpp | 2 +- firmware/config/engines/honda_600.cpp | 2 +- firmware/config/engines/honda_k_dbc.cpp | 2 +- firmware/config/engines/hyundai.cpp | 2 +- firmware/config/engines/mazda_miata.cpp | 2 +- firmware/config/engines/mazda_miata_1_6.cpp | 2 +- firmware/config/engines/mazda_miata_vvt.cpp | 6 +- firmware/config/engines/nissan_primera.cpp | 2 +- firmware/config/engines/nissan_vq.cpp | 4 +- firmware/config/engines/sachs.cpp | 2 +- firmware/config/engines/subaru.cpp | 6 +- firmware/config/engines/test_engine.cpp | 10 +- firmware/config/engines/toyota_jzs147.cpp | 2 +- firmware/config/engines/vw.cpp | 2 +- firmware/config/engines/vw_b6.cpp | 2 +- .../algo/defaults/default_base_engine.cpp | 2 +- firmware/controllers/algo/engine.cpp | 34 ++-- firmware/controllers/algo/engine_types.h | 5 +- .../engine_cycle/rpm_calculator.cpp | 12 +- .../trigger/decoders/trigger_structure.cpp | 158 +++++++++--------- .../controllers/trigger/trigger_central.cpp | 2 +- .../controllers/trigger/trigger_decoder.cpp | 2 +- unit_tests/tests/actuators/test_tacho.cpp | 2 +- 34 files changed, 147 insertions(+), 146 deletions(-) diff --git a/firmware/config/engines/GY6_139QMB.cpp b/firmware/config/engines/GY6_139QMB.cpp index 98b0ed05f5..b1e63cb6b6 100644 --- a/firmware/config/engines/GY6_139QMB.cpp +++ b/firmware/config/engines/GY6_139QMB.cpp @@ -36,7 +36,7 @@ void setGy6139qmbDefaultEngineConfiguration() { /** * 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.customSkippedToothCount = 1; diff --git a/firmware/config/engines/bmw_m73.cpp b/firmware/config/engines/bmw_m73.cpp index 16401378ad..9cb616ae92 100644 --- a/firmware/config/engines/bmw_m73.cpp +++ b/firmware/config/engines/bmw_m73.cpp @@ -103,7 +103,7 @@ void m73engine() { engineConfiguration->globalTriggerAngleOffset = 90; setCrankOperationMode(); // 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? engineConfiguration->cranking.rpm = 350; diff --git a/firmware/config/engines/bmw_m73_mre.cpp b/firmware/config/engines/bmw_m73_mre.cpp index 6a4ee4544d..86e5d72bd5 100644 --- a/firmware/config/engines/bmw_m73_mre.cpp +++ b/firmware/config/engines/bmw_m73_mre.cpp @@ -100,7 +100,7 @@ void setEngineBMW_M73_microRusEfi() { // 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 engineConfiguration->tpsMin = 891; diff --git a/firmware/config/engines/chevrolet_camaro_4.cpp b/firmware/config/engines/chevrolet_camaro_4.cpp index 08970f4de5..893cafb461 100644 --- a/firmware/config/engines/chevrolet_camaro_4.cpp +++ b/firmware/config/engines/chevrolet_camaro_4.cpp @@ -33,7 +33,7 @@ void setCamaro4() { engineConfiguration->ignitionMode = IM_WASTED_SPARK; setCrankOperationMode(); - engineConfiguration->trigger.type = TT_GM_24x; + engineConfiguration->trigger.type = trigger_type_e::TT_GM_24x; engineConfiguration->map.sensor.hwChannel = EFI_ADC_0; // PA0 diff --git a/firmware/config/engines/citroenBerlingoTU3JP.cpp b/firmware/config/engines/citroenBerlingoTU3JP.cpp index 05d78457a1..930282f29e 100644 --- a/firmware/config/engines/citroenBerlingoTU3JP.cpp +++ b/firmware/config/engines/citroenBerlingoTU3JP.cpp @@ -19,7 +19,7 @@ void setCitroenBerlingoTU3JPConfiguration() { * Base engine setting */ setCrankOperationMode(); - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2; engineConfiguration->globalTriggerAngleOffset = 114; engineConfiguration->cylindersCount = 4; engineConfiguration->displacement = 1.360; diff --git a/firmware/config/engines/custom_engine.cpp b/firmware/config/engines/custom_engine.cpp index 335f1b1fbf..119f237db4 100644 --- a/firmware/config/engines/custom_engine.cpp +++ b/firmware/config/engines/custom_engine.cpp @@ -67,7 +67,7 @@ void setDiscoveryPdm() { // todo: should this be part of more default configurations? void setFrankensoConfiguration() { - engineConfiguration->trigger.type = TT_ONE_PLUS_ONE; + engineConfiguration->trigger.type = trigger_type_e::TT_ONE_PLUS_ONE; commonFrankensoAnalogInputs(); @@ -230,7 +230,7 @@ void setEtbTestConfiguration() { engineConfiguration->rpmHardLimit = 30000; 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; @@ -832,7 +832,7 @@ void setRotary() { engineConfiguration->cylindersCount = 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 setTwoStrokeOperationMode(); diff --git a/firmware/config/engines/dodge_neon.cpp b/firmware/config/engines/dodge_neon.cpp index fa6a73f448..fa9c33273d 100644 --- a/firmware/config/engines/dodge_neon.cpp +++ b/firmware/config/engines/dodge_neon.cpp @@ -19,7 +19,7 @@ #include "custom_engine.h" void setDodgeNeon1995EngineConfiguration() { - engineConfiguration->trigger.type = TT_DODGE_NEON_1995; + engineConfiguration->trigger.type = trigger_type_e::TT_DODGE_NEON_1995; engineConfiguration->fuelAlgorithm = LM_ALPHA_N; @@ -103,7 +103,7 @@ void setDodgeNeon1995EngineConfiguration() { } 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 engineConfiguration->globalTriggerAngleOffset = 38; diff --git a/firmware/config/engines/dodge_ram.cpp b/firmware/config/engines/dodge_ram.cpp index 0305f17a01..47ec6fc951 100644 --- a/firmware/config/engines/dodge_ram.cpp +++ b/firmware/config/engines/dodge_ram.cpp @@ -15,7 +15,7 @@ void setDodgeRam1996() { 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->map.sensor.type = MT_DODGE_NEON_2003; diff --git a/firmware/config/engines/ford_1995_inline_6.cpp b/firmware/config/engines/ford_1995_inline_6.cpp index fa63ee8b34..ef04626ec9 100644 --- a/firmware/config/engines/ford_1995_inline_6.cpp +++ b/firmware/config/engines/ford_1995_inline_6.cpp @@ -39,7 +39,7 @@ void setFordInline6() { * We treat the trigger as 6/0 toothed wheel */ engineConfiguration->skippedWheelOnCam = true; - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL; engineConfiguration->trigger.customTotalToothCount = 6; engineConfiguration->trigger.customSkippedToothCount = 0; diff --git a/firmware/config/engines/ford_aspire.cpp b/firmware/config/engines/ford_aspire.cpp index 0072d8362e..ccfe67e620 100644 --- a/firmware/config/engines/ford_aspire.cpp +++ b/firmware/config/engines/ford_aspire.cpp @@ -73,7 +73,7 @@ void setFordAspireEngineConfiguration() { setSingleCoilDwell(); 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; diff --git a/firmware/config/engines/ford_festiva.cpp b/firmware/config/engines/ford_festiva.cpp index b6417c1c97..94892a24d4 100644 --- a/firmware/config/engines/ford_festiva.cpp +++ b/firmware/config/engines/ford_festiva.cpp @@ -66,7 +66,7 @@ static const uint8_t racingFestivaVeTable[16][16] = { void setFordEscortGt() { common079721_2351(); - engineConfiguration->trigger.type = TT_MAZDA_DOHC_1_4; + engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_DOHC_1_4; setDensoTODO(config); diff --git a/firmware/config/engines/gm_sbc.cpp b/firmware/config/engines/gm_sbc.cpp index 6cdee61ae0..21e1fde922 100644 --- a/firmware/config/engines/gm_sbc.cpp +++ b/firmware/config/engines/gm_sbc.cpp @@ -81,7 +81,7 @@ void setSbc() { setStepperHw(); // 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.customSkippedToothCount = 0; engineConfiguration->skippedWheelOnCam = true; diff --git a/firmware/config/engines/honda_600.cpp b/firmware/config/engines/honda_600.cpp index 0a825ba3b4..8c060ddce7 100644 --- a/firmware/config/engines/honda_600.cpp +++ b/firmware/config/engines/honda_600.cpp @@ -24,7 +24,7 @@ static void setDefaultCustomMaps() { void setHonda600() { - engineConfiguration->trigger.type = TT_HONDA_CBR_600; + engineConfiguration->trigger.type = trigger_type_e::TT_HONDA_CBR_600; engineConfiguration->fuelAlgorithm = LM_ALPHA_N; // upside down wiring diff --git a/firmware/config/engines/honda_k_dbc.cpp b/firmware/config/engines/honda_k_dbc.cpp index 258e5af418..b6e913eac3 100644 --- a/firmware/config/engines/honda_k_dbc.cpp +++ b/firmware/config/engines/honda_k_dbc.cpp @@ -16,7 +16,7 @@ void setHondaK() { engineConfiguration->displacement = 2.4; engineConfiguration->firingOrder = FO_1_3_4_2; 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 engineConfiguration->globalTriggerAngleOffset = 675 - magic; diff --git a/firmware/config/engines/hyundai.cpp b/firmware/config/engines/hyundai.cpp index 51f91c0fce..56d7c2a5ad 100644 --- a/firmware/config/engines/hyundai.cpp +++ b/firmware/config/engines/hyundai.cpp @@ -17,7 +17,7 @@ void setHyundaiPb() { strcpy(engineConfiguration->engineMake, ENGINE_MAKE_Hyundai); 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.customSkippedToothCount = 1; engineConfiguration->globalTriggerAngleOffset = 90; diff --git a/firmware/config/engines/mazda_miata.cpp b/firmware/config/engines/mazda_miata.cpp index 9f1376f210..f8665e558d 100644 --- a/firmware/config/engines/mazda_miata.cpp +++ b/firmware/config/engines/mazda_miata.cpp @@ -73,7 +73,7 @@ static const uint8_t miataNA8_maf_advance_table[16][16] = { {/*0 engineLoad=1.2 #endif static void commonMiataNa() { - engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA; + engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_MIATA_NA; engineConfiguration->engineChartSize = 100; engineConfiguration->triggerInputPins[0] = Gpio::C6; // 2G YEL/BLU diff --git a/firmware/config/engines/mazda_miata_1_6.cpp b/firmware/config/engines/mazda_miata_1_6.cpp index abc887fc91..a0fa256a69 100644 --- a/firmware/config/engines/mazda_miata_1_6.cpp +++ b/firmware/config/engines/mazda_miata_1_6.cpp @@ -90,7 +90,7 @@ static const uint8_t mapBased16IgnitionTable[16][16] = { #endif void miataNAcommonEngineSettings() { - engineConfiguration->trigger.type = TT_MAZDA_MIATA_NA; + engineConfiguration->trigger.type = trigger_type_e::TT_MAZDA_MIATA_NA; engineConfiguration->cylindersCount = 4; engineConfiguration->firingOrder = FO_1_3_4_2; engineConfiguration->compressionRatio = 9.1; diff --git a/firmware/config/engines/mazda_miata_vvt.cpp b/firmware/config/engines/mazda_miata_vvt.cpp index d247ff22a9..6279ee20ca 100644 --- a/firmware/config/engines/mazda_miata_vvt.cpp +++ b/firmware/config/engines/mazda_miata_vvt.cpp @@ -251,7 +251,7 @@ static void setCommonMazdaNB() { engineConfiguration->ignitionMode = IM_WASTED_SPARK; // Trigger - engineConfiguration->trigger.type = TT_MIATA_VVT; + engineConfiguration->trigger.type = trigger_type_e::TT_MIATA_VVT; engineConfiguration->vvtMode[0] = VVT_MIATA_NB; engineConfiguration->vvtOffsets[0] = 98; @@ -644,7 +644,7 @@ void setMiataNB2_Proteus_TCU() { strcpy(engineConfiguration->engineMake, ENGINE_MAKE_MAZDA); 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.customSkippedToothCount = 0; @@ -778,7 +778,7 @@ void setMiataNB2_Hellen72() { void setMiataNB2_Hellen72_36() { setMiataNB2_Hellen72(); - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_36_1; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_36_1; engineConfiguration->globalTriggerAngleOffset = 76; } diff --git a/firmware/config/engines/nissan_primera.cpp b/firmware/config/engines/nissan_primera.cpp index 70d6171683..13b7d4cf77 100644 --- a/firmware/config/engines/nissan_primera.cpp +++ b/firmware/config/engines/nissan_primera.cpp @@ -13,7 +13,7 @@ #include "nissan_primera.h" void setNissanPrimeraEngineConfiguration() { - engineConfiguration->trigger.type = TT_NISSAN_SR20VE; + engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_SR20VE; engineConfiguration->auxValves[0] = Gpio::E14; engineConfiguration->auxValves[1] = Gpio::E12; diff --git a/firmware/config/engines/nissan_vq.cpp b/firmware/config/engines/nissan_vq.cpp index 93d9319f90..8a9032825b 100644 --- a/firmware/config/engines/nissan_vq.cpp +++ b/firmware/config/engines/nissan_vq.cpp @@ -13,7 +13,7 @@ #define NISSAN_VQ_VVT_OFFSET 157 void setHellen121nissanQR() { - engineConfiguration->trigger.type = TT_NISSAN_QR25; + engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_QR25; engineConfiguration->cylindersCount = 4; engineConfiguration->firingOrder = FO_1_3_4_2; @@ -33,7 +33,7 @@ void setHellen121nissanQR() { static void setNissanVqEngineConfig() { setNissanMAF0031(config); - engineConfiguration->trigger.type = TT_NISSAN_VQ35; + engineConfiguration->trigger.type = trigger_type_e::TT_NISSAN_VQ35; engineConfiguration->cylindersCount = 6; engineConfiguration->firingOrder = FO_1_2_3_4_5_6; diff --git a/firmware/config/engines/sachs.cpp b/firmware/config/engines/sachs.cpp index 27bbe5b215..e26ae432be 100644 --- a/firmware/config/engines/sachs.cpp +++ b/firmware/config/engines/sachs.cpp @@ -26,7 +26,7 @@ void setSachs() { /** * 50/2 trigger */ - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL; engineConfiguration->trigger.customTotalToothCount = 50; engineConfiguration->trigger.customSkippedToothCount = 2; diff --git a/firmware/config/engines/subaru.cpp b/firmware/config/engines/subaru.cpp index 459a11724c..a8ffbb1fdc 100644 --- a/firmware/config/engines/subaru.cpp +++ b/firmware/config/engines/subaru.cpp @@ -16,7 +16,7 @@ #include "mre_meta.h" void setSubaru2003Wrx() { - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL; engineConfiguration->trigger.customTotalToothCount = 5; engineConfiguration->trigger.customSkippedToothCount = 1; @@ -36,7 +36,7 @@ void setSubaru2003Wrx() { * set engine_type 37 */ 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; @@ -66,7 +66,7 @@ void setSubaruEJ18_MRE() { void setSubaruEG33Defaults() { setCamOperationMode(); - engineConfiguration->trigger.type = TT_SUBARU_SVX; + engineConfiguration->trigger.type = trigger_type_e::TT_SUBARU_SVX; engineConfiguration->cylindersCount = 6; setLeftRightBanksNeedBetterName(); diff --git a/firmware/config/engines/test_engine.cpp b/firmware/config/engines/test_engine.cpp index 81235095c2..ad23280520 100644 --- a/firmware/config/engines/test_engine.cpp +++ b/firmware/config/engines/test_engine.cpp @@ -16,7 +16,7 @@ // TEST_ENGINE void setTestCamEngineConfiguration() { - engineConfiguration->trigger.type = TT_ONE_PLUS_ONE; + engineConfiguration->trigger.type = trigger_type_e::TT_ONE_PLUS_ONE; setCamOperationMode(); engineConfiguration->mafAdcChannel = EFI_ADC_1; @@ -44,7 +44,7 @@ void setTestCamEngineConfiguration() { void setTestCrankEngineConfiguration() { setTestCamEngineConfiguration(); - engineConfiguration->trigger.type = TT_ONE; + engineConfiguration->trigger.type = trigger_type_e::TT_ONE; setCrankOperationMode(); // this is related to 'setDefaultBaseEngine' having 'skippedWheelOnCam = true' which is a weird fact by itself @@ -70,7 +70,7 @@ void setTestDcWastegateConfiguration() { void setTestVVTEngineConfiguration() { setCrankOperationMode(); - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL; engineConfiguration->trigger.customTotalToothCount = 3; engineConfiguration->trigger.customSkippedToothCount = 1; @@ -93,7 +93,7 @@ void setTestEngineIssue366both() { engineConfiguration->trigger.customTotalToothCount = 2; engineConfiguration->trigger.customSkippedToothCount = 1; - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL; } void setTestEngineIssue366rise() { @@ -104,7 +104,7 @@ void setTestEngineIssue366rise() { #ifdef HARDWARE_CI void setProteusAnalogPwmTest() { // lowest cpu trigger possible - engineConfiguration->trigger.type = TT_ONE; + engineConfiguration->trigger.type = trigger_type_e::TT_ONE; // Disable trigger stim engineConfiguration->triggerSimulatorPins[0] = Gpio::Unassigned; diff --git a/firmware/config/engines/toyota_jzs147.cpp b/firmware/config/engines/toyota_jzs147.cpp index c612333f95..908a30601c 100644 --- a/firmware/config/engines/toyota_jzs147.cpp +++ b/firmware/config/engines/toyota_jzs147.cpp @@ -73,7 +73,7 @@ void setToyota_2jz_vics() { common2jz(); 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[1] = Gpio::Unassigned; // cam sensor will he handled by custom vtti code diff --git a/firmware/config/engines/vw.cpp b/firmware/config/engines/vw.cpp index 56c659a14b..5468b9a06f 100644 --- a/firmware/config/engines/vw.cpp +++ b/firmware/config/engines/vw.cpp @@ -26,7 +26,7 @@ void setVwAba() { 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; diff --git a/firmware/config/engines/vw_b6.cpp b/firmware/config/engines/vw_b6.cpp index cfee8e08c6..7c555a8b2b 100644 --- a/firmware/config/engines/vw_b6.cpp +++ b/firmware/config/engines/vw_b6.cpp @@ -16,7 +16,7 @@ static void commonPassatB6() { 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->map.sensor.type = MT_BOSCH_2_5; diff --git a/firmware/controllers/algo/defaults/default_base_engine.cpp b/firmware/controllers/algo/defaults/default_base_engine.cpp index efcf4ec5a5..8330841583 100644 --- a/firmware/controllers/algo/defaults/default_base_engine.cpp +++ b/firmware/controllers/algo/defaults/default_base_engine.cpp @@ -79,7 +79,7 @@ void setDefaultBaseEngine() { engineConfiguration->ALSMaxTPS = 5; // Trigger - engineConfiguration->trigger.type = TT_TOOTHED_WHEEL_60_2; + engineConfiguration->trigger.type = trigger_type_e::TT_TOOTHED_WHEEL_60_2; engineConfiguration->globalTriggerAngleOffset = 0; diff --git a/firmware/controllers/algo/engine.cpp b/firmware/controllers/algo/engine.cpp index 8137f52e3a..0d10cca6f8 100644 --- a/firmware/controllers/algo/engine.cpp +++ b/firmware/controllers/algo/engine.cpp @@ -67,44 +67,44 @@ void Engine::resetEngineSnifferIfInTestMode() { trigger_type_e getVvtTriggerType(vvt_mode_e vvtMode) { switch (vvtMode) { case VVT_INACTIVE: - return TT_ONE; + return trigger_type_e::TT_ONE; case VVT_2JZ: - return TT_VVT_JZ; + return trigger_type_e::TT_VVT_JZ; case VVT_MIATA_NB: - return TT_VVT_MIATA_NB; + return trigger_type_e::TT_VVT_MIATA_NB; 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: - return TT_HONDA_K_CAM_4_1; + return trigger_type_e::TT_HONDA_K_CAM_4_1; case VVT_HONDA_K_INTAKE: case VVT_FIRST_HALF: case VVT_SECOND_HALF: case VVT_MAP_V_TWIN: - return TT_ONE; + return trigger_type_e::TT_ONE; case VVT_FORD_ST170: - return TT_FORD_ST170; + return trigger_type_e::TT_FORD_ST170; 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: - return TT_VVT_FORD_COYOTE; + return trigger_type_e::TT_VVT_FORD_COYOTE; case VVT_MAZDA_SKYACTIV: - return TT_VVT_MAZDA_SKYACTIV; + return trigger_type_e::TT_VVT_MAZDA_SKYACTIV; case VVT_NISSAN_VQ: - return TT_VVT_NISSAN_VQ35; + return trigger_type_e::TT_VVT_NISSAN_VQ35; case VVT_TOYOTA_4_1: - return TT_VVT_TOYOTA_4_1; + return trigger_type_e::TT_VVT_TOYOTA_4_1; case VVT_MITSUBISHI_3A92: - return TT_VVT_MITSUBISHI_3A92; + return trigger_type_e::TT_VVT_MITSUBISHI_3A92; case VVT_MITSUBISHI_6G75: case VVT_NISSAN_MR: - return TT_NISSAN_MR18_CAM_VVT; + return trigger_type_e::TT_NISSAN_MR18_CAM_VVT; case VVT_MITSUBISHI_4G9x: - return TT_MITSU_4G9x_CAM; + return trigger_type_e::TT_MITSU_4G9x_CAM; case VVT_MITSUBISHI_4G63: - return TT_MITSU_4G63_CAM; + return trigger_type_e::TT_MITSU_4G63_CAM; default: 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 } } diff --git a/firmware/controllers/algo/engine_types.h b/firmware/controllers/algo/engine_types.h index 8f68a090fb..4921ebb29f 100644 --- a/firmware/controllers/algo/engine_types.h +++ b/firmware/controllers/algo/engine_types.h @@ -306,8 +306,9 @@ typedef enum __attribute__ ((__packed__)) { /** * @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_FORD_ASPIRE = 1, @@ -435,7 +436,7 @@ typedef enum { // java code generator handles this value in a special way // also looks like 2 enums are either 1 byte or 4 bytes Force_4_bytes_size_trigger_type = 70000, -} trigger_type_e; // TriggerProcessor.java has this "trigger_type_e" name hard-coded! +}; typedef enum { TS_14_0 = 0, diff --git a/firmware/controllers/engine_cycle/rpm_calculator.cpp b/firmware/controllers/engine_cycle/rpm_calculator.cpp index 6e2d8fb7ad..3bb9142450 100644 --- a/firmware/controllers/engine_cycle/rpm_calculator.cpp +++ b/firmware/controllers/engine_cycle/rpm_calculator.cpp @@ -70,12 +70,12 @@ operation_mode_e lookupOperationMode() { // this is related to 'knownOperationMode' flag static bool doesTriggerImplyOperationMode(trigger_type_e type) { switch (type) { - case TT_TOOTHED_WHEEL: - case TT_ONE: - case TT_3_1_CAM: - case TT_36_2_2_2: // TODO: should this one be in this list? - case TT_TOOTHED_WHEEL_60_2: - case TT_TOOTHED_WHEEL_36_1: + case trigger_type_e::TT_TOOTHED_WHEEL: + case trigger_type_e::TT_ONE: + case trigger_type_e::TT_3_1_CAM: + case trigger_type_e::TT_36_2_2_2: // TODO: should this one be in this list? + case trigger_type_e::TT_TOOTHED_WHEEL_60_2: + case trigger_type_e::TT_TOOTHED_WHEEL_36_1: // These modes could be either cam or crank speed return false; default: diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index b514cd8731..661c35334a 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -419,161 +419,161 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio shapeDefinitionError = false; switch (triggerType.type) { - case TT_TOOTHED_WHEEL: + case trigger_type_e::TT_TOOTHED_WHEEL: initializeSkippedToothTrigger(this, triggerType.customTotalToothCount, triggerType.customSkippedToothCount, triggerOperationMode, SyncEdge::RiseOnly); break; - case TT_MAZDA_MIATA_NA: + case trigger_type_e::TT_MAZDA_MIATA_NA: initializeMazdaMiataNaShape(this); break; - case TT_MAZDA_MIATA_VVT_TEST: + case trigger_type_e::TT_MAZDA_MIATA_VVT_TEST: initializeMazdaMiataVVtTestShape(this); break; - case TT_SUZUKI_G13B: + case trigger_type_e::TT_SUZUKI_G13B: initializeSuzukiG13B(this); break; - case TT_FORD_TFI_PIP: + case trigger_type_e::TT_FORD_TFI_PIP: configureFordPip(this); break; - case TT_FORD_ST170: + case trigger_type_e::TT_FORD_ST170: configureFordST170(this); break; - case TT_VVT_MIATA_NB: + case trigger_type_e::TT_VVT_MIATA_NB: initializeMazdaMiataVVtCamShape(this); break; - case TT_RENIX_66_2_2_2: + case trigger_type_e::TT_RENIX_66_2_2_2: initializeRenix66_2_2(this); break; - case TT_RENIX_44_2_2: + case trigger_type_e::TT_RENIX_44_2_2: initializeRenix44_2_2(this); break; - case TT_MIATA_VVT: + case trigger_type_e::TT_MIATA_VVT: initializeMazdaMiataNb2Crank(this); break; - case TT_DODGE_NEON_1995: - case TT_DODGE_NEON_1995_ONLY_CRANK: + case trigger_type_e::TT_DODGE_NEON_1995: + case trigger_type_e::TT_DODGE_NEON_1995_ONLY_CRANK: configureNeon1995TriggerWaveformOnlyCrank(this); break; - case TT_DODGE_STRATUS: + case trigger_type_e::TT_DODGE_STRATUS: configureDodgeStratusTriggerWaveform(this); break; - case TT_DODGE_NEON_2003_CAM: + case trigger_type_e::TT_DODGE_NEON_2003_CAM: configureNeon2003TriggerWaveformCam(this); break; - case TT_DODGE_NEON_2003_CRANK: + case trigger_type_e::TT_DODGE_NEON_2003_CRANK: configureNeon2003TriggerWaveformCam(this); // configureNeon2003TriggerWaveformCrank(triggerShape); break; - case TT_FORD_ASPIRE: + case trigger_type_e::TT_FORD_ASPIRE: configureFordAspireTriggerWaveform(this); break; - case TT_VVT_NISSAN_VQ35: + case trigger_type_e::TT_VVT_NISSAN_VQ35: initializeNissanVQvvt(this); break; - case TT_VVT_MITSUBISHI_3A92: + case trigger_type_e::TT_VVT_MITSUBISHI_3A92: initializeVvt3A92(this); break; - case TT_VVT_TOYOTA_4_1: + case trigger_type_e::TT_VVT_TOYOTA_4_1: initializeSkippedToothTrigger(this, 4, 1, triggerOperationMode, SyncEdge::RiseOnly); setTriggerSynchronizationGap3(/*gapIndex*/0, /*from*/1.60, 2.40); setTriggerSynchronizationGap3(/*gapIndex*/1, /*from*/0.75, 1.25); break; - case TT_VVT_MITSUBISHI_6G75: - case TT_NISSAN_QR25: + case trigger_type_e::TT_VVT_MITSUBISHI_6G75: + case trigger_type_e::TT_NISSAN_QR25: initializeNissanQR25crank(this); break; - case TT_NISSAN_VQ30: + case trigger_type_e::TT_NISSAN_VQ30: initializeNissanVQ30cam(this); break; - case TT_NISSAN_VQ35: + case trigger_type_e::TT_NISSAN_VQ35: initializeNissanVQ35crank(this); break; - case TT_NISSAN_MR18_CRANK: + case trigger_type_e::TT_NISSAN_MR18_CRANK: initializeNissanMR18crank(this); break; - case TT_NISSAN_MR18_CAM_VVT: + case trigger_type_e::TT_NISSAN_MR18_CAM_VVT: initializeNissanMRvvt(this); break; - case TT_KAWA_KX450F: + case trigger_type_e::TT_KAWA_KX450F: configureKawaKX450F(this); break; - case TT_SKODA_FAVORIT: + case trigger_type_e::TT_SKODA_FAVORIT: setSkodaFavorit(this); break; - case TT_GM_60_2_2_2: + case trigger_type_e::TT_GM_60_2_2_2: configureGm60_2_2_2(this); break; - case TT_GM_7X: + case trigger_type_e::TT_GM_7X: configureGmTriggerWaveform(this); break; - case TT_MAZDA_DOHC_1_4: + case trigger_type_e::TT_MAZDA_DOHC_1_4: configureMazdaProtegeLx(this); break; - case TT_ONE_PLUS_ONE: + case trigger_type_e::TT_ONE_PLUS_ONE: configureOnePlusOne(this); break; - case TT_3_1_CAM: + case trigger_type_e::TT_3_1_CAM: configure3_1_cam(this); break; - case TT_MERCEDES_2_SEGMENT: + case trigger_type_e::TT_MERCEDES_2_SEGMENT: setMercedesTwoSegment(this); break; - case TT_ONE: + case trigger_type_e::TT_ONE: initializeSkippedToothTrigger(this, 1, 0, triggerOperationMode, SyncEdge::Rise); break; - case TT_MAZDA_SOHC_4: + case trigger_type_e::TT_MAZDA_SOHC_4: configureMazdaProtegeSOHC(this); break; - case TT_DAIHATSU: + case trigger_type_e::TT_DAIHATSU: configureDaihatsu4(this); break; - case TT_VVT_JZ: + case trigger_type_e::TT_VVT_JZ: initializeSkippedToothTrigger(this, 3, 0, triggerOperationMode, SyncEdge::RiseOnly); break; - case TT_36_2_1_1: + case trigger_type_e::TT_36_2_1_1: initialize36_2_1_1(this); break; - case TT_36_2_1: + case trigger_type_e::TT_36_2_1: initialize36_2_1(this); break; - case TT_TOOTHED_WHEEL_32_2: + case trigger_type_e::TT_TOOTHED_WHEEL_32_2: 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? // method above sets second gap, here we add third @@ -581,146 +581,146 @@ void TriggerWaveform::initializeTriggerWaveform(operation_mode_e triggerOperatio setThirdTriggerSynchronizationGap(1); break; - case TT_TOOTHED_WHEEL_60_2: + case trigger_type_e::TT_TOOTHED_WHEEL_60_2: initializeSkippedToothTrigger(this, 60, 2, triggerOperationMode, SyncEdge::RiseOnly); break; - case TT_TOOTHED_WHEEL_36_2: + case trigger_type_e::TT_TOOTHED_WHEEL_36_2: initializeSkippedToothTrigger(this, 36, 2, triggerOperationMode, SyncEdge::RiseOnly); 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 break; - case TT_60_2_VW: + case trigger_type_e::TT_60_2_VW: setVwConfiguration(this); break; - case TT_TOOTHED_WHEEL_36_1: + case trigger_type_e::TT_TOOTHED_WHEEL_36_1: initializeSkippedToothTrigger(this, 36, 1, triggerOperationMode, SyncEdge::RiseOnly); break; - case TT_VVT_BOSCH_QUICK_START: + case trigger_type_e::TT_VVT_BOSCH_QUICK_START: configureQuickStartSenderWheel(this); break; - case TT_VVT_BARRA_3_PLUS_1: + case trigger_type_e::TT_VVT_BARRA_3_PLUS_1: configureBarra3plus1cam(this); break; - case TT_HONDA_K_CAM_4_1: + case trigger_type_e::TT_HONDA_K_CAM_4_1: configureHondaK_4_1(this); break; - case TT_HONDA_K_CRANK_12_1: + case trigger_type_e::TT_HONDA_K_CRANK_12_1: configureHondaK_12_1(this); break; - case TT_SUBARU_EZ30: + case trigger_type_e::TT_SUBARU_EZ30: initializeSubaruEZ30(this); break; - case TT_VVT_MAZDA_SKYACTIV: + case trigger_type_e::TT_VVT_MAZDA_SKYACTIV: initializeMazdaSkyactivCam(this); break; - case TT_BENELLI_TRE: + case trigger_type_e::TT_BENELLI_TRE: configureBenelli(this); break; - case TT_MITSU_4G63_CRANK: + case trigger_type_e::TT_MITSU_4G63_CRANK: initializeMitsubishi4gSymmetricalCrank(this); break; - case TT_VVT_FORD_COYOTE: + case trigger_type_e::TT_VVT_FORD_COYOTE: configureFordCoyote(this); break; - case TT_UNUSED_11: - case TT_UNUSED_75: - case TT_UNUSED_77: - case TT_UNUSED_78: - case TT_MITSU_4G63_CAM: + case trigger_type_e::TT_UNUSED_11: + case trigger_type_e::TT_UNUSED_75: + case trigger_type_e::TT_UNUSED_77: + case trigger_type_e::TT_UNUSED_78: + case trigger_type_e::TT_MITSU_4G63_CAM: initializeMitsubishi4g63Cam(this); break; - case TT_MITSU_4G9x_CAM: + case trigger_type_e::TT_MITSU_4G9x_CAM: initializeMitsubishi4g9xCam(this); break; - case TT_1_16: + case trigger_type_e::TT_1_16: configureOnePlus16(this); break; - case TT_HONDA_CBR_600: + case trigger_type_e::TT_HONDA_CBR_600: configureHondaCbr600(this); break; - case TT_CHRYSLER_NGC_36_2_2: + case trigger_type_e::TT_CHRYSLER_NGC_36_2_2: configureChryslerNGC_36_2_2(this); break; - case TT_DODGE_RAM: + case trigger_type_e::TT_DODGE_RAM: initDodgeRam(this); break; - case TT_JEEP_4_CYL: + case trigger_type_e::TT_JEEP_4_CYL: initJeep_XJ_4cyl_2500(this); break; - case TT_JEEP_18_2_2_2: + case trigger_type_e::TT_JEEP_18_2_2_2: initJeep18_2_2_2(this); break; - case TT_SUBARU_7_6: + case trigger_type_e::TT_SUBARU_7_6: initializeSubaru7_6(this); break; - case TT_36_2_2_2: + case trigger_type_e::TT_36_2_2_2: initialize36_2_2_2(this); break; - case TT_2JZ_3_34: + case trigger_type_e::TT_2JZ_3_34: initialize2jzGE3_34_simulation_shape(this); break; - case TT_12_TOOTH_CRANK: + case trigger_type_e::TT_12_TOOTH_CRANK: configure12ToothCrank(this); break; - case TT_NISSAN_SR20VE: + case trigger_type_e::TT_NISSAN_SR20VE: initializeNissanSR20VE_4(this); break; - case TT_ROVER_K: + case trigger_type_e::TT_ROVER_K: initializeRoverK(this); break; - case TT_FIAT_IAW_P8: + case trigger_type_e::TT_FIAT_IAW_P8: configureFiatIAQ_P8(this); break; - case TT_TRI_TACH: + case trigger_type_e::TT_TRI_TACH: configureTriTach(this); break; - case TT_GM_24x: + case trigger_type_e::TT_GM_24x: initGmLS24_5deg(this); break; - case TT_GM_24x_2: + case trigger_type_e::TT_GM_24x_2: initGmLS24_3deg(this); break; - case TT_SUBARU_7_WITHOUT_6: + case trigger_type_e::TT_SUBARU_7_WITHOUT_6: initializeSubaruOnly7(this); break; - case TT_SUBARU_SVX: + case trigger_type_e::TT_SUBARU_SVX: initializeSubaru_SVX(this); break; - case TT_SUBARU_SVX_CRANK_1: + case trigger_type_e::TT_SUBARU_SVX_CRANK_1: initializeSubaru_SVX(this); break; - case TT_SUBARU_SVX_CAM_VVT: + case trigger_type_e::TT_SUBARU_SVX_CAM_VVT: initializeSubaru_SVX(this); break; diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 2d3c2e4a5d..6e6b96cf73 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -885,7 +885,7 @@ void triggerInfo(void) { getTrigger_type_e(engineConfiguration->trigger.type), engineConfiguration->trigger.type, 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, engineConfiguration->trigger.customSkippedToothCount); } diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index e6e735d81f..9fd1e7b04f 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -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", // 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]; bool currentGapOk = isInRange(triggerShape.syncronizationRatioFrom[0], (float)triggerSyncGapRatio, triggerShape.syncronizationRatioTo[0]); diff --git a/unit_tests/tests/actuators/test_tacho.cpp b/unit_tests/tests/actuators/test_tacho.cpp index 5d51126a8f..d04f318b3d 100644 --- a/unit_tests/tests/actuators/test_tacho.cpp +++ b/unit_tests/tests/actuators/test_tacho.cpp @@ -18,7 +18,7 @@ TEST(Actuators, Tachometer) { engineConfiguration->tachPulseDurationAsDutyCycle = true; // 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.customSkippedToothCount = 0; setCamOperationMode();