From d467405a01dd1af69351842fb8059ed80b3d4268 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Sun, 7 Jul 2024 13:56:18 -0400 Subject: [PATCH] ensure TDU preamble is sent before voice for late entry; --- src/host/p25/Control.cpp | 3 +++ src/host/p25/packet/Voice.cpp | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/host/p25/Control.cpp b/src/host/p25/Control.cpp index 1ee93fb5..c7273301 100644 --- a/src/host/p25/Control.cpp +++ b/src/host/p25/Control.cpp @@ -1596,6 +1596,9 @@ void Control::writeRF_Nulls() void Control::writeRF_Preamble(uint32_t preambleCount, bool force) { + if (!m_duplex && !force) + return; + if (preambleCount == 0) { preambleCount = m_tduPreambleCount; } diff --git a/src/host/p25/packet/Voice.cpp b/src/host/p25/packet/Voice.cpp index 08c903b4..270b5d76 100644 --- a/src/host/p25/packet/Voice.cpp +++ b/src/host/p25/packet/Voice.cpp @@ -159,9 +159,7 @@ bool Voice::process(uint8_t* data, uint32_t len) } } - if (m_p25->m_duplex) { - m_p25->writeRF_Preamble(); - } + m_p25->writeRF_Preamble(); m_p25->m_rfTGHang.start(); m_p25->m_netTGHang.stop(); @@ -517,6 +515,8 @@ bool Voice::process(uint8_t* data, uint32_t len) else { frameType = FrameType::HDU_LATE_ENTRY; LogWarning(LOG_RF, P25_HDU_STR ", not transmitted; possible late entry, dstId = %u, algo = $%02X, kid = $%04X", m_rfLastHDU.getDstId(), m_rfLastHDU.getAlgId(), m_rfLastHDU.getKId()); + + m_p25->writeRF_Preamble(); } // if voice on control; insert group voice channel updates directly after HDU but before LDUs