Skip to content

Commit

Permalink
Add extra headers for DMR DMO operation.
Browse files Browse the repository at this point in the history
  • Loading branch information
g4klx committed Apr 2, 2017
1 parent c0571ed commit 1a49641
Showing 1 changed file with 29 additions and 17 deletions.
46 changes: 29 additions & 17 deletions DMRSlot.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ const unsigned char TALKER_ID_BLOCK1 = 0x02U;
const unsigned char TALKER_ID_BLOCK2 = 0x04U;
const unsigned char TALKER_ID_BLOCK3 = 0x08U;

const unsigned int NO_HEADERS_SIMPLEX = 8U;
const unsigned int NO_HEADERS_DUPLEX = 3U;

// #define DUMP_DMR

CDMRSlot::CDMRSlot(unsigned int slotNo, unsigned int timeout) :
Expand Down Expand Up @@ -253,9 +256,8 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_queue.clear();
m_modem->writeDMRAbort(m_slotNo);

writeQueueRF(data);
writeQueueRF(data);
writeQueueRF(data);
for (unsigned int i = 0U; i < NO_HEADERS_DUPLEX; i++)
writeQueueRF(data);
}

writeNetworkRF(data, DT_VOICE_LC_HEADER);
Expand Down Expand Up @@ -754,9 +756,8 @@ bool CDMRSlot::writeModem(unsigned char *data, unsigned int len)
m_queue.clear();
m_modem->writeDMRAbort(m_slotNo);

writeQueueRF(start);
writeQueueRF(start);
writeQueueRF(start);
for (unsigned int i = 0U; i < NO_HEADERS_DUPLEX; i++)
writeQueueRF(start);
}

writeNetworkRF(start, DT_VOICE_LC_HEADER);
Expand Down Expand Up @@ -991,9 +992,13 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
for (unsigned int i = 0U; i < m_jitterSlots; i++)
writeQueueNet(m_idle);

writeQueueNet(data);
writeQueueNet(data);
writeQueueNet(data);
if (m_duplex) {
for (unsigned int i = 0U; i < NO_HEADERS_DUPLEX; i++)
writeQueueNet(data);
} else {
for (unsigned int i = 0U; i < NO_HEADERS_SIMPLEX; i++)
writeQueueNet(data);
}

m_netState = RS_NET_AUDIO;

Expand Down Expand Up @@ -1047,9 +1052,13 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
start[0U] = TAG_DATA;
start[1U] = 0x00U;

writeQueueRF(start);
writeQueueRF(start);
writeQueueRF(start);
if (m_duplex) {
for (unsigned int i = 0U; i < NO_HEADERS_DUPLEX; i++)
writeQueueRF(start);
} else {
for (unsigned int i = 0U; i < NO_HEADERS_SIMPLEX; i++)
writeQueueRF(start);
}

#if defined(DUMP_DMR)
openFile();
Expand Down Expand Up @@ -1118,8 +1127,7 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
if (m_duplex) {
for (unsigned int i = 0U; i < m_hangCount; i++)
writeQueueNet(data);
}
else {
} else {
for (unsigned int i = 0U; i < 3U; i++)
writeQueueNet(data);
}
Expand Down Expand Up @@ -1232,9 +1240,13 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
start[0U] = TAG_DATA;
start[1U] = 0x00U;

writeQueueRF(start);
writeQueueRF(start);
writeQueueRF(start);
if (m_duplex) {
for (unsigned int i = 0U; i < NO_HEADERS_DUPLEX; i++)
writeQueueRF(start);
} else {
for (unsigned int i = 0U; i < NO_HEADERS_SIMPLEX; i++)
writeQueueRF(start);
}

#if defined(DUMP_DMR)
openFile();
Expand Down

0 comments on commit 1a49641

Please sign in to comment.