mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-21 06:55:52 +08:00
Add debugging messages for DMR data packets
This commit is contained in:
89
DMRSlot.cpp
89
DMRSlot.cpp
@@ -531,23 +531,33 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||
if (m_rfState != RS_RF_DATA || m_rfFrames == 0U)
|
||||
return false;
|
||||
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CDMRTrellis trellis;
|
||||
unsigned char payload[18U];
|
||||
bool ret = trellis.decode(data + 2U, payload);
|
||||
if (ret) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
char title[80U];
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
::sprintf(title, "DMR Slot %u, Data 1/2", m_slotNo);
|
||||
CUtils::dump(1U, title, payload, 12U);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CDMRTrellis trellis;
|
||||
unsigned char payload[18U];
|
||||
bool ret = trellis.decode(data + 2U, payload);
|
||||
if (ret) {
|
||||
::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
|
||||
slotType.getData(data + 2U);
|
||||
@@ -1716,23 +1726,34 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||
return;
|
||||
}
|
||||
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CDMRTrellis trellis;
|
||||
unsigned char payload[18U];
|
||||
bool ret = trellis.decode(data + 2U, payload);
|
||||
if (ret) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
char title[80U];
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
::sprintf(title, "DMR Slot %u, Data 1/2", m_slotNo);
|
||||
CUtils::dump(1U, title, payload, 12U);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CDMRTrellis trellis;
|
||||
unsigned char payload[18U];
|
||||
bool ret = trellis.decode(data + 2U, payload);
|
||||
if (ret) {
|
||||
::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
|
||||
CDMRSlotType slotType;
|
||||
|
||||
Reference in New Issue
Block a user