Skip to content

Commit

Permalink
remove debug trace log messages (whoops); fix edge case situation whe…
Browse files Browse the repository at this point in the history
…re the modem may stop reading because the response state machine is stuck;
  • Loading branch information
gatekeep committed Jul 7, 2024
1 parent 0e43cf8 commit 369c3be
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 61 deletions.
9 changes: 4 additions & 5 deletions src/common/p25/data/DataBlock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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 (...) {
Expand All @@ -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
Expand Down Expand Up @@ -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);
Expand All @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions src/host/modem/Modem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
}
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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;
}

Expand Down
60 changes: 4 additions & 56 deletions src/host/p25/packet/Data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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());
Expand All @@ -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);
}
}
}

Expand Down Expand Up @@ -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];
Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit 369c3be

Please sign in to comment.