From 01578235a865a5b8f3791c9f2e29c6a10bf1b631 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Fri, 25 Mar 2016 21:07:47 +0000 Subject: [PATCH] Remove EMB synchronisation (for now). --- DMRSlotRX.cpp | 24 ++++++++++-------------- DMRSlotRX.h | 1 + 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/DMRSlotRX.cpp b/DMRSlotRX.cpp index 3e461e3..eefc7d3 100644 --- a/DMRSlotRX.cpp +++ b/DMRSlotRX.cpp @@ -72,7 +72,8 @@ m_syncCount(0U), m_colorCode(0U), m_delay(0U), m_state(DMRRXS_NONE), -m_n(0U) +m_n(0U), +m_type(0U) { } @@ -116,23 +117,14 @@ bool CDMRSlotRX::processSample(q15_t sample) if (sample < 0) m_bitBuffer[m_bitPtr] |= 0x01U; - if (m_state == DMRRXS_VOICE) { - uint16_t min = m_syncPtr - 2U; - uint16_t max = m_syncPtr + 2U; - if (m_dataPtr >= min && m_dataPtr <= max) { - if (m_n >= 5U) - correlateSync(); - else - correlateEMB(); - } - } else if (m_state == DMRRXS_DATA) { + if (m_state == DMRRXS_NONE) { + if (m_dataPtr >= 420U && m_dataPtr <= 500U) + correlateSync(); + } else { uint16_t min = m_syncPtr - 2U; uint16_t max = m_syncPtr + 2U; if (m_dataPtr >= min && m_dataPtr <= max) correlateSync(); - } else { - if (m_dataPtr >= 420U && m_dataPtr <= 500U) - correlateSync(); } if (m_dataPtr == m_endPtr) { @@ -162,6 +154,7 @@ bool CDMRSlotRX::processSample(q15_t sample) case DT_RATE_1_DATA: serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); m_state = DMRRXS_DATA; + m_type = dataType; break; case DT_VOICE_LC_HEADER: case DT_VOICE_PI_HEADER: @@ -203,6 +196,9 @@ bool CDMRSlotRX::processSample(q15_t sample) frame[0U] |= ++m_n; serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); } + } else if (m_state == DMRRXS_DATA) { + frame[0U] = 0x40U | m_type; + serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); } } } diff --git a/DMRSlotRX.h b/DMRSlotRX.h index dbbfc59..82918e6 100644 --- a/DMRSlotRX.h +++ b/DMRSlotRX.h @@ -59,6 +59,7 @@ private: uint16_t m_delay; DMRRX_STATE m_state; uint8_t m_n; + uint8_t m_type; void correlateSync(); void correlateEMB();