From dedaa57580433051281e6656d29c12a551d91972 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Thu, 29 Apr 2021 18:42:21 +0000 Subject: [PATCH] minor alteration to some debug/trace and logging; --- Utils.cpp | 69 +++++++++++++++++++++++++++++++++++++++++++ Utils.h | 3 ++ dmr/ControlPacket.cpp | 4 --- dmr/DMRDefines.h | 11 +++++++ dmr/DataPacket.cpp | 44 +++++++++++++++++++-------- dmr/Slot.cpp | 12 ++++++-- dmr/VoicePacket.cpp | 36 +++++++++------------- modem/Modem.cpp | 52 +++++++++++++++++--------------- p25/Control.cpp | 14 ++++++--- p25/DataPacket.cpp | 16 ---------- p25/TrunkPacket.cpp | 20 ++----------- p25/VoicePacket.cpp | 36 ++++------------------ 12 files changed, 183 insertions(+), 134 deletions(-) diff --git a/Utils.cpp b/Utils.cpp index e531ccb2..56bdd807 100644 --- a/Utils.cpp +++ b/Utils.cpp @@ -152,6 +152,75 @@ void Utils::dump(int level, const std::string& title, const bool* bits, uint32_t dump(level, title, bytes, nBytes); } +/// +/// +/// +/// +/// +/// +void Utils::symbols(const std::string& title, const uint8_t* data, uint32_t length) +{ + assert(data != NULL); + + ::Log(2U, "SYMBOLS", "%s", title.c_str()); + + uint32_t offset = 0U; + uint32_t count = 0U; + + std::string microslotHeader; + for (unsigned j = 0; j < 2; j++) { + char temp[27U]; + ::sprintf(temp, "_____________%u____________", j); + microslotHeader += temp; + + ::sprintf(temp, " "); + microslotHeader += temp; + } + + ::Log(2U, "SYMBOLS", "MCR: % s\r\n", microslotHeader.c_str()); + + uint32_t bufLen = length; + while (bufLen > 0U) { + std::string output; + + uint32_t bytes = (bufLen > 18U) ? 18U : bufLen; + + uint32_t symOffset = offset; + + // iterate through bytes in groups of 2 + for (unsigned j = 0; j < 2U; j++) { + if (symOffset + 1 > length) { + break; + } + + for (unsigned i = 0U; i < 9U; i++) { + if (symOffset + i > length) { + break; + } + + char temp[10U]; + ::sprintf(temp, "%02X ", data[symOffset + i]); + output += temp; + } + + char temp[10U]; + ::sprintf(temp, " "); + output += temp; + symOffset += 9; + } + + ::Log(2U, "SYMBOLS", "%03u: %s\r\n", count, output.c_str()); + + offset += 18U; + count += 2U; + + if (bufLen >= 18U) + bufLen -= 18U; + else + bufLen = 0U; + } +} + /// /// /// diff --git a/Utils.h b/Utils.h index b627a452..2535eca9 100644 --- a/Utils.h +++ b/Utils.h @@ -56,6 +56,9 @@ public: /// static void dump(int level, const std::string& title, const bool* bits, uint32_t length); + /// + static void symbols(const std::string& title, const uint8_t* data, uint32_t length); + /// static void byteToBitsBE(uint8_t byte, bool* bits); /// diff --git a/dmr/ControlPacket.cpp b/dmr/ControlPacket.cpp index 60b4914c..94bab4de 100644 --- a/dmr/ControlPacket.cpp +++ b/dmr/ControlPacket.cpp @@ -212,10 +212,6 @@ bool ControlPacket::process(uint8_t* data, uint32_t len) } } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_CSBK", data + 2U, DMR_FRAME_LENGTH_BYTES); - } - return true; } diff --git a/dmr/DMRDefines.h b/dmr/DMRDefines.h index 13cdb8dd..bde06d1e 100644 --- a/dmr/DMRDefines.h +++ b/dmr/DMRDefines.h @@ -33,6 +33,17 @@ #include "Defines.h" +// Data Type ID String(s) +#define DMR_DT_TERMINATOR_WITH_LC "DMR_DT_TERMINATOR_WITH_LC (Terminator with Link Control)" +#define DMR_DT_DATA_HEADER "DMR_DT_DATA_HEADER (Data Header)" +#define DMR_DT_RATE_12_DATA "DMR_DT_RATE_12_DATA (1/2-rate Data)" +#define DMR_DT_RATE_34_DATA "DMR_DT_RATE_34_DATA (3/4-rate Data)" +#define DMR_DT_RATE_1_DATA "DMR_DT_RATE_1_DATA (1-rate Data)" +#define DMR_DT_VOICE_LC_HEADER "DMR_DT_VOICE_LC_HEADER (Voice Header with Link Control)" +#define DMR_DT_VOICE_PI_HEADER "DMR_DT_VOICE_PI_HEADER (Voice Header with Privacy Indicator)" +#define DMR_DT_VOICE_SYNC "DMR_DT_VOICE_SYNC (Voice Data with Sync)" +#define DMR_DT_VOICE "DMR_DT_VOICE (Voice Data)" + namespace dmr { // --------------------------------------------------------------------------- diff --git a/dmr/DataPacket.cpp b/dmr/DataPacket.cpp index 07585ee0..46e7c176 100644 --- a/dmr/DataPacket.cpp +++ b/dmr/DataPacket.cpp @@ -124,8 +124,8 @@ bool DataPacket::process(uint8_t* data, uint32_t len) } } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_TERMINATOR_WITH_LC", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_TERMINATOR_WITH_LC ", slot = %u, dstId = %u", m_slot->m_slotNo, m_slot->m_rfLC->getDstId()); } if (m_slot->m_rssi != 0U) { @@ -207,8 +207,9 @@ bool DataPacket::process(uint8_t* data, uint32_t len) m_slot->setShortLC(m_slot->m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_PRIVATE, false); } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_DATA_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_DATA_HEADER ", slot = %u, dstId = %u, srcId = %u, group = %u, blocks = %u", m_slot->m_slotNo, m_slot->m_rfLC->getDstId(), m_slot->m_rfLC->getSrcId(), + m_slot->m_rfLC->getFLCO() == FLCO_GROUP, dataHeader.getBlocks()); } ::ActivityLog("DMR", true, "Slot %u RF data header from %u to %s%u, %u blocks", m_slot->m_slotNo, srcId, gi ? "TG " : "", dstId, m_slot->m_rfFrames); @@ -256,7 +257,7 @@ bool DataPacket::process(uint8_t* data, uint32_t len) } else { LogWarning(LOG_RF, "DMR Slot %u, DT_RATE_34_DATA, unfixable RF rate 3/4 data", m_slot->m_slotNo); - Utils::dump(1U, "Data", data + 2U, DMR_FRAME_LENGTH_BYTES); + Utils::dump(1U, "Unfixable PDU Data", data + 2U, DMR_FRAME_LENGTH_BYTES); } m_pduDataOffset += 18U; @@ -288,8 +289,16 @@ bool DataPacket::process(uint8_t* data, uint32_t len) m_slot->writeEndRF(); } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_RATE_12/34_DATA", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + if (dataType == DT_RATE_12_DATA) { + LogMessage(LOG_RF, DMR_DT_RATE_12_DATA ", block = %u", m_slot->m_rfFrames + 1); + } + else if (dataType == DT_RATE_34_DATA) { + LogMessage(LOG_RF, DMR_DT_RATE_34_DATA ", block = %u", m_slot->m_rfFrames + 1); + } + else { + LogMessage(LOG_RF, DMR_DT_RATE_1_DATA ", block = %u", m_slot->m_rfFrames + 1); + } } return true; @@ -340,8 +349,8 @@ void DataPacket::processNetwork(const data::Data& dmrData) } } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Network Frame - DT_TERMINATOR_WITH_LC", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_TERMINATOR_WITH_LC ", slot = %u, dstId = %u", m_slot->m_slotNo, m_slot->m_netLC->getDstId()); } // We've received the voice header and terminator haven't we? @@ -396,8 +405,9 @@ void DataPacket::processNetwork(const data::Data& dmrData) m_slot->setShortLC(m_slot->m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_PRIVATE, false); - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Network Frame - DT_DATA_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_DATA_HEADER ", slot = %u, dstId = %u, srcId = %u, group = %u, blocks = %u", m_slot->m_slotNo, m_slot->m_rfLC->getDstId(), m_slot->m_rfLC->getSrcId(), + m_slot->m_rfLC->getFLCO() == FLCO_GROUP, dataHeader.getBlocks()); } ::ActivityLog("DMR", false, "Slot %u network data header from %u to %s%u, %u blocks", @@ -468,8 +478,16 @@ void DataPacket::processNetwork(const data::Data& dmrData) m_slot->writeQueueNet(data); - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Network Frame - DT_RATE_12/34_DATA", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + if (dataType == DT_RATE_12_DATA) { + LogMessage(LOG_RF, DMR_DT_RATE_12_DATA ", block = %u", m_slot->m_netFrames + 1); + } + else if (dataType == DT_RATE_34_DATA) { + LogMessage(LOG_RF, DMR_DT_RATE_34_DATA ", block = %u", m_slot->m_netFrames + 1); + } + else { + LogMessage(LOG_RF, DMR_DT_RATE_1_DATA ", block = %u", m_slot->m_netFrames + 1); + } } } diff --git a/dmr/Slot.cpp b/dmr/Slot.cpp index 7dfe6c06..2aba1aa9 100644 --- a/dmr/Slot.cpp +++ b/dmr/Slot.cpp @@ -168,8 +168,6 @@ bool Slot::processFrame(uint8_t *data, uint32_t len) { assert(data != NULL); - // Utils::dump(2U, "!!! *RX DMR Raw", data, len); - if (data[0U] == TAG_LOST && m_rfState == RS_RF_AUDIO) { if (m_rssi != 0U) { ::ActivityLog("DMR", true, "Slot %u RF voice transmission lost, %.1f seconds, BER: %.1f%%, RSSI: -%u/-%u/-%u dBm", @@ -252,7 +250,7 @@ bool Slot::processFrame(uint8_t *data, uint32_t len) } if ((dataSync || voiceSync) && m_debug) { - Utils::dump(1U, "!!! *RX DMR Modem Frame", data, len); + Utils::symbols("!!! *Rx DMR", data + 2U, len - 2U); } if ((dataSync || voiceSync) && m_rfState != RS_RF_LISTENING) @@ -546,6 +544,10 @@ void Slot::writeQueueRF(const uint8_t *data) return; } + if (m_debug) { + Utils::symbols("!!! *Tx DMR", data + 2U, len - 2U); + } + m_queue.addData(&len, 1U); m_queue.addData(data, len); } @@ -566,6 +568,10 @@ void Slot::writeQueueNet(const uint8_t *data) return; } + if (m_debug) { + Utils::symbols("!!! *Tx DMR", data + 2U, len - 2U); + } + m_queue.addData(&len, 1U); m_queue.addData(data, len); } diff --git a/dmr/VoicePacket.cpp b/dmr/VoicePacket.cpp index 35a376a1..37d80161 100644 --- a/dmr/VoicePacket.cpp +++ b/dmr/VoicePacket.cpp @@ -134,10 +134,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) m_slot->m_data->m_lastRejectId = 0U; - if (m_verbose) { - LogMessage(LOG_RF, "DMR Slot %u, DT_VOICE_LC_HEADER, srcId = %u, dstId = %u, FLCO = $%02X, FID = $%02X, PF = %u", m_slot->m_slotNo, lc->getSrcId(), lc->getDstId(), lc->getFLCO(), lc->getFID(), lc->getPF()); - } - uint8_t fid = lc->getFID(); // NOTE: this is fiddly -- on Motorola a FID of 0x10 indicates a SU has transmitted with Enhanced Privacy enabled -- this might change @@ -197,8 +193,8 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) m_slot->setShortLC(m_slot->m_slotNo, dstId, flco, true); } - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_VOICE_LC_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_VOICE_LC_HEADER ", slot = %u, srcId = %u, dstId = %u, FLCO = $%02X, FID = $%02X, PF = %u", m_slot->m_slotNo, lc->getSrcId(), lc->getDstId(), lc->getFLCO(), lc->getFID(), lc->getPF()); } ::ActivityLog("DMR", true, "Slot %u RF %svoice header from %u to %s%u", m_slot->m_slotNo, encrypted ? "encrypted " : "", srcId, flco == FLCO_GROUP ? "TG " : "", dstId); @@ -228,8 +224,8 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) m_slot->writeNetworkRF(data, DT_VOICE_PI_HEADER); - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Frame - DT_VOICE_PI_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, DMR_DT_VOICE_PI_HEADER ", slot = %u", m_slot->m_slotNo); } return true; @@ -250,8 +246,8 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) if (fid == FID_ETSI || fid == FID_DMRA) { errors = m_fec.regenerateDMR(data + 2U); if (m_verbose) { - LogMessage(LOG_RF, "DMR Slot %u, DT_VOICE_SYNC audio, sequence no = 0, errs = %u/141 (%.1f%%)", - m_slot->m_slotNo, errors, float(errors) / 1.41F); + LogMessage(LOG_RF, DMR_DT_VOICE_SYNC ", audio, slot = %u, srcId = %u, dstId = %u, seqNo = 0, errs = %u/141 (%.1f%%)", m_slot->m_slotNo, m_slot->m_rfLC->getSrcId(), m_slot->m_rfLC->getDstId(), + errors, float(errors) / 1.41F); } m_slot->m_rfErrs += errors; @@ -303,8 +299,8 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) if (fid == FID_ETSI || fid == FID_DMRA) { errors = m_fec.regenerateDMR(data + 2U); if (m_verbose) { - LogMessage(LOG_RF, "DMR Slot %u, DT_VOICE audio, sequence no = %u, errs = %u/141 (%.1f%%)", - m_slot->m_slotNo, m_rfN, errors, float(errors) / 1.41F); + LogMessage(LOG_RF, DMR_DT_VOICE ", audio, slot = %u, srcId = %u, dstId = %u, seqNo = %u, errs = %u/141 (%.1f%%)", m_slot->m_slotNo, m_slot->m_rfLC->getSrcId(), m_slot->m_rfLC->getDstId(), + m_rfN, errors, float(errors) / 1.41F); } m_slot->m_rfErrs += errors; @@ -333,8 +329,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) switch (flco) { case FLCO_GROUP: case FLCO_PRIVATE: - // ::sprintf(text, "DMR Slot %u, Embedded LC", m_slotNo); - // Utils::dump(1U, text, data, 9U); break; case FLCO_GPS_INFO: @@ -666,8 +660,8 @@ void VoicePacket::processNetwork(const data::Data& dmrData) m_slot->setShortLC(m_slot->m_slotNo, dstId, flco, true); - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Network Frame - DT_VOICE_LC_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_NET, DMR_DT_VOICE_LC_HEADER ", slot = %u, srcId = %u, dstId = %u, FLCO = $%02X, FID = $%02X, PF = %u", m_slot->m_slotNo, lc->getSrcId(), lc->getDstId(), lc->getFLCO(), lc->getFID(), lc->getPF()); } ::ActivityLog("DMR", false, "Slot %u network voice header from %u to %s%u", m_slot->m_slotNo, srcId, flco == FLCO_GROUP ? "TG " : "", dstId); @@ -755,8 +749,8 @@ void VoicePacket::processNetwork(const data::Data& dmrData) m_slot->writeQueueNet(data); - if (m_debug) { - Utils::dump(2U, "!!! *TX DMR Network Frame - DT_VOICE_PI_HEADER", data + 2U, DMR_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_NET, DMR_DT_VOICE_PI_HEADER ", slot = %u", m_slot->m_slotNo); } } else if (dataType == DT_VOICE_SYNC) { @@ -879,8 +873,8 @@ void VoicePacket::processNetwork(const data::Data& dmrData) if (fid == FID_ETSI || fid == FID_DMRA) { m_slot->m_netErrs += m_fec.regenerateDMR(data + 2U); if (m_verbose) { - LogMessage(LOG_NET, "DMR Slot %u, DT_VOICE audio, sequence no = %u, errs = %u/141 (%.1f%%)", - m_slot->m_slotNo, m_netN, m_slot->m_netErrs, float(m_slot->m_netErrs) / 1.41F); + LogMessage(LOG_NET, DMR_DT_VOICE ", audio, slot = %u, srcId = %u, dstId = %u, seqNo = %u, errs = %u/141 (%.1f%%)", m_slot->m_slotNo, m_slot->m_netLC->getSrcId(), m_slot->m_netLC->getDstId(), + m_netN, m_slot->m_netErrs, float(m_slot->m_netErrs) / 1.41F); } } m_slot->m_netBits += 141U; @@ -902,8 +896,6 @@ void VoicePacket::processNetwork(const data::Data& dmrData) switch (flco) { case FLCO_GROUP: case FLCO_PRIVATE: - // ::sprintf(text, "DMR Slot %u, Embedded LC", m_slotNo); - // Utils::dump(1U, text, data, 9U); break; case FLCO_GPS_INFO: if (m_dumpTAData) { diff --git a/modem/Modem.cpp b/modem/Modem.cpp index bb0f38cf..ee416103 100644 --- a/modem/Modem.cpp +++ b/modem/Modem.cpp @@ -432,8 +432,9 @@ void Modem::clock(uint32_t ms) /** Digital Mobile Radio */ case CMD_DMR_DATA1: { - if (m_trace) - Utils::dump(1U, "RX DMR Data 1", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX DMR Data 1", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_DMR_DATA1 double length?; len = %u", m_length); break; @@ -454,8 +455,9 @@ void Modem::clock(uint32_t ms) case CMD_DMR_DATA2: { - if (m_trace) - Utils::dump(1U, "RX DMR Data 2", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX DMR Data 2", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_DMR_DATA2 double length?; len = %u", m_length); break; @@ -476,8 +478,9 @@ void Modem::clock(uint32_t ms) case CMD_DMR_LOST1: { - if (m_trace) - Utils::dump(1U, "RX DMR Lost 1", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX DMR Lost 1", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_DMR_LOST1 double length?; len = %u", m_length); break; @@ -493,8 +496,9 @@ void Modem::clock(uint32_t ms) case CMD_DMR_LOST2: { - if (m_trace) - Utils::dump(1U, "RX DMR Lost 2", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX DMR Lost 2", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_DMR_LOST2 double length?; len = %u", m_length); break; @@ -511,8 +515,9 @@ void Modem::clock(uint32_t ms) /** Project 25 */ case CMD_P25_DATA: { - if (m_trace) - Utils::dump(1U, "RX P25 Data", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX P25 Data", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_P25_DATA double length?; len = %u", m_length); break; @@ -530,8 +535,9 @@ void Modem::clock(uint32_t ms) case CMD_P25_LOST: { - if (m_trace) - Utils::dump(1U, "RX P25 Lost", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "RX P25 Lost", m_buffer, m_length); + if (m_rspDoubleLength) { LogError(LOG_MODEM, "CMD_P25_LOST double length?; len = %u", m_length); break; @@ -548,8 +554,8 @@ void Modem::clock(uint32_t ms) /** General */ case CMD_GET_STATUS: { - // if (m_trace) - // Utils::dump(1U, "Get Status", m_buffer, m_length); + //if (m_trace) + // Utils::dump(1U, "Get Status", m_buffer, m_length); m_modemState = (DVM_STATE)m_buffer[4U]; @@ -674,8 +680,8 @@ void Modem::clock(uint32_t ms) m_txDMRData1.getData(&len, 1U); m_txDMRData1.getData(m_buffer, len); - if (m_trace) - Utils::dump(1U, "TX DMR Data 1", m_buffer, len); + //if (m_trace) + // Utils::dump(1U, "TX DMR Data 1", m_buffer, len); int ret = write(m_buffer, len); if (ret != int(len)) @@ -692,8 +698,8 @@ void Modem::clock(uint32_t ms) m_txDMRData2.getData(&len, 1U); m_txDMRData2.getData(m_buffer, len); - if (m_trace) - Utils::dump(1U, "TX DMR Data 2", m_buffer, len); + //if (m_trace) + // Utils::dump(1U, "TX DMR Data 2", m_buffer, len); int ret = write(m_buffer, len); if (ret != int(len)) @@ -710,9 +716,8 @@ void Modem::clock(uint32_t ms) m_txP25Data.getData(&len, 1U); m_txP25Data.getData(m_buffer, len); - if (m_trace) { - Utils::dump(1U, "TX P25 Data", m_buffer, len); - } + //if (m_trace) + // Utils::dump(1U, "TX P25 Data", m_buffer, len); int ret = write(m_buffer, len); if (ret != int(len)) @@ -1198,9 +1203,8 @@ bool Modem::sendCWId(const std::string& callsign) for (uint32_t i = 0U; i < length; i++) buffer[i + 3U] = callsign.at(i); - if (m_trace) { - Utils::dump(1U, "CW ID Data", buffer, length + 3U); - } + //if (m_trace) + // Utils::dump(1U, "CW ID Data", buffer, length + 3U); return write(buffer, length + 3U) == int(length + 3U); } diff --git a/p25/Control.cpp b/p25/Control.cpp index 0b9761dd..b4ebba25 100644 --- a/p25/Control.cpp +++ b/p25/Control.cpp @@ -285,8 +285,6 @@ bool Control::processFrame(uint8_t* data, uint32_t len) { assert(data != NULL); - // Utils::dump(2U, "!!! *RX P25 Raw", data, len); - bool sync = data[1U] == 0x01U; if (data[0U] == TAG_LOST && m_rfState == RS_RF_AUDIO) { @@ -373,7 +371,7 @@ bool Control::processFrame(uint8_t* data, uint32_t len) } if (sync && m_debug) { - Utils::dump(2U, "!!! *RX P25 Frame", data, len); + Utils::symbols("!!! *Rx P25", data + 2U, len - 2U); } // Decode the NID @@ -672,6 +670,10 @@ void Control::writeQueueRF(const uint8_t* data, uint32_t length) return; } + if (m_debug) { + Utils::symbols("!!! *Tx P25", data + 2U, length - 2U); + } + uint8_t len = length; m_queue.addData(&len, 1U); @@ -696,6 +698,10 @@ void Control::writeQueueNet(const uint8_t* data, uint32_t length) return; } + if (m_debug) { + Utils::symbols("!!! *Tx P25", data + 2U, length - 2U); + } + uint8_t len = length; m_queue.addData(&len, 1U); @@ -729,7 +735,7 @@ void Control::processNetwork() m_networkWatchdog.start(); if (m_debug) { - Utils::dump(2U, "!!! *RX P25 Network Frame - Data Bytes", data, length); + Utils::dump(2U, "!!! *P25 Network Frame", data, length); } switch (duid) { diff --git a/p25/DataPacket.cpp b/p25/DataPacket.cpp index 9b753622..45b73bf7 100644 --- a/p25/DataPacket.cpp +++ b/p25/DataPacket.cpp @@ -455,10 +455,6 @@ bool DataPacket::processNetwork(uint8_t* data, uint32_t len, lc::LC& control, da m_p25->writeRF_Nulls(); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_PDU", pdu + 2U, newByteLength); - } - ::ActivityLog("P25", true, "end of RF data transmission"); m_netDataHeader.reset(); @@ -664,10 +660,6 @@ void DataPacket::writeRF_PDU() if (!m_p25->m_ccRunning) { m_p25->writeRF_Nulls(); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_PDU", pdu + 2U, newByteLength); - } } /// @@ -760,10 +752,6 @@ void DataPacket::writeRF_PDU_Reg_Response(uint8_t regType, uint32_t llId, ulong6 pdu[1U] = 0x00U; m_p25->writeQueueRF(pdu, newByteLength + 2U); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_PDU", pdu + 2U, newByteLength); - } } /// @@ -823,10 +811,6 @@ void DataPacket::writeRF_PDU_Ack_Response(uint8_t ackClass, uint8_t ackType, uin pdu[1U] = 0x00U; m_p25->writeQueueRF(pdu, newByteLength + 2U); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_PDU", pdu + 2U, newByteLength); - } } /// diff --git a/p25/TrunkPacket.cpp b/p25/TrunkPacket.cpp index 7a062e81..343bbb1e 100644 --- a/p25/TrunkPacket.cpp +++ b/p25/TrunkPacket.cpp @@ -1554,8 +1554,8 @@ void TrunkPacket::writeRF_TDULC(uint8_t duid, bool noNetwork) m_p25->writeQueueRF(data, P25_TDULC_FRAME_LENGTH_BYTES + 2U); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_TDULC", data + 2U, P25_TDULC_FRAME_LENGTH_BYTES); + if (m_verbose) { + LogMessage(LOG_RF, P25_TDULC_STR ", lc = $%02X, srcId = %u", m_netTDULC.getLCO(), m_netTDULC.getSrcId()); } } @@ -1660,10 +1660,6 @@ void TrunkPacket::writeRF_TSDU_SBF(bool noNetwork, bool clearBeforeWrite) m_p25->writeQueueRF(data, P25_TSDU_FRAME_LENGTH_BYTES + 2U); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - (SBF) P25_DUID_TSDU", data + 2U, P25_TSDU_FRAME_LENGTH_BYTES); - } } /// @@ -1755,10 +1751,6 @@ void TrunkPacket::writeRF_TSDU_MBF(bool clearBeforeWrite) m_p25->writeQueueRF(data, P25_TSDU_TRIPLE_FRAME_LENGTH_BYTES + 2U); - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - (MBF) P25_DUID_TSDU", data + 2U, P25_TSDU_TRIPLE_FRAME_LENGTH_BYTES); - } - ::memset(m_rfMBF, 0x00U, P25_MAX_PDU_COUNT * P25_LDU_FRAME_LENGTH_BYTES + 2U); m_mbfCnt = 0U; return; @@ -2458,10 +2450,6 @@ void TrunkPacket::writeNet_TDULC() LogMessage(LOG_NET, P25_TDULC_STR ", lc = $%02X, srcId = %u", m_netTDULC.getLCO(), m_netTDULC.getSrcId()); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_TDULC", buffer + 2U, P25_TDULC_FRAME_LENGTH_BYTES); - } - if (m_p25->m_voice->m_netFrames > 0) { ::ActivityLog("P25", false, "network end of transmission, %.1f seconds, %u%% packet loss", float(m_p25->m_voice->m_netFrames) / 50.0F, (m_p25->m_voice->m_netLost * 100U) / m_p25->m_voice->m_netFrames); @@ -2509,10 +2497,6 @@ void TrunkPacket::writeNet_TSDU() m_p25->writeQueueNet(buffer, P25_TSDU_FRAME_LENGTH_BYTES + 2U); - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_TSDU", buffer + 2U, P25_TSDU_FRAME_LENGTH_BYTES); - } - if (m_network != NULL) m_network->resetP25(); } diff --git a/p25/VoicePacket.cpp b/p25/VoicePacket.cpp index b874b4e4..86421b40 100644 --- a/p25/VoicePacket.cpp +++ b/p25/VoicePacket.cpp @@ -409,10 +409,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) if (m_verbose) { LogMessage(LOG_RF, P25_HDU_STR ", dstId = %u, algo = $%02X, kid = $%04X", m_rfLC.getDstId(), m_rfLC.getAlgId(), m_rfLC.getKId()); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_HDU", buffer + 2U, P25_HDU_FRAME_LENGTH_BYTES); - } } if (m_p25->m_rfState == RS_RF_AUDIO) { @@ -526,10 +522,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) m_rfLC.getSrcId(), m_rfLC.getDstId(), m_rfLC.getGroup(), m_rfLC.getEmergency(), m_rfLC.getEncrypted(), m_rfLC.getPriority(), errors, float(errors) / 12.33F); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_LDU1", data + 2U, P25_LDU_FRAME_LENGTH_BYTES); - } - return true; } } @@ -610,10 +602,6 @@ bool VoicePacket::process(uint8_t* data, uint32_t len) m_rfLC.getAlgId(), m_rfLC.getKId(), errors, float(errors) / 12.33F); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Frame - P25_DUID_LDU2", data + 2U, P25_LDU_FRAME_LENGTH_BYTES); - } - return true; } } @@ -1014,10 +1002,6 @@ void VoicePacket::writeNet_TDU() LogMessage(LOG_NET, P25_TDU_STR ", srcId = %u", m_netLC.getSrcId()); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_TDU", buffer + 2U, P25_TDU_FRAME_LENGTH_BYTES); - } - if (m_netFrames > 0) { ::ActivityLog("P25", false, "network end of transmission, %.1f seconds, %u%% packet loss", float(m_netFrames) / 50.0F, (m_netLost * 100U) / m_netFrames); @@ -1157,7 +1141,9 @@ void VoicePacket::writeNet_LDU1(const lc::LC& control, const data::LowSpeedData& ::memcpy(mi + 3U, m_netLDU2 + 76U, 3U); ::memcpy(mi + 6U, m_netLDU2 + 101U, 3U); - // Utils::dump(1U, "HDU Network MI", mi, P25_MI_LENGTH_BYTES); + if (m_verbose && m_debug) { + Utils::dump(1U, "Network HDU MI", mi, P25_MI_LENGTH_BYTES); + } m_netLC.setMI(mi); m_rfLC.setMI(mi); @@ -1259,10 +1245,6 @@ void VoicePacket::writeNet_LDU1(const lc::LC& control, const data::LowSpeedData& if (m_verbose) { LogMessage(LOG_NET, P25_HDU_STR ", dstId = %u, algo = $%02X, kid = $%04X", m_netLC.getDstId(), m_netLC.getAlgId(), m_netLC.getKId()); } - - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_HDU", buffer + 2U, P25_HDU_FRAME_LENGTH_BYTES); - } } else { if (m_verbose) { @@ -1334,10 +1316,6 @@ void VoicePacket::writeNet_LDU1(const lc::LC& control, const data::LowSpeedData& m_netLC.getSrcId(), m_netLC.getDstId(), m_netLC.getGroup(), m_netLC.getEmergency(), m_netLC.getEncrypted(), m_netLC.getPriority(), loss); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_LDU1", buffer + 2U, P25_LDU_FRAME_LENGTH_BYTES); - } - ::memset(m_netLDU1, 0x00U, 9U * 25U); m_netFrames += 9U; @@ -1383,7 +1361,9 @@ void VoicePacket::writeNet_LDU2(const lc::LC& control, const data::LowSpeedData& ::memcpy(mi + 3U, m_netLDU2 + 76U, 3U); ::memcpy(mi + 6U, m_netLDU2 + 101U, 3U); - // Utils::dump(1U, "LDU2 Network MI", mi, P25_MI_LENGTH_BYTES); + if (m_verbose && m_debug) { + Utils::dump(1U, "Network LDU2 MI", mi, P25_MI_LENGTH_BYTES); + } m_netLC.setMI(mi); m_netLC.setAlgId(algId); @@ -1441,10 +1421,6 @@ void VoicePacket::writeNet_LDU2(const lc::LC& control, const data::LowSpeedData& LogMessage(LOG_NET, P25_LDU2_STR " audio, algo = $%02X, kid = $%04X, %u%% packet loss", m_netLC.getAlgId(), m_netLC.getKId(), loss); } - if (m_debug) { - Utils::dump(2U, "!!! *TX P25 Network Frame - P25_DUID_LDU2", buffer + 2U, P25_LDU_FRAME_LENGTH_BYTES); - } - ::memset(m_netLDU2, 0x00U, 9U * 25U); m_netFrames += 9U;