mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2025-12-06 05:32:00 +01:00
Revert "Add the DMO mode sync bytes in DMO mode."
This reverts commit 02f555d299.
This commit is contained in:
parent
02f555d299
commit
001d3f753c
133
DMRSlot.cpp
133
DMRSlot.cpp
|
|
@ -167,11 +167,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = TAG_DATA;
|
data[0U] = TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -212,11 +209,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
// Regenerate the payload
|
// Regenerate the payload
|
||||||
CBPTC19696 bptc;
|
CBPTC19696 bptc;
|
||||||
|
|
@ -242,11 +236,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Set the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = TAG_EOT;
|
data[0U] = TAG_EOT;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -291,11 +282,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = m_rfFrames == 0U ? TAG_EOT : TAG_DATA;
|
data[0U] = m_rfFrames == 0U ? TAG_EOT : TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -341,11 +329,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
m_rfSeqNo = 0U;
|
m_rfSeqNo = 0U;
|
||||||
|
|
||||||
|
|
@ -402,11 +387,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Regenerate the Slot Type
|
// Regenerate the Slot Type
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
m_rfFrames--;
|
m_rfFrames--;
|
||||||
|
|
||||||
|
|
@ -423,11 +405,8 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
}
|
}
|
||||||
} else if (audioSync) {
|
} else if (audioSync) {
|
||||||
if (m_rfState == RS_RF_AUDIO) {
|
if (m_rfState == RS_RF_AUDIO) {
|
||||||
// Clean up the Data Sync
|
// Convert the Audio Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRAudioSync(data + 2U);
|
||||||
CSync::addDMRAudioSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRAudioSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
unsigned int errors = 0U;
|
unsigned int errors = 0U;
|
||||||
unsigned char fid = m_rfLC->getFID();
|
unsigned char fid = m_rfLC->getFID();
|
||||||
|
|
@ -511,10 +490,7 @@ void CDMRSlot::writeModem(unsigned char *data, unsigned int len)
|
||||||
// Create a dummy start frame to replace the received frame
|
// Create a dummy start frame to replace the received frame
|
||||||
unsigned char start[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char start[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
CDMRFullLC fullLC;
|
CDMRFullLC fullLC;
|
||||||
fullLC.encode(*m_rfLC, start + 2U, DT_VOICE_LC_HEADER);
|
fullLC.encode(*m_rfLC, start + 2U, DT_VOICE_LC_HEADER);
|
||||||
|
|
@ -613,10 +589,7 @@ void CDMRSlot::endOfRFData()
|
||||||
if (m_duplex) {
|
if (m_duplex) {
|
||||||
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(bytes + 2U);
|
||||||
CSync::addDMRDataSync(bytes + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, bytes + 2U);
|
|
||||||
|
|
||||||
CDMRSlotType slotType;
|
CDMRSlotType slotType;
|
||||||
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
||||||
|
|
@ -656,10 +629,7 @@ void CDMRSlot::writeEndRF(bool writeEnd)
|
||||||
// Create a dummy start end frame
|
// Create a dummy start end frame
|
||||||
unsigned char data[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char data[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
CDMRFullLC fullLC;
|
CDMRFullLC fullLC;
|
||||||
fullLC.encode(*m_rfLC, data + 2U, DT_TERMINATOR_WITH_LC);
|
fullLC.encode(*m_rfLC, data + 2U, DT_TERMINATOR_WITH_LC);
|
||||||
|
|
@ -688,10 +658,7 @@ void CDMRSlot::endOfNetData()
|
||||||
if (m_duplex) {
|
if (m_duplex) {
|
||||||
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char bytes[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(bytes + 2U);
|
||||||
CSync::addDMRDataSync(bytes + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, bytes + 2U);
|
|
||||||
|
|
||||||
CDMRSlotType slotType;
|
CDMRSlotType slotType;
|
||||||
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
||||||
|
|
@ -735,10 +702,7 @@ void CDMRSlot::writeEndNet(bool writeEnd)
|
||||||
// Create a dummy start end frame
|
// Create a dummy start end frame
|
||||||
unsigned char data[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char data[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
CDMRFullLC fullLC;
|
CDMRFullLC fullLC;
|
||||||
fullLC.encode(*m_netLC, data + 2U, DT_TERMINATOR_WITH_LC);
|
fullLC.encode(*m_netLC, data + 2U, DT_TERMINATOR_WITH_LC);
|
||||||
|
|
@ -808,11 +772,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setDataType(DT_VOICE_LC_HEADER);
|
slotType.setDataType(DT_VOICE_LC_HEADER);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = TAG_DATA;
|
data[0U] = TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -870,11 +831,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setDataType(DT_VOICE_PI_HEADER);
|
slotType.setDataType(DT_VOICE_PI_HEADER);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
// Regenerate the payload
|
// Regenerate the payload
|
||||||
CBPTC19696 bptc;
|
CBPTC19696 bptc;
|
||||||
|
|
@ -909,11 +867,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
slotType.setDataType(DT_TERMINATOR_WITH_LC);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = TAG_EOT;
|
data[0U] = TAG_EOT;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -965,11 +920,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setDataType(DT_DATA_HEADER);
|
slotType.setDataType(DT_DATA_HEADER);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = m_netFrames == 0U ? TAG_EOT : TAG_DATA;
|
data[0U] = m_netFrames == 0U ? TAG_EOT : TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -1019,10 +971,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
// Create a dummy start frame
|
// Create a dummy start frame
|
||||||
unsigned char start[DMR_FRAME_LENGTH_BYTES + 2U];
|
unsigned char start[DMR_FRAME_LENGTH_BYTES + 2U];
|
||||||
|
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(start + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
CDMRFullLC fullLC;
|
CDMRFullLC fullLC;
|
||||||
fullLC.encode(*m_netLC, start + 2U, DT_VOICE_LC_HEADER);
|
fullLC.encode(*m_netLC, start + 2U, DT_VOICE_LC_HEADER);
|
||||||
|
|
@ -1068,11 +1017,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
data[0U] = TAG_DATA;
|
data[0U] = TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Audio Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRAudioSync(data + 2U);
|
||||||
CSync::addDMRAudioSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRAudioSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
// Initialise the lost packet data
|
// Initialise the lost packet data
|
||||||
if (m_netFrames == 0U) {
|
if (m_netFrames == 0U) {
|
||||||
|
|
@ -1178,11 +1124,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setColorCode(m_colorCode);
|
slotType.setColorCode(m_colorCode);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
data[0U] = TAG_DATA;
|
data[0U] = TAG_DATA;
|
||||||
data[1U] = 0x00U;
|
data[1U] = 0x00U;
|
||||||
|
|
@ -1239,11 +1182,8 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
slotType.setColorCode(m_colorCode);
|
slotType.setColorCode(m_colorCode);
|
||||||
slotType.getData(data + 2U);
|
slotType.getData(data + 2U);
|
||||||
|
|
||||||
// Clean up the Data Sync
|
// Convert the Data Sync to be from the BS
|
||||||
if (m_duplex)
|
CSync::addDMRDataSync(data + 2U);
|
||||||
CSync::addDMRDataSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRDataSync(m_slotNo, data + 2U);
|
|
||||||
|
|
||||||
m_netFrames--;
|
m_netFrames--;
|
||||||
|
|
||||||
|
|
@ -1622,10 +1562,7 @@ void CDMRSlot::insertSilence(unsigned int count)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n == 0U) {
|
if (n == 0U) {
|
||||||
if (m_duplex)
|
CSync::addDMRAudioSync(data + 2U);
|
||||||
CSync::addDMRAudioSync(data + 2U);
|
|
||||||
else
|
|
||||||
CSync::addDMRAudioSync(m_slotNo, data + 2U);
|
|
||||||
} else {
|
} else {
|
||||||
unsigned char lcss = m_netEmbeddedLC.getData(data + 2U, n);
|
unsigned char lcss = m_netEmbeddedLC.getData(data + 2U, n);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -784,7 +784,7 @@ bool CModem::setConfig()
|
||||||
buffer[3U] |= 0x02U;
|
buffer[3U] |= 0x02U;
|
||||||
if (m_pttInvert)
|
if (m_pttInvert)
|
||||||
buffer[3U] |= 0x04U;
|
buffer[3U] |= 0x04U;
|
||||||
if (!m_duplex)
|
if (m_duplex)
|
||||||
buffer[3U] |= 0x80U;
|
buffer[3U] |= 0x80U;
|
||||||
|
|
||||||
buffer[4U] = 0x00U;
|
buffer[4U] = 0x00U;
|
||||||
|
|
|
||||||
28
Sync.cpp
28
Sync.cpp
|
|
@ -50,34 +50,6 @@ void CSync::addDMRAudioSync(unsigned char* data)
|
||||||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | BS_SOURCED_AUDIO_SYNC[i];
|
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | BS_SOURCED_AUDIO_SYNC[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSync::addDMRDataSync(unsigned int slotNo, unsigned char* data)
|
|
||||||
{
|
|
||||||
assert(slotNo == 1U || slotNo == 2U);
|
|
||||||
assert(data != NULL);
|
|
||||||
|
|
||||||
if (slotNo == 1U) {
|
|
||||||
for (unsigned int i = 0U; i < 7U; i++)
|
|
||||||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | DIRECT_SLOT1_DATA_SYNC[i];
|
|
||||||
} else {
|
|
||||||
for (unsigned int i = 0U; i < 7U; i++)
|
|
||||||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | DIRECT_SLOT2_DATA_SYNC[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSync::addDMRAudioSync(unsigned int slotNo, unsigned char* data)
|
|
||||||
{
|
|
||||||
assert(slotNo == 1U || slotNo == 2U);
|
|
||||||
assert(data != NULL);
|
|
||||||
|
|
||||||
if (slotNo == 1U) {
|
|
||||||
for (unsigned int i = 0U; i < 7U; i++)
|
|
||||||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | DIRECT_SLOT1_AUDIO_SYNC[i];
|
|
||||||
} else {
|
|
||||||
for (unsigned int i = 0U; i < 7U; i++)
|
|
||||||
data[i + 13U] = (data[i + 13U] & ~SYNC_MASK[i]) | DIRECT_SLOT2_AUDIO_SYNC[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CSync::addYSFSync(unsigned char* data)
|
void CSync::addYSFSync(unsigned char* data)
|
||||||
{
|
{
|
||||||
assert(data != NULL);
|
assert(data != NULL);
|
||||||
|
|
|
||||||
3
Sync.h
3
Sync.h
|
|
@ -27,9 +27,6 @@ public:
|
||||||
static void addDMRDataSync(unsigned char* data);
|
static void addDMRDataSync(unsigned char* data);
|
||||||
static void addDMRAudioSync(unsigned char* data);
|
static void addDMRAudioSync(unsigned char* data);
|
||||||
|
|
||||||
static void addDMRDataSync(unsigned int slotNo, unsigned char* data);
|
|
||||||
static void addDMRAudioSync(unsigned int slotNo, unsigned char* data);
|
|
||||||
|
|
||||||
static void addYSFSync(unsigned char* data);
|
static void addYSFSync(unsigned char* data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue