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;