From 369c3bee2554053aaf4105aab4571c9737d36dd7 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Sun, 7 Jul 2024 12:23:49 -0400 Subject: [PATCH] remove debug trace log messages (whoops); fix edge case situation where the modem may stop reading because the response state machine is stuck; --- src/common/p25/data/DataBlock.cpp | 9 +++-- src/host/modem/Modem.cpp | 4 +++ src/host/p25/packet/Data.cpp | 60 +++---------------------------- 3 files changed, 12 insertions(+), 61 deletions(-) diff --git a/src/common/p25/data/DataBlock.cpp b/src/common/p25/data/DataBlock.cpp index c77eb311..ea6c00e9 100644 --- a/src/common/p25/data/DataBlock.cpp +++ b/src/common/p25/data/DataBlock.cpp @@ -72,7 +72,7 @@ bool DataBlock::decode(const uint8_t* data, const DataHeader& header) } #if DEBUG_P25_PDU_DATA - Utils::dump(1U, "P25, DataBlock::decode(), PDU Confirmed Data Block", buffer, P25_PDU_CONFIRMED_LENGTH_BYTES); + Utils::dump(1U, "P25, DataBlock::decode(), Confirmed PDU Data Block", buffer, P25_PDU_CONFIRMED_LENGTH_BYTES); #endif m_serialNo = (buffer[0] & 0xFEU) >> 1; // Confirmed Data Serial No. @@ -102,7 +102,6 @@ bool DataBlock::decode(const uint8_t* data, const DataHeader& header) #if DEBUG_P25_PDU_DATA LogDebug(LOG_P25, "PDU, fmt = $%02X, crc = $%04X, calculated = $%04X", m_fmt, crc, calculated); - Utils::dump(1U, "P25, DataBlock::decode(), Confirmed PDU Data Block", buffer, P25_PDU_CONFIRMED_LENGTH_BYTES); #endif } catch (...) { @@ -122,7 +121,7 @@ bool DataBlock::decode(const uint8_t* data, const DataHeader& header) ::memset(m_data, 0x00U, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); #if DEBUG_P25_PDU_DATA - Utils::dump(1U, "P25, DataBlock::decode(), PDU Unconfirmed Data Block", buffer, P25_PDU_UNCONFIRMED_LENGTH_BYTES); + Utils::dump(1U, "P25, DataBlock::decode(), Unconfirmed PDU Data Block", buffer, P25_PDU_UNCONFIRMED_LENGTH_BYTES); #endif ::memcpy(m_data, buffer, P25_PDU_UNCONFIRMED_LENGTH_BYTES); // Payload Data @@ -172,7 +171,7 @@ void DataBlock::encode(uint8_t* data) buffer[1U] = (crc & 0xFFU); // CRC-9 Check Sum (b0 - b7) #if DEBUG_P25_PDU_DATA - Utils::dump(1U, "P25, DataBlock::encode(), PDU Confirmed Data Block", buffer, P25_PDU_CONFIRMED_LENGTH_BYTES); + Utils::dump(1U, "P25, DataBlock::encode(), Confirmed PDU Data Block", buffer, P25_PDU_CONFIRMED_LENGTH_BYTES); #endif m_trellis.encode34(buffer, data); @@ -184,7 +183,7 @@ void DataBlock::encode(uint8_t* data) ::memcpy(buffer, m_data, P25_PDU_UNCONFIRMED_LENGTH_BYTES); #if DEBUG_P25_PDU_DATA - Utils::dump(1U, "P25, DataBlock::encode(), PDU Unconfirmed Data Block", buffer, P25_PDU_UNCONFIRMED_LENGTH_BYTES); + Utils::dump(1U, "P25, DataBlock::encode(), Unconfirmed PDU Data Block", buffer, P25_PDU_UNCONFIRMED_LENGTH_BYTES); #endif m_trellis.encode12(buffer, data); diff --git a/src/host/modem/Modem.cpp b/src/host/modem/Modem.cpp index e91e5cc1..8ef25066 100644 --- a/src/host/modem/Modem.cpp +++ b/src/host/modem/Modem.cpp @@ -869,6 +869,8 @@ void Modem::clock(uint32_t ms) default: LogWarning(LOG_MODEM, "Unknown message, type = %02X", m_buffer[2U]); Utils::dump("Buffer dump", m_buffer, m_length); + if (m_rspState != RESP_START) + m_rspState = RESP_START; break; } } @@ -2232,6 +2234,7 @@ RESP_TYPE_DVM Modem::getResponse() m_buffer[0U] != DVM_LONG_FRAME_START) { //LogError(LOG_MODEM, "Modem::getResponse(), illegal response, first byte not a frame start; byte = %02X", m_buffer[0U]); ::memset(m_buffer, 0x00U, BUFFER_LENGTH); + m_rspState = RESP_START; return RTM_ERROR; } @@ -2259,6 +2262,7 @@ RESP_TYPE_DVM Modem::getResponse() if (m_buffer[1U] >= 250U && !m_rspDoubleLength) { LogError(LOG_MODEM, "Invalid length received from the modem, len = %u", m_buffer[1U]); + m_rspState = RESP_START; return RTM_ERROR; } diff --git a/src/host/p25/packet/Data.cpp b/src/host/p25/packet/Data.cpp index eb7417df..87738e7d 100644 --- a/src/host/p25/packet/Data.cpp +++ b/src/host/p25/packet/Data.cpp @@ -240,23 +240,13 @@ bool Data::process(uint8_t* data, uint32_t len) if (m_verbose) { LogMessage(LOG_RF, P25_PDU_STR ", ISP, block %u, fmt = $%02X, lastBlock = %u", m_rfData[i].getSerialNo(), m_rfData[i].getFormat(), m_rfData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_rfData[i].getData(dataBlock); - Utils::dump(2U, "Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } uint8_t secondHeader[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; ::memset(secondHeader, 0x00U, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); m_rfData[i].getData(secondHeader); - Utils::dump("p25 second header", secondHeader, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_rfDataHeader.decodeExtAddr(secondHeader); - if (m_verbose) { LogMessage(LOG_RF, P25_PDU_STR ", ISP, sap = $%02X, srcLlId = %u", m_rfDataHeader.getEXSAP(), m_rfDataHeader.getSrcLLId()); @@ -270,13 +260,6 @@ bool Data::process(uint8_t* data, uint32_t len) LogMessage(LOG_RF, P25_PDU_STR ", ISP, block %u, fmt = $%02X, lastBlock = %u", (m_rfDataHeader.getFormat() == PDUFormatType::CONFIRMED) ? m_rfData[i].getSerialNo() : m_rfDataBlockCnt, m_rfData[i].getFormat(), m_rfData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_rfData[i].getData(dataBlock); - Utils::dump(2U, "Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } } @@ -715,13 +698,6 @@ bool Data::processNetwork(uint8_t* data, uint32_t len, uint32_t blockLength) if (m_verbose) { LogMessage(LOG_NET, P25_PDU_STR ", ISP, block %u, fmt = $%02X, lastBlock = %u", m_netData[i].getSerialNo(), m_netData[i].getFormat(), m_netData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_netData[i].getData(dataBlock); - Utils::dump(2U, "Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } uint8_t secondHeader[P25_PDU_HEADER_LENGTH_BYTES]; @@ -741,13 +717,6 @@ bool Data::processNetwork(uint8_t* data, uint32_t len, uint32_t blockLength) LogMessage(LOG_NET, P25_PDU_STR ", block %u, fmt = $%02X, lastBlock = %u", (m_netDataHeader.getFormat() == PDUFormatType::CONFIRMED) ? m_netData[i].getSerialNo() : m_netDataBlockCnt, m_netData[i].getFormat(), m_netData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_netData[i].getData(dataBlock); - Utils::dump(2U, "Network Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } m_netData[i].getData(m_pduUserData + dataOffset); @@ -914,13 +883,6 @@ void Data::writeRF_PDU_User(data::DataHeader& dataHeader, bool extendedAddress, LogMessage(LOG_RF, P25_PDU_STR ", OSP, block %u, fmt = $%02X, lastBlock = %u", (dataHeader.getFormat() == PDUFormatType::CONFIRMED) ? dataBlock.getSerialNo() : i, dataBlock.getFormat(), dataBlock.getLastBlock()); - - if (m_dumpPDUData) { - uint8_t rawDataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(rawDataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - dataBlock.getData(rawDataBlock); - Utils::dump(2U, "Data Block", rawDataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } ::memset(block, 0x00U, P25_PDU_FEC_LENGTH_BYTES); @@ -1536,23 +1498,16 @@ void Data::writeNet_PDU_Buffered() m_netData[i].setSerialNo(i); m_netData[i].setData(m_pduUserData + dataOffset); - ::memset(block, 0x00U, P25_PDU_FEC_LENGTH_BYTES); - m_netData[i].encode(block); - Utils::setBitRange(block, data, offset, P25_PDU_FEC_LENGTH_BITS); - if (m_verbose) { LogMessage(LOG_NET, P25_PDU_STR ", OSP, block %u, fmt = $%02X, lastBlock = %u", (m_netDataHeader.getFormat() == PDUFormatType::CONFIRMED) ? m_netData[i].getSerialNo() : i, m_netData[i].getFormat(), m_netData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_netData[i].getData(dataBlock); - Utils::dump(2U, "Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } + ::memset(block, 0x00U, P25_PDU_FEC_LENGTH_BYTES); + m_netData[i].encode(block); + Utils::setBitRange(block, data, offset, P25_PDU_FEC_LENGTH_BITS); + offset += P25_PDU_FEC_LENGTH_BITS; dataOffset += (m_netDataHeader.getFormat() == PDUFormatType::CONFIRMED) ? P25_PDU_CONFIRMED_DATA_LENGTH_BYTES : P25_PDU_UNCONFIRMED_LENGTH_BYTES; } @@ -1631,13 +1586,6 @@ void Data::writeRF_PDU_Buffered() LogMessage(LOG_RF, P25_PDU_STR ", OSP, block %u, fmt = $%02X, lastBlock = %u", (m_rfDataHeader.getFormat() == PDUFormatType::CONFIRMED) ? m_rfData[i].getSerialNo() : i, m_rfData[i].getFormat(), m_rfData[i].getLastBlock()); - - if (m_dumpPDUData) { - uint8_t dataBlock[P25_PDU_CONFIRMED_DATA_LENGTH_BYTES]; - ::memset(dataBlock, 0xAAU, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - m_rfData[i].getData(dataBlock); - Utils::dump(2U, "Data Block", dataBlock, P25_PDU_CONFIRMED_DATA_LENGTH_BYTES); - } } ::memset(block, 0x00U, P25_PDU_FEC_LENGTH_BYTES);