From dee0020e11ca4cb2f760e88fca1e5ec77ac77ffe Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Thu, 24 Mar 2016 06:56:02 +0000 Subject: [PATCH] More intelligent use of the m_n field. --- DMRSlotRX.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/DMRSlotRX.cpp b/DMRSlotRX.cpp index 9eef38a..68b42e9 100644 --- a/DMRSlotRX.cpp +++ b/DMRSlotRX.cpp @@ -177,7 +177,6 @@ bool CDMRSlotRX::processSample(q15_t sample) } } else if (m_control == 0x20U) { // Voice sync - DEBUG2("DMRSlotRX: voice sync for slot", m_slot ? 2U : 1U); serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); m_state = DMRRXS_VOICE; m_syncCount = 0U; @@ -196,8 +195,14 @@ bool CDMRSlotRX::processSample(q15_t sample) // Voice data if (m_state == DMRRXS_VOICE) { - frame[0U] |= ++m_n; - serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); + if (m_n >= 5U) { + frame[0U] = 0x20U; + serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); + m_n = 0U; + } else { + frame[0U] |= ++m_n; + serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); + } } } }