From ac03981aae232f49077a4ca1d469186e1425225d Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 27 Feb 2017 08:23:22 +0000 Subject: [PATCH] Create the correct P25/YSF lost message at the end of the data. --- Modem.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Modem.cpp b/Modem.cpp index 3465a70..a479a67 100644 --- a/Modem.cpp +++ b/Modem.cpp @@ -377,7 +377,13 @@ void CModem::processP25() return; uint8_t control; - ::fread(&control, sizeof(uint8_t), 1U, m_p25FP); + if (::fread(&control, sizeof(uint8_t), 1U, m_p25FP) != 1) { + unsigned char data = 1U; + m_rxP25Data.addData(&data, 1U); + + data = TAG_LOST; + m_rxP25Data.addData(&data, 1U); + } unsigned char bytes[P25_LDU_FRAME_LENGTH_SYMBOLS * sizeof(int16_t)]; ::fread(bytes, sizeof(int16_t), P25_LDU_FRAME_LENGTH_SYMBOLS, m_p25FP); @@ -430,7 +436,13 @@ void CModem::processYSF() return; uint8_t control; - ::fread(&control, sizeof(uint8_t), 1U, m_ysfFP); + if (::fread(&control, sizeof(uint8_t), 1U, m_ysfFP) != 1) { + unsigned char data = 1U; + m_rxYSFData.addData(&data, 1U); + + data = TAG_LOST; + m_rxYSFData.addData(&data, 1U); + } unsigned char bytes[YSF_FRAME_LENGTH_SYMBOLS * sizeof(int16_t)]; ::fread(bytes, sizeof(int16_t), YSF_FRAME_LENGTH_SYMBOLS, m_ysfFP);