diff --git a/firmware/controllers/trigger/decoders/trigger_bmw.cpp b/firmware/controllers/trigger/decoders/trigger_bmw.cpp index 60e10ef343..0e5971c56a 100644 --- a/firmware/controllers/trigger/decoders/trigger_bmw.cpp +++ b/firmware/controllers/trigger/decoders/trigger_bmw.cpp @@ -16,7 +16,7 @@ static inline float addPair(TriggerWaveform *s, float a, float w) { } void configureMiniCooperTriggerWaveform(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); // s->initialState[0] = 1; diff --git a/firmware/controllers/trigger/decoders/trigger_chrysler.cpp b/firmware/controllers/trigger/decoders/trigger_chrysler.cpp index 61c4f035e5..77de90b613 100644 --- a/firmware/controllers/trigger/decoders/trigger_chrysler.cpp +++ b/firmware/controllers/trigger/decoders/trigger_chrysler.cpp @@ -10,7 +10,7 @@ void initDodgeRam(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useRiseEdge = true; s->isSynchronizationNeeded = false; @@ -26,7 +26,7 @@ void initDodgeRam(TriggerWaveform *s) { } void configureNeon2003TriggerWaveformCrank(TriggerWaveform *s DECLARE_ENGINE_PARAMETER_SUFFIX) { - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); s->useRiseEdge = true; s->setTriggerSynchronizationGap(3); @@ -103,7 +103,7 @@ void configureNeon2003TriggerWaveformCam(TriggerWaveform *s) { // todo: move sync point so that two channel does not have false trigger issues bool useOnlyPrimary = true; - s->initialize(FOUR_STROKE_CAM_SENSOR, !useOnlyPrimary); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useRiseEdge = true; s->tdcPosition = 496; @@ -323,7 +323,7 @@ gap=1.43/0.71 } void configureDodgeStratusTriggerWaveform(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, false); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = true; s->tdcPosition = 150; @@ -449,7 +449,7 @@ static void configureNeon1995TriggerWaveformCommon(bool withCam, TriggerWaveform } void configureNeon1995TriggerWaveformOnlyCrank(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); s->setTriggerSynchronizationGap(3.79); s->tdcPosition = 279; @@ -459,7 +459,7 @@ void configureNeon1995TriggerWaveformOnlyCrank(TriggerWaveform *s) { void configureNeon1995TriggerWaveform(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->setTriggerSynchronizationGap(0.8227); @@ -474,7 +474,7 @@ void configureNeon1995TriggerWaveform(TriggerWaveform *s) { } void initJeep18_2_2_2(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = true; s->setTriggerSynchronizationGap(1); s->useOnlyPrimaryForSync = true; @@ -559,7 +559,7 @@ static void add4cylblock(int off, TriggerWaveform *s) { // TT_JEEP_4_CYL void initJeep_XJ_4cyl_2500(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = true; s->setTriggerSynchronizationGap(1); s->useOnlyPrimaryForSync = true; diff --git a/firmware/controllers/trigger/decoders/trigger_gm.cpp b/firmware/controllers/trigger/decoders/trigger_gm.cpp index 5f47bba6d6..c77a818bb8 100644 --- a/firmware/controllers/trigger/decoders/trigger_gm.cpp +++ b/firmware/controllers/trigger/decoders/trigger_gm.cpp @@ -8,7 +8,7 @@ #include "trigger_gm.h" void configureGmTriggerWaveform(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); // all angles are x2 here - so, 5 degree width is 10 float w = 10; @@ -60,7 +60,7 @@ static int gm_tooth_pair(float startAngle, bool isShortLong, TriggerWaveform* s, * based on data in https://rusefi.com/forum/viewtopic.php?f=3&t=936&p=30303#p30285 */ void initGmLS24(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); /* * Okay, here's how this magic works: diff --git a/firmware/controllers/trigger/decoders/trigger_honda.cpp b/firmware/controllers/trigger/decoders/trigger_honda.cpp index a2b926e8f5..0e31797ee0 100644 --- a/firmware/controllers/trigger/decoders/trigger_honda.cpp +++ b/firmware/controllers/trigger/decoders/trigger_honda.cpp @@ -34,7 +34,7 @@ static float addAccordPair3(TriggerWaveform *s, float sb) { * http://forum.pgmfi.org/viewtopic.php?f=2&t=15570start=210#p139007 */ void configureHondaAccordCDDip(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->initialState[T_SECONDARY] = TV_RISE; float sb = 0; @@ -106,7 +106,7 @@ void configureHonda_1_4_24(TriggerWaveform *s, bool withOneEventSignal, bool wit trigger_wheel_e const oneEventWave, trigger_wheel_e const fourEventWave, float prefix) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); float sb = 5.0f + prefix; @@ -167,7 +167,7 @@ void configureHonda_1_4_24(TriggerWaveform *s, bool withOneEventSignal, bool wit } void configureHondaCbr600(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useOnlyPrimaryForSync = true; s->isSynchronizationNeeded = true; @@ -213,8 +213,8 @@ void configureHondaCbr600custom(TriggerWaveform *s) { // w = 15 float w = 720 / 2 / 24; -// s->initialize(FOUR_STROKE_CAM_SENSOR, false); - s->initialize(FOUR_STROKE_CAM_SENSOR, true); +// s->initialize(FOUR_STROKE_CAM_SENSOR); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useOnlyPrimaryForSync = true; s->isSynchronizationNeeded = true; @@ -284,7 +284,7 @@ void configureHondaCbr600custom(TriggerWaveform *s) { } void configureHondaAccordShifted(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); float sb = S24; @@ -316,7 +316,7 @@ void configureHondaAccordShifted(TriggerWaveform *s) { void configureOnePlus16(TriggerWaveform *s, operation_mode_e operationMode) { UNUSED(operationMode); - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); int totalTeethCount = 16; int skippedCount = 0; diff --git a/firmware/controllers/trigger/decoders/trigger_mazda.cpp b/firmware/controllers/trigger/decoders/trigger_mazda.cpp index 0fb73cfebf..03da436bcb 100644 --- a/firmware/controllers/trigger/decoders/trigger_mazda.cpp +++ b/firmware/controllers/trigger/decoders/trigger_mazda.cpp @@ -21,7 +21,7 @@ #include "trigger_mazda.h" void initializeMazdaMiataNaShape(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->setTriggerSynchronizationGap2(1.4930 * 0.6f, 1.4930 * 1.3f); s->useRiseEdge = false; @@ -57,7 +57,7 @@ void initializeMazdaMiataNaShape(TriggerWaveform *s) { * 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, false); + s->initialize(FOUR_STROKE_CAM_SENSOR); /** * My Signal is: 60, 60, 102, 60 * 120, 120, 120, 78, @@ -88,7 +88,7 @@ void initialize_Mazda_Engine_z5_Shape(TriggerWaveform *s) { // TT_MIATA_VVT void initializeMazdaMiataNb2Crank(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_SYMMETRICAL_CRANK_SENSOR); float o = 160; @@ -102,7 +102,7 @@ void initializeMazdaMiataNb2Crank(TriggerWaveform *s) { } static void initializeMazdaMiataNb1ShapeWithOffset(TriggerWaveform *s, float offset) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->setTriggerSynchronizationGap3(0, 0.065, 0.17f); s->useRiseEdge = false; s->bothFrontsRequired = true; @@ -152,7 +152,7 @@ void initializeMazdaMiataVVtTestShape(TriggerWaveform *s) { } void configureMazdaProtegeSOHC(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, false); + s->initialize(FOUR_STROKE_CAM_SENSOR); // s->initialState[0] = 1; // float w = 720 / 4 * 0.215; @@ -179,7 +179,7 @@ void configureMazdaProtegeSOHC(TriggerWaveform *s) { } void configureMazdaProtegeLx(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useOnlyPrimaryForSync = true; /** diff --git a/firmware/controllers/trigger/decoders/trigger_misc.cpp b/firmware/controllers/trigger/decoders/trigger_misc.cpp index dc9b792f38..0022688285 100644 --- a/firmware/controllers/trigger/decoders/trigger_misc.cpp +++ b/firmware/controllers/trigger/decoders/trigger_misc.cpp @@ -9,7 +9,7 @@ // TT_FIAT_IAW_P8 void configureFiatIAQ_P8(TriggerWaveform * s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, false); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = true; diff --git a/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp b/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp index aa1c824b9d..82ba18ba13 100644 --- a/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp +++ b/firmware/controllers/trigger/decoders/trigger_mitsubishi.cpp @@ -8,7 +8,7 @@ #include "trigger_mitsubishi.h" void configureFordAspireTriggerWaveform(TriggerWaveform * s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = false; float x = 121.90; @@ -32,7 +32,7 @@ void configureFordAspireTriggerWaveform(TriggerWaveform * s) { * TT_MITSUBISHI = 11 */ void initializeMitsubishi4g18(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->useRiseEdge = false; s->setTriggerSynchronizationGap(1.6666); diff --git a/firmware/controllers/trigger/decoders/trigger_nissan.cpp b/firmware/controllers/trigger/decoders/trigger_nissan.cpp index 827ac7a47a..3f80e587e9 100644 --- a/firmware/controllers/trigger/decoders/trigger_nissan.cpp +++ b/firmware/controllers/trigger/decoders/trigger_nissan.cpp @@ -14,7 +14,7 @@ * 8,2,2,2 Nissan pattern */ static void initializeNissanSR20VE_4_optional_360(TriggerWaveform *s, bool with2nd) { - s->initialize(FOUR_STROKE_CAM_SENSOR, with2nd); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->isSynchronizationNeeded = true; s->gapBothDirections = true; s->useOnlyPrimaryForSync = true; diff --git a/firmware/controllers/trigger/decoders/trigger_rover.cpp b/firmware/controllers/trigger/decoders/trigger_rover.cpp index 8535653fc4..8cba0e08ca 100644 --- a/firmware/controllers/trigger/decoders/trigger_rover.cpp +++ b/firmware/controllers/trigger/decoders/trigger_rover.cpp @@ -12,7 +12,7 @@ * https://en.wikipedia.org/wiki/Rover_K-series_engine */ void initializeRoverK(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); float tooth = 20; diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index 55c6a0571b..61164180bf 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -59,16 +59,16 @@ trigger_shape_helper::trigger_shape_helper() { TriggerWaveform::TriggerWaveform() : wave(switchTimesBuffer, NULL) { - initialize(OM_NONE, false); + initialize(OM_NONE); wave.channels = h.channels; memset(triggerIndexByAngle, 0, sizeof(triggerIndexByAngle)); } -void TriggerWaveform::initialize(operation_mode_e operationMode, bool needSecondTriggerInput) { +void TriggerWaveform::initialize(operation_mode_e operationMode) { isSynchronizationNeeded = true; // that's default value bothFrontsRequired = false; - this->needSecondTriggerInput = needSecondTriggerInput; + needSecondTriggerInput = false; memset(expectedDutyCycle, 0, sizeof(expectedDutyCycle)); memset(eventAngles, 0, sizeof(eventAngles)); // memset(triggerIndexByAngle, 0, sizeof(triggerIndexByAngle)); @@ -189,7 +189,9 @@ void TriggerWaveform::addEvent720(angle_t angle, trigger_wheel_e const channelIn void TriggerWaveform::addEvent(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const stateParam) { efiAssertVoid(CUSTOM_OMODE_UNDEF, operationMode != OM_NONE, "operationMode not set"); - efiAssertVoid(CUSTOM_ERR_6598, channelIndex!= T_SECONDARY || needSecondTriggerInput, "secondary needed or not?"); + if (channelIndex == T_SECONDARY) { + needSecondTriggerInput = true; + } #if EFI_UNIT_TEST if (printTriggerDebug) { diff --git a/firmware/controllers/trigger/decoders/trigger_structure.h b/firmware/controllers/trigger/decoders/trigger_structure.h index ebbacd8ab3..2273e556e3 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.h +++ b/firmware/controllers/trigger/decoders/trigger_structure.h @@ -227,7 +227,7 @@ public: void addEventClamped(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const stateParam, float filterLeft, float filterRight); operation_mode_e getOperationMode() const; - void initialize(operation_mode_e operationMode, bool needSecondTriggerInput); + void initialize(operation_mode_e operationMode); void setTriggerSynchronizationGap(float syncRatio); void setTriggerSynchronizationGap3(int index, float syncRatioFrom, float syncRatioTo); void setTriggerSynchronizationGap2(float syncRatioFrom, float syncRatioTo); diff --git a/firmware/controllers/trigger/decoders/trigger_subaru.cpp b/firmware/controllers/trigger/decoders/trigger_subaru.cpp index 08f25fdb07..1ed76f5318 100644 --- a/firmware/controllers/trigger/decoders/trigger_subaru.cpp +++ b/firmware/controllers/trigger/decoders/trigger_subaru.cpp @@ -11,7 +11,7 @@ * This trigger is also used by Nissan and Mazda */ void initialize36_2_2_2(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); float wide = 30 * 2; float narrow = 10 * 2; @@ -47,7 +47,7 @@ void initialize36_2_2_2(TriggerWaveform *s) { } void initializeSubaru7_6(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); float magic = 333; diff --git a/firmware/controllers/trigger/decoders/trigger_toyota.cpp b/firmware/controllers/trigger/decoders/trigger_toyota.cpp index 37e36ffbd9..f4d58771d6 100644 --- a/firmware/controllers/trigger/decoders/trigger_toyota.cpp +++ b/firmware/controllers/trigger/decoders/trigger_toyota.cpp @@ -10,7 +10,7 @@ #include "trigger_toyota.h" void initialize2jzGE1_12(TriggerWaveform *s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); float crankD = 360 / 12 / 2; // 15 @@ -46,7 +46,7 @@ void initialize2jzGE1_12(TriggerWaveform *s) { void initialize2jzGE3_34(TriggerWaveform *s) { setToothedWheelConfiguration(s, 36, 2, FOUR_STROKE_CRANK_SENSOR); -// s->initialize(FOUR_STROKE_CAM_SENSOR, true); +// s->initialize(FOUR_STROKE_CAM_SENSOR); // // float camD = 720 / 6; // 120 // diff --git a/firmware/controllers/trigger/decoders/trigger_universal.cpp b/firmware/controllers/trigger/decoders/trigger_universal.cpp index 3cf56f5957..fad750a3e5 100644 --- a/firmware/controllers/trigger/decoders/trigger_universal.cpp +++ b/firmware/controllers/trigger/decoders/trigger_universal.cpp @@ -36,7 +36,7 @@ void initializeSkippedToothTriggerWaveformExt(TriggerWaveform *s, int totalTeeth return; } efiAssertVoid(CUSTOM_NULL_SHAPE, s != NULL, "TriggerWaveform is NULL"); - s->initialize(operationMode, false); + s->initialize(operationMode); s->setTriggerSynchronizationGap(skippedCount + 1); s->isSynchronizationNeeded = (totalTeethCount > 2) && (skippedCount != 0); @@ -48,7 +48,7 @@ void initializeSkippedToothTriggerWaveformExt(TriggerWaveform *s, int totalTeeth void configureOnePlusOne(TriggerWaveform *s, operation_mode_e operationMode) { UNUSED(operationMode); - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->addEvent720(180, T_PRIMARY, TV_RISE); s->addEvent720(360, T_PRIMARY, TV_FALL); @@ -62,7 +62,7 @@ void configureOnePlusOne(TriggerWaveform *s, operation_mode_e operationMode) { void configureOnePlus60_2(TriggerWaveform *s, operation_mode_e operationMode) { UNUSED(operationMode); - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); int totalTeethCount = 60; int skippedCount = 2; @@ -81,7 +81,7 @@ void configureOnePlus60_2(TriggerWaveform *s, operation_mode_e operationMode) { void configure3_1_cam(TriggerWaveform *s, operation_mode_e operationMode) { UNUSED(operationMode); - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); const float crankW = 360 / 3 / 2; diff --git a/firmware/controllers/trigger/decoders/trigger_vw.cpp b/firmware/controllers/trigger/decoders/trigger_vw.cpp index 53d0db2cb7..3cd8a3f1f5 100644 --- a/firmware/controllers/trigger/decoders/trigger_vw.cpp +++ b/firmware/controllers/trigger/decoders/trigger_vw.cpp @@ -11,7 +11,7 @@ void setVwConfiguration(TriggerWaveform *s) { efiAssertVoid(CUSTOM_ERR_6660, s != NULL, "TriggerWaveform is NULL"); - s->initialize(FOUR_STROKE_CRANK_SENSOR, false); + s->initialize(FOUR_STROKE_CRANK_SENSOR); s->isSynchronizationNeeded = true; diff --git a/unit_tests/tests/test_fuel_map.cpp b/unit_tests/tests/test_fuel_map.cpp index f971159994..a4c131ac8e 100644 --- a/unit_tests/tests/test_fuel_map.cpp +++ b/unit_tests/tests/test_fuel_map.cpp @@ -115,7 +115,7 @@ TEST(misc, testFuelMap) { static void confgiureFordAspireTriggerWaveform(TriggerWaveform * s) { - s->initialize(FOUR_STROKE_CAM_SENSOR, true); + s->initialize(FOUR_STROKE_CAM_SENSOR); s->addEvent720(53.747, T_SECONDARY, TV_RISE); s->addEvent720(121.90, T_SECONDARY, TV_FALL);