From 0813266ee1bb8a5bdd403bd1c6f6bd9cf3e444e4 Mon Sep 17 00:00:00 2001 From: rusefillc Date: Sun, 14 Nov 2021 15:35:11 -0500 Subject: [PATCH] trigger refactoring & docs --- .../controllers/trigger/decoders/trigger_structure.cpp | 8 ++++++-- firmware/controllers/trigger/decoders/trigger_structure.h | 2 +- .../controllers/trigger/decoders/trigger_universal.cpp | 8 ++++---- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/firmware/controllers/trigger/decoders/trigger_structure.cpp b/firmware/controllers/trigger/decoders/trigger_structure.cpp index 4e47ec61dc..f985a01380 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.cpp +++ b/firmware/controllers/trigger/decoders/trigger_structure.cpp @@ -205,12 +205,16 @@ void TriggerWaveform::calculateExpectedEventCounts(bool useOnlyRisingEdgeForTrig } +/** + * Deprecated! many usages should be replaced by addEvent360 + */ void TriggerWaveform::addEvent720(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const state) { - addEvent(angle / 720, channelIndex, state); + addEvent(angle / FOUR_STROKE_CYCLE_DURATION, channelIndex, state); } void TriggerWaveform::addEvent360(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const state) { - addEvent(CRANK_MODE_MULTIPLIER * angle / 720, channelIndex, state); + efiAssertVoid(CUSTOM_OMODE_UNDEF, operationMode == FOUR_STROKE_CAM_SENSOR || operationMode == FOUR_STROKE_CRANK_SENSOR, "Not a mode for 360"); + addEvent(CRANK_MODE_MULTIPLIER * angle / FOUR_STROKE_CYCLE_DURATION, channelIndex, state); } void TriggerWaveform::addEventAngle(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const state) { diff --git a/firmware/controllers/trigger/decoders/trigger_structure.h b/firmware/controllers/trigger/decoders/trigger_structure.h index 593ff4a177..ce8cfeb4a4 100644 --- a/firmware/controllers/trigger/decoders/trigger_structure.h +++ b/firmware/controllers/trigger/decoders/trigger_structure.h @@ -214,7 +214,7 @@ public: /* (0..1] angle range */ void addEvent(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const state); /* (0..720] angle range - * Deprecated! + * Deprecated! many usages should be replaced by addEvent360 */ void addEvent720(angle_t angle, trigger_wheel_e const channelIndex, trigger_value_e const state); diff --git a/firmware/controllers/trigger/decoders/trigger_universal.cpp b/firmware/controllers/trigger/decoders/trigger_universal.cpp index e20eb18d39..fd70f9ae22 100644 --- a/firmware/controllers/trigger/decoders/trigger_universal.cpp +++ b/firmware/controllers/trigger/decoders/trigger_universal.cpp @@ -56,11 +56,11 @@ void initializeSkippedToothTriggerWaveformExt(TriggerWaveform *s, int totalTeeth void configureOnePlusOne(TriggerWaveform *s) { s->initialize(FOUR_STROKE_CAM_SENSOR); - s->addEvent720(180, T_PRIMARY, TV_RISE); - s->addEvent720(360, T_PRIMARY, TV_FALL); + s->addEvent360( 90, T_PRIMARY, TV_RISE); + s->addEvent360(180, T_PRIMARY, TV_FALL); - s->addEvent720(540, T_SECONDARY, TV_RISE); - s->addEvent720(720, T_SECONDARY, TV_FALL); + s->addEvent360(270, T_SECONDARY, TV_RISE); + s->addEvent360(360, T_SECONDARY, TV_FALL); s->isSynchronizationNeeded = false; s->useOnlyPrimaryForSync = true;