diff --git a/firmware/controllers/trigger/trigger_decoder.cpp b/firmware/controllers/trigger/trigger_decoder.cpp index 4ef7e98229..97ec3f73b7 100644 --- a/firmware/controllers/trigger/trigger_decoder.cpp +++ b/firmware/controllers/trigger/trigger_decoder.cpp @@ -125,6 +125,15 @@ static trigger_value_e eventType[6] = { TV_FALL, TV_RISE, TV_FALL, TV_RISE, TV_F totalEventCountBase += TRIGGER_SHAPE(size); \ } + +#define considerEventForGap() (!TRIGGER_SHAPE(useOnlyPrimaryForSync) || isPrimary) + +#define needToSkipRise(type) (!TRIGGER_SHAPE(gapBothDirections)) && ((!TRIGGER_SHAPE(useRiseEdge)) && (type != TV_FALL)) +#define needToSkipFall(type) (!TRIGGER_SHAPE(gapBothDirections)) && ( TRIGGER_SHAPE(useRiseEdge) && (type != TV_RISE)) + +#define isLessImportant(type) (needToSkipFall(type) || needToSkipRise(type) || (!considerEventForGap()) ) + + /** * @brief Trigger decoding happens here * This method is invoked every time we have a fall or rise on one of the trigger sensors. diff --git a/firmware/controllers/trigger/trigger_decoder.h b/firmware/controllers/trigger/trigger_decoder.h index cc1967fc0c..81f8e757f2 100644 --- a/firmware/controllers/trigger/trigger_decoder.h +++ b/firmware/controllers/trigger/trigger_decoder.h @@ -125,11 +125,5 @@ void initTriggerDecoderLogger(Logging *sharedLogger); bool isTriggerDecoderError(void); -#define considerEventForGap() (!TRIGGER_SHAPE(useOnlyPrimaryForSync) || isPrimary) - -#define isLessImportant(type) ((!TRIGGER_SHAPE(gapBothDirections)) && (TRIGGER_SHAPE(useRiseEdge) && (type != TV_RISE)) \ - || ((!TRIGGER_SHAPE(gapBothDirections)) && !TRIGGER_SHAPE(useRiseEdge) && (type != TV_FALL)) \ - || (!considerEventForGap()) \ - ) #endif /* TRIGGER_DECODER_H_ */