mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-21 23:45:49 +08:00
Remove unneeded end of data transmission terminator.
This commit is contained in:
78
DMRSlot.cpp
78
DMRSlot.cpp
@@ -379,8 +379,10 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
|||||||
|
|
||||||
LogMessage("DMR Slot %u, received RF data header from %s to %s%s, %u blocks", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str(), m_rfFrames);
|
LogMessage("DMR Slot %u, received RF data header from %s to %s%s, %u blocks", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str(), m_rfFrames);
|
||||||
|
|
||||||
if (m_rfFrames == 0U)
|
if (m_rfFrames == 0U) {
|
||||||
endOfRFData();
|
LogMessage("DMR Slot %u, ended RF data transmission", m_slotNo);
|
||||||
|
writeEndRF();
|
||||||
|
}
|
||||||
} else if (dataType == DT_CSBK) {
|
} else if (dataType == DT_CSBK) {
|
||||||
CDMRCSBK csbk;
|
CDMRCSBK csbk;
|
||||||
bool valid = csbk.put(data + 2U);
|
bool valid = csbk.put(data + 2U);
|
||||||
@@ -484,8 +486,10 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
|||||||
|
|
||||||
writeNetworkRF(data, dataType);
|
writeNetworkRF(data, dataType);
|
||||||
|
|
||||||
if (m_rfFrames == 0U)
|
if (m_rfFrames == 0U) {
|
||||||
endOfRFData();
|
LogMessage("DMR Slot %u, ended RF data transmission", m_slotNo);
|
||||||
|
writeEndRF();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (audioSync) {
|
} else if (audioSync) {
|
||||||
if (m_rfState == RS_RF_AUDIO) {
|
if (m_rfState == RS_RF_AUDIO) {
|
||||||
@@ -775,33 +779,6 @@ unsigned int CDMRSlot::readModem(unsigned char* data)
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRSlot::endOfRFData()
|
|
||||||
{
|
|
||||||
LogMessage("DMR Slot %u, ended RF data transmission", m_slotNo);
|
|
||||||
|
|
||||||
if (m_duplex) {
|
|
||||||
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
|
||||||
|
|
||||||
CSync::addDMRDataSync(bytes + 2U, m_duplex);
|
|
||||||
|
|
||||||
CDMRSlotType slotType;
|
|
||||||
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
|
||||||
slotType.setColorCode(m_colorCode);
|
|
||||||
slotType.getData(bytes + 2U);
|
|
||||||
|
|
||||||
m_rfDataHeader.getTerminator(bytes + 2U);
|
|
||||||
|
|
||||||
bytes[0U] = TAG_EOT;
|
|
||||||
bytes[1U] = 0x00U;
|
|
||||||
|
|
||||||
writeQueueRF(bytes);
|
|
||||||
writeQueueRF(bytes);
|
|
||||||
writeQueueRF(bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
writeEndRF();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDMRSlot::writeEndRF(bool writeEnd)
|
void CDMRSlot::writeEndRF(bool writeEnd)
|
||||||
{
|
{
|
||||||
m_rfState = RS_RF_LISTENING;
|
m_rfState = RS_RF_LISTENING;
|
||||||
@@ -844,33 +821,6 @@ void CDMRSlot::writeEndRF(bool writeEnd)
|
|||||||
m_rfLC = NULL;
|
m_rfLC = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDMRSlot::endOfNetData()
|
|
||||||
{
|
|
||||||
LogMessage("DMR Slot %u, ended network data transmission", m_slotNo);
|
|
||||||
|
|
||||||
if (m_duplex) {
|
|
||||||
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
|
||||||
|
|
||||||
CSync::addDMRDataSync(bytes + 2U, m_duplex);
|
|
||||||
|
|
||||||
CDMRSlotType slotType;
|
|
||||||
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
|
||||||
slotType.setColorCode(m_colorCode);
|
|
||||||
slotType.getData(bytes + 2U);
|
|
||||||
|
|
||||||
m_netDataHeader.getTerminator(bytes + 2U);
|
|
||||||
|
|
||||||
bytes[0U] = TAG_EOT;
|
|
||||||
bytes[1U] = 0x00U;
|
|
||||||
|
|
||||||
writeQueueNet(bytes);
|
|
||||||
writeQueueNet(bytes);
|
|
||||||
writeQueueNet(bytes);
|
|
||||||
}
|
|
||||||
|
|
||||||
writeEndNet();
|
|
||||||
}
|
|
||||||
|
|
||||||
void CDMRSlot::writeEndNet(bool writeEnd)
|
void CDMRSlot::writeEndNet(bool writeEnd)
|
||||||
{
|
{
|
||||||
m_netState = RS_NET_IDLE;
|
m_netState = RS_NET_IDLE;
|
||||||
@@ -1184,8 +1134,10 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
|||||||
|
|
||||||
LogMessage("DMR Slot %u, received network data header from %s to %s%s, %u blocks", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str(), m_netFrames);
|
LogMessage("DMR Slot %u, received network data header from %s to %s%s, %u blocks", m_slotNo, src.c_str(), gi ? "TG ": "", dst.c_str(), m_netFrames);
|
||||||
|
|
||||||
if (m_netFrames == 0U)
|
if (m_netFrames == 0U) {
|
||||||
endOfNetData();
|
LogMessage("DMR Slot %u, ended network data transmission", m_slotNo);
|
||||||
|
writeEndNet();
|
||||||
|
}
|
||||||
} else if (dataType == DT_VOICE_SYNC) {
|
} else if (dataType == DT_VOICE_SYNC) {
|
||||||
if (m_netState == RS_NET_IDLE) {
|
if (m_netState == RS_NET_IDLE) {
|
||||||
CDMRLC* lc = new CDMRLC(dmrData.getFLCO(), dmrData.getSrcId(), dmrData.getDstId());
|
CDMRLC* lc = new CDMRLC(dmrData.getFLCO(), dmrData.getSrcId(), dmrData.getDstId());
|
||||||
@@ -1525,8 +1477,10 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
|||||||
#endif
|
#endif
|
||||||
writeQueueNet(data);
|
writeQueueNet(data);
|
||||||
|
|
||||||
if (m_netFrames == 0U)
|
if (m_netFrames == 0U) {
|
||||||
endOfNetData();
|
LogMessage("DMR Slot %u, ended network data transmission", m_slotNo);
|
||||||
|
writeEndNet();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Unhandled data type
|
// Unhandled data type
|
||||||
LogWarning("DMR Slot %u, unhandled network data type - 0x%02X", m_slotNo, dataType);
|
LogWarning("DMR Slot %u, unhandled network data type - 0x%02X", m_slotNo, dataType);
|
||||||
|
|||||||
@@ -129,9 +129,6 @@ private:
|
|||||||
void writeNetworkRF(const unsigned char* data, unsigned char dataType, unsigned char errors = 0U);
|
void writeNetworkRF(const unsigned char* data, unsigned char dataType, unsigned char errors = 0U);
|
||||||
void writeNetworkRF(const unsigned char* data, unsigned char dataType, FLCO flco, unsigned int srcId, unsigned int dstId, unsigned char errors = 0U);
|
void writeNetworkRF(const unsigned char* data, unsigned char dataType, FLCO flco, unsigned int srcId, unsigned int dstId, unsigned char errors = 0U);
|
||||||
|
|
||||||
void endOfRFData();
|
|
||||||
void endOfNetData();
|
|
||||||
|
|
||||||
void writeEndRF(bool writeEnd = false);
|
void writeEndRF(bool writeEnd = false);
|
||||||
void writeEndNet(bool writeEnd = false);
|
void writeEndNet(bool writeEnd = false);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user