mirror of
https://github.com/g4klx/MMDVMHost.git
synced 2026-04-05 06:25:24 +00:00
Regularise the sending of headers and timeouts.
This commit is contained in:
parent
14a30286c7
commit
b6adf6931d
4 changed files with 34 additions and 28 deletions
25
DMRSlot.cpp
25
DMRSlot.cpp
|
|
@ -51,6 +51,7 @@ m_netState(RS_NET_IDLE),
|
|||
m_rfEmbeddedLC(),
|
||||
m_rfLC(NULL),
|
||||
m_netLC(NULL),
|
||||
m_rfSeqNo(0U),
|
||||
m_netSeqNo(0U),
|
||||
m_rfN(0U),
|
||||
m_netN(0U),
|
||||
|
|
@ -134,6 +135,7 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
m_rfTimeoutTimer.start();
|
||||
|
||||
m_rfFrames = 0U;
|
||||
m_rfSeqNo = 0U;
|
||||
m_rfBits = 1U;
|
||||
m_rfErrs = 0U;
|
||||
|
||||
|
|
@ -142,8 +144,7 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
writeQueueRF(data);
|
||||
}
|
||||
|
||||
for (unsigned i = 0U; i < 3U; i++)
|
||||
writeNetworkRF(data, DT_VOICE_LC_HEADER);
|
||||
writeNetworkRF(data, DT_VOICE_LC_HEADER);
|
||||
|
||||
m_rfState = RS_RF_AUDIO;
|
||||
|
||||
|
|
@ -222,6 +223,7 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
unsigned int dstId = dataHeader.getDstId();
|
||||
|
||||
m_rfFrames = dataHeader.getBlocks();
|
||||
m_rfSeqNo = 0U;
|
||||
|
||||
m_rfLC = new CDMRLC(gi ? FLCO_GROUP : FLCO_USER_USER, srcId, dstId);
|
||||
|
||||
|
|
@ -242,8 +244,7 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
writeQueueRF(data);
|
||||
}
|
||||
|
||||
for (unsigned i = 0U; i < 3U; i++)
|
||||
writeNetworkRF(data, DT_DATA_HEADER);
|
||||
writeNetworkRF(data, DT_DATA_HEADER);
|
||||
|
||||
m_rfState = RS_RF_DATA;
|
||||
|
||||
|
|
@ -279,6 +280,8 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
// Convert the Data Sync to be from the BS
|
||||
CSync::addDMRDataSync(data + 2U);
|
||||
|
||||
m_rfSeqNo = 0U;
|
||||
|
||||
data[0U] = TAG_DATA;
|
||||
data[1U] = 0x00U;
|
||||
|
||||
|
|
@ -447,16 +450,16 @@ void CDMRSlot::writeModem(unsigned char *data)
|
|||
m_rfTimeoutTimer.start();
|
||||
|
||||
m_rfFrames = 0U;
|
||||
m_rfBits = 1U;
|
||||
m_rfErrs = 0U;
|
||||
m_rfSeqNo = 0U;
|
||||
m_rfBits = 1U;
|
||||
m_rfErrs = 0U;
|
||||
|
||||
if (m_duplex) {
|
||||
for (unsigned int i = 0U; i < 3U; i++)
|
||||
writeQueueRF(start);
|
||||
}
|
||||
|
||||
for (unsigned int i = 0U; i < 3U; i++)
|
||||
writeNetworkRF(start, DT_VOICE_LC_HEADER);
|
||||
writeNetworkRF(start, DT_VOICE_LC_HEADER);
|
||||
|
||||
// Regenerate the EMB
|
||||
emb.getData(data + 2U);
|
||||
|
|
@ -1052,10 +1055,10 @@ void CDMRSlot::writeNetworkRF(const unsigned char* data, unsigned char dataType,
|
|||
dmrData.setSrcId(srcId);
|
||||
dmrData.setDstId(dstId);
|
||||
dmrData.setFLCO(flco);
|
||||
dmrData.setN(m_netN);
|
||||
dmrData.setSeqNo(m_netSeqNo);
|
||||
dmrData.setN(m_rfN);
|
||||
dmrData.setSeqNo(m_rfSeqNo);
|
||||
|
||||
m_netSeqNo++;
|
||||
m_rfSeqNo++;
|
||||
|
||||
dmrData.setData(data + 2U);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue