copy the late entry support from parent VoicePacket class to implement queue clear and state resets;

pull/12/head
Bryan Biedenkapp 4 years ago
parent 66e6787f33
commit 3eb787383f

@ -90,8 +90,10 @@ bool DFSIVoicePacket::process(uint8_t* data, uint32_t len)
uint8_t frameType = m_rfDFSILC.getFrameType(); uint8_t frameType = m_rfDFSILC.getFrameType();
if (frameType == P25_DFSI_VHDR2) { if (frameType == P25_DFSI_VHDR2) {
if (m_p25->m_rfState == RS_RF_LISTENING && m_p25->m_ccRunning) { if (m_p25->m_rfState == RS_RF_LISTENING) {
//m_p25->m_modem->clearP25Data(); if (!m_p25->m_dedicatedControl) {
m_p25->m_modem->clearP25Data();
}
m_p25->m_queue.clear(); m_p25->m_queue.clear();
resetRF(); resetRF();
resetNet(); resetNet();
@ -175,6 +177,16 @@ bool DFSIVoicePacket::process(uint8_t* data, uint32_t len)
m_lastDUID = P25_DUID_LDU1; m_lastDUID = P25_DUID_LDU1;
if (m_p25->m_rfState == RS_RF_LISTENING) { if (m_p25->m_rfState == RS_RF_LISTENING) {
// if this is a late entry call, clear states
if (m_rfLastHDU.getDstId() == 0U) {
if (!m_p25->m_dedicatedControl) {
m_p25->m_modem->clearP25Data();
}
m_p25->m_queue.clear();
resetRF();
resetNet();
}
if (m_p25->m_control) { if (m_p25->m_control) {
if (!m_p25->m_ccRunning && m_p25->m_voiceOnControl) { if (!m_p25->m_ccRunning && m_p25->m_voiceOnControl) {
m_p25->m_trunk->writeRF_ControlData(255U, 0U, false); m_p25->m_trunk->writeRF_ControlData(255U, 0U, false);

Loading…
Cancel
Save

Powered by TurnKey Linux.