Add debugging messages for DMR data packets

This commit is contained in:
Alex Ernst
2023-09-17 22:36:43 +02:00
parent 10ec9bd544
commit 3a670f84c9

View File

@@ -531,23 +531,33 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
if (m_rfState != RS_RF_DATA || m_rfFrames == 0U) if (m_rfState != RS_RF_DATA || m_rfFrames == 0U)
return false; return false;
// Regenerate the rate 1/2 payload char title[80U];
if (dataType == DT_RATE_12_DATA) { // Regenerate the rate 1/2 payload
CBPTC19696 bptc; if (dataType == DT_RATE_12_DATA) {
unsigned char payload[12U]; CBPTC19696 bptc;
bptc.decode(data + 2U, payload); unsigned char payload[12U];
bptc.encode(payload, data + 2U); bptc.decode(data + 2U, payload);
} else if (dataType == DT_RATE_34_DATA) { ::sprintf(title, "DMR Slot %u, Data 1/2", m_slotNo);
CDMRTrellis trellis; CUtils::dump(1U, title, payload, 12U);
unsigned char payload[18U]; bptc.encode(payload, data + 2U);
bool ret = trellis.decode(data + 2U, payload); } else if (dataType == DT_RATE_34_DATA) {
if (ret) { CDMRTrellis trellis;
trellis.encode(payload, data + 2U); unsigned char payload[18U];
} else { bool ret = trellis.decode(data + 2U, payload);
LogMessage("DMR Slot %u, unfixable RF rate 3/4 data", m_slotNo); if (ret) {
CUtils::dump(1U, "Data", data + 2U, DMR_FRAME_LENGTH_BYTES); ::sprintf(title, "DMR Slot %u, Data 3/4", m_slotNo);
} CUtils::dump(1U, title, payload, 18U);
} trellis.encode(payload, data + 2U);
} else {
LogMessage("DMR Slot %u, unfixable RF rate 3/4 data", m_slotNo);
CUtils::dump(1U, "Data", data + 2U, DMR_FRAME_LENGTH_BYTES);
}
}
else
{
::sprintf(title, "DMR Slot %u, Data 1/1", m_slotNo);
CUtils::dump(1U, title, data + 2U, 24U);
}
// Regenerate the Slot Type // Regenerate the Slot Type
slotType.getData(data + 2U); slotType.getData(data + 2U);
@@ -1716,23 +1726,34 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
return; return;
} }
// Regenerate the rate 1/2 payload char title[80U];
if (dataType == DT_RATE_12_DATA) { // Regenerate the rate 1/2 payload
CBPTC19696 bptc; if (dataType == DT_RATE_12_DATA) {
unsigned char payload[12U]; CBPTC19696 bptc;
bptc.decode(data + 2U, payload); unsigned char payload[12U];
bptc.encode(payload, data + 2U); bptc.decode(data + 2U, payload);
} else if (dataType == DT_RATE_34_DATA) { ::sprintf(title, "DMR Slot %u, Data 1/2", m_slotNo);
CDMRTrellis trellis; CUtils::dump(1U, title, payload, 12U);
unsigned char payload[18U]; bptc.encode(payload, data + 2U);
bool ret = trellis.decode(data + 2U, payload); } else if (dataType == DT_RATE_34_DATA) {
if (ret) { CDMRTrellis trellis;
trellis.encode(payload, data + 2U); unsigned char payload[18U];
} else { bool ret = trellis.decode(data + 2U, payload);
LogMessage("DMR Slot %u, unfixable network rate 3/4 data", m_slotNo); if (ret) {
CUtils::dump(1U, "Data", data + 2U, DMR_FRAME_LENGTH_BYTES); ::sprintf(title, "DMR Slot %u, Data 3/4", m_slotNo);
} CUtils::dump(1U, title, payload, 18U);
} trellis.encode(payload, data + 2U);
} else {
LogMessage("DMR Slot %u, unfixable network rate 3/4 data", m_slotNo);
CUtils::dump(1U, "Data", data + 2U, DMR_FRAME_LENGTH_BYTES);
}
}
else
{
::sprintf(title, "DMR Slot %u, Data 1/1", m_slotNo);
CUtils::dump(1U, title, data + 2U, 24U);
}
// Regenerate the Slot Type // Regenerate the Slot Type
CDMRSlotType slotType; CDMRSlotType slotType;