M17: Demodulator: force unlock on EOT frame
Signed-off-by: Silvano Seva <silseva@fastwebnet.it>
This commit is contained in:
parent
b763d6456f
commit
79d2e9a27e
|
|
@ -403,13 +403,16 @@ void M17Demodulator::syncUpdateState()
|
||||||
uint8_t streamHd = hammingDistance((*demodFrame)[0], STREAM_SYNC_WORD[0])
|
uint8_t streamHd = hammingDistance((*demodFrame)[0], STREAM_SYNC_WORD[0])
|
||||||
+ hammingDistance((*demodFrame)[1], STREAM_SYNC_WORD[1]);
|
+ hammingDistance((*demodFrame)[1], STREAM_SYNC_WORD[1]);
|
||||||
|
|
||||||
|
uint8_t eotHd = hammingDistance((*demodFrame)[0], EOT_SYNC_WORD[0])
|
||||||
|
+ hammingDistance((*demodFrame)[1], EOT_SYNC_WORD[1]);
|
||||||
|
|
||||||
if(streamHd <= 1)
|
if(streamHd <= 1)
|
||||||
missedSyncs = 0;
|
missedSyncs = 0;
|
||||||
else
|
else
|
||||||
missedSyncs += 1;
|
missedSyncs += 1;
|
||||||
|
|
||||||
// The lock is lost after four consecutive sync misses.
|
// The lock is lost after four consecutive sync misses or an EOT frame.
|
||||||
if(missedSyncs > 4)
|
if((missedSyncs > 4) || (eotHd <= 1))
|
||||||
demodState = DemodState::UNLOCKED;
|
demodState = DemodState::UNLOCKED;
|
||||||
else
|
else
|
||||||
demodState = DemodState::LOCKED;
|
demodState = DemodState::LOCKED;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue