More intelligent use of the m_n field.

This commit is contained in:
Jonathan Naylor 2016-03-24 06:56:02 +00:00
parent 17f212db3b
commit dee0020e11
1 changed files with 8 additions and 3 deletions

View File

@ -177,7 +177,6 @@ bool CDMRSlotRX::processSample(q15_t sample)
} }
} else if (m_control == 0x20U) { } else if (m_control == 0x20U) {
// Voice sync // Voice sync
DEBUG2("DMRSlotRX: voice sync for slot", m_slot ? 2U : 1U);
serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U);
m_state = DMRRXS_VOICE; m_state = DMRRXS_VOICE;
m_syncCount = 0U; m_syncCount = 0U;
@ -196,11 +195,17 @@ bool CDMRSlotRX::processSample(q15_t sample)
// Voice data // Voice data
if (m_state == DMRRXS_VOICE) { if (m_state == DMRRXS_VOICE) {
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; frame[0U] |= ++m_n;
serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U); serial.writeDMRData(m_slot, frame, DMR_FRAME_LENGTH_BYTES + 1U);
} }
} }
} }
}
m_dataPtr++; m_dataPtr++;