diff --git a/src/host/p25/Control.cpp b/src/host/p25/Control.cpp index c6226cea..f3de3393 100644 --- a/src/host/p25/Control.cpp +++ b/src/host/p25/Control.cpp @@ -1499,8 +1499,6 @@ void Control::processNetwork() return; } - m_networkWatchdog.start(); - if (duid == DUID::PDU) { frameLength = length; data = std::unique_ptr(new uint8_t[length]); @@ -1529,6 +1527,8 @@ void Control::processNetwork() return; } + m_networkWatchdog.start(); + uint32_t blockLength = GET_UINT24(buffer, 8U); uint8_t totalBlocks = data[20U] + 1U; uint8_t currentBlock = buffer[21U]; @@ -1633,6 +1633,8 @@ void Control::processNetwork() break; } + m_networkWatchdog.start(); + m_voice->processNetwork(data.get(), frameLength, control, lsd, duid, frameType); break; diff --git a/src/host/p25/packet/Voice.cpp b/src/host/p25/packet/Voice.cpp index b81a2c1a..74e2bfc9 100644 --- a/src/host/p25/packet/Voice.cpp +++ b/src/host/p25/packet/Voice.cpp @@ -85,7 +85,6 @@ void Voice::resetNet() m_pktLDU1Count = 0U; m_grpUpdtCount = 0U; m_roamLDU1Count = 0U; - m_p25->m_networkWatchdog.stop(); m_netLastDUID = DUID::TDU; } @@ -182,6 +181,11 @@ bool Voice::process(uint8_t* data, uint32_t len) } resetNet(); + m_p25->m_netTimeoutTimer.stop(); + m_p25->m_netTimeout = false; + m_p25->m_netTGHang.stop(); + m_p25->m_networkWatchdog.stop(); + m_p25->m_netState = RS_NET_IDLE; if (m_p25->m_network != nullptr) m_p25->m_network->resetP25();