mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-21 06:55:52 +08:00
Small fixes for DMR data modes.
This commit is contained in:
39
DMRSlot.cpp
39
DMRSlot.cpp
@@ -15,7 +15,6 @@
|
||||
#include "DMRShortLC.h"
|
||||
#include "DMRFullLC.h"
|
||||
#include "BPTC19696.h"
|
||||
#include "Trellis.h"
|
||||
#include "DMRSlot.h"
|
||||
#include "DMRCSBK.h"
|
||||
#include "Utils.h"
|
||||
@@ -354,26 +353,12 @@ void CDMRSlot::writeModem(unsigned char *data)
|
||||
if (m_rfState != RS_RF_DATA || m_rfFrames == 0U)
|
||||
return;
|
||||
|
||||
// Regenerate and display the payload
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
LogDebug("DMR Slot %u, Rate 1/2 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 12U);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CTrellis trellis;
|
||||
unsigned char payload[12U];
|
||||
trellis.decode(data + 2U, payload);
|
||||
LogDebug("DMR Slot %u, Rate 3/4 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 12U);
|
||||
} else {
|
||||
unsigned char payload[24U];
|
||||
::memcpy(payload + 0U, data + 2U + 0U, 12U);
|
||||
::memcpy(payload + 12U, data + 2U + 21U, 12U);
|
||||
LogDebug("DMR Slot %u, Rate 1 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 24U);
|
||||
}
|
||||
|
||||
// Regenerate the Slot Type
|
||||
@@ -856,10 +841,10 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||
|
||||
m_netState = RS_NET_DATA;
|
||||
|
||||
setShortLC(m_slotNo, dmrData.getDstId(), gi ? FLCO_GROUP : FLCO_USER_USER, false);
|
||||
setShortLC(m_slotNo, dstId, gi ? FLCO_GROUP : FLCO_USER_USER, false);
|
||||
|
||||
std::string src = m_lookup->find(dmrData.getSrcId());
|
||||
std::string dst = m_lookup->find(dmrData.getDstId());
|
||||
std::string src = m_lookup->find(srcId);
|
||||
std::string dst = m_lookup->find(dstId);
|
||||
|
||||
m_display->writeDMR(m_slotNo, src.c_str(), gi, dst.c_str(), "N");
|
||||
|
||||
@@ -1042,26 +1027,12 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||
if (m_netState != RS_NET_DATA || m_netFrames == 0U)
|
||||
return;
|
||||
|
||||
// Regenerate and display the payload
|
||||
// Regenerate the rate 1/2 payload
|
||||
if (dataType == DT_RATE_12_DATA) {
|
||||
CBPTC19696 bptc;
|
||||
unsigned char payload[12U];
|
||||
bptc.decode(data + 2U, payload);
|
||||
LogDebug("DMR Slot %u, Rate 1/2 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 12U);
|
||||
bptc.encode(payload, data + 2U);
|
||||
} else if (dataType == DT_RATE_34_DATA) {
|
||||
CTrellis trellis;
|
||||
unsigned char payload[12U];
|
||||
trellis.decode(data + 2U, payload);
|
||||
LogDebug("DMR Slot %u, Rate 3/4 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 12U);
|
||||
} else {
|
||||
unsigned char payload[24U];
|
||||
::memcpy(payload + 0U, data + 2U + 0U, 12U);
|
||||
::memcpy(payload + 12U, data + 2U + 21U, 12U);
|
||||
LogDebug("DMR Slot %u, Rate 1 Data", m_slotNo);
|
||||
CUtils::dump(1U, "Payload", payload, 24U);
|
||||
}
|
||||
|
||||
// Regenerate the Slot Type
|
||||
|
||||
Reference in New Issue
Block a user