From 5ebdb36ffb74c518caaa5d076b94fdcca70e4949 Mon Sep 17 00:00:00 2001 From: Silvano Seva Date: Fri, 22 Jul 2022 22:54:57 +0200 Subject: [PATCH] Resetting M17 frame decoder when demodulator transitions from unlocked to locked state --- openrtx/src/rtx/OpMode_M17.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openrtx/src/rtx/OpMode_M17.cpp b/openrtx/src/rtx/OpMode_M17.cpp index 74c065f1..91bec540 100644 --- a/openrtx/src/rtx/OpMode_M17.cpp +++ b/openrtx/src/rtx/OpMode_M17.cpp @@ -144,7 +144,6 @@ void OpMode_M17::rxState(rtxStatus_t *const status) { if(startRx) { - decoder.reset(); demodulator.startBasebandSampling(); demodulator.invertPhase(status->invertRxPhase); @@ -157,7 +156,15 @@ void OpMode_M17::rxState(rtxStatus_t *const status) } bool newData = demodulator.update(); - locked = demodulator.isLocked(); + bool lock = demodulator.isLocked(); + + // Reset frame decoder when transitioning from unlocked to locked state + if((lock == true) && (locked == false)) + { + decoder.reset(); + } + + locked = lock; if(locked && newData) {