mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-21 15:09:23 +08:00
Changes to improve DMR data efficiency.
This commit is contained in:
@@ -184,8 +184,12 @@ void CDMRDataHeader::getTerminator(unsigned char* bytes) const
|
|||||||
payload[10U] = parity[1U] ^ TERMINATOR_WITH_LC_CRC_MASK[1U];
|
payload[10U] = parity[1U] ^ TERMINATOR_WITH_LC_CRC_MASK[1U];
|
||||||
payload[11U] = parity[0U] ^ TERMINATOR_WITH_LC_CRC_MASK[2U];
|
payload[11U] = parity[0U] ^ TERMINATOR_WITH_LC_CRC_MASK[2U];
|
||||||
|
|
||||||
|
CUtils::dump(1U, "Data Terminator payload", payload, 12U);
|
||||||
|
|
||||||
CBPTC19696 bptc;
|
CBPTC19696 bptc;
|
||||||
bptc.encode(payload, bytes);
|
bptc.encode(payload, bytes);
|
||||||
|
|
||||||
|
CUtils::dump(1U, "Data Terminator bytes", bytes, DMR_FRAME_LENGTH_BYTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
CDMRDataHeader& CDMRDataHeader::operator=(const CDMRDataHeader& header)
|
CDMRDataHeader& CDMRDataHeader::operator=(const CDMRDataHeader& header)
|
||||||
|
|||||||
@@ -216,9 +216,6 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||||||
|
|
||||||
writeEndRF();
|
writeEndRF();
|
||||||
} else if (dataType == DT_DATA_HEADER) {
|
} else if (dataType == DT_DATA_HEADER) {
|
||||||
if (m_rfState == RS_RF_DATA)
|
|
||||||
return;
|
|
||||||
|
|
||||||
CDMRDataHeader dataHeader;
|
CDMRDataHeader dataHeader;
|
||||||
bool valid = dataHeader.put(data + 2U);
|
bool valid = dataHeader.put(data + 2U);
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
@@ -754,9 +751,6 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
|||||||
if (m_netBits == 0U) m_netBits = 1U;
|
if (m_netBits == 0U) m_netBits = 1U;
|
||||||
LogMessage("DMR Slot %u, received network end of voice transmission, %.1f seconds, %u%% packet loss, BER: %.1f%%", m_slotNo, float(m_netFrames) / 16.667F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits));
|
LogMessage("DMR Slot %u, received network end of voice transmission, %.1f seconds, %u%% packet loss, BER: %.1f%%", m_slotNo, float(m_netFrames) / 16.667F, (m_netLost * 100U) / m_netFrames, float(m_netErrs * 100U) / float(m_netBits));
|
||||||
} else if (dataType == DT_DATA_HEADER) {
|
} else if (dataType == DT_DATA_HEADER) {
|
||||||
if (m_netState == RS_NET_DATA)
|
|
||||||
return;
|
|
||||||
|
|
||||||
CDMRDataHeader dataHeader;
|
CDMRDataHeader dataHeader;
|
||||||
bool valid = dataHeader.put(data + 2U);
|
bool valid = dataHeader.put(data + 2U);
|
||||||
if (!valid) {
|
if (!valid) {
|
||||||
|
|||||||
Reference in New Issue
Block a user