mirror of
https://github.com/g4klx/MMDVMHost
synced 2025-12-22 08:05:49 +08:00
Change D-Star EOT RF transmission control.
This commit is contained in:
@@ -191,10 +191,8 @@ bool CDStarControl::writeModem(unsigned char *data)
|
|||||||
writeNetworkData(DSTAR_END_PATTERN_BYTES, 0U, true, false);
|
writeNetworkData(DSTAR_END_PATTERN_BYTES, 0U, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_duplex) {
|
if (m_duplex)
|
||||||
for (unsigned int i = 0U; i < 3U; i++)
|
writeQueueEOT();
|
||||||
writeQueueData(DSTAR_END_PATTERN_BYTES);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_ackTimer.start();
|
m_ackTimer.start();
|
||||||
|
|
||||||
@@ -458,9 +456,9 @@ void CDStarControl::writeNetwork()
|
|||||||
|
|
||||||
m_timeoutTimer.stop();
|
m_timeoutTimer.stop();
|
||||||
|
|
||||||
|
writeQueueEOT();
|
||||||
|
|
||||||
data[1U] = TAG_EOT;
|
data[1U] = TAG_EOT;
|
||||||
for (unsigned int i = 0U; i < 3U; i++)
|
|
||||||
writeQueueData(data + 1U);
|
|
||||||
|
|
||||||
#if defined(DUMP_DSTAR)
|
#if defined(DUMP_DSTAR)
|
||||||
writeFile(data + 1U, length - 1U);
|
writeFile(data + 1U, length - 1U);
|
||||||
@@ -583,6 +581,18 @@ void CDStarControl::writeQueueData(const unsigned char *data)
|
|||||||
m_queue.addData(data, len);
|
m_queue.addData(data, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CDStarControl::writeQueueEOT()
|
||||||
|
{
|
||||||
|
if (m_timeoutTimer.isRunning() && m_timeoutTimer.hasExpired())
|
||||||
|
return;
|
||||||
|
|
||||||
|
unsigned char len = 1U;
|
||||||
|
m_queue.addData(&len, 1U);
|
||||||
|
|
||||||
|
unsigned char data = TAG_EOT;
|
||||||
|
m_queue.addData(&data, len);
|
||||||
|
}
|
||||||
|
|
||||||
void CDStarControl::writeNetworkHeader(const unsigned char* data, bool busy)
|
void CDStarControl::writeNetworkHeader(const unsigned char* data, bool busy)
|
||||||
{
|
{
|
||||||
assert(data != NULL);
|
assert(data != NULL);
|
||||||
@@ -758,5 +768,5 @@ void CDStarControl::sendAck()
|
|||||||
writeQueueData(data);
|
writeQueueData(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
writeQueueData(DSTAR_END_PATTERN_BYTES);
|
writeQueueEOT();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ private:
|
|||||||
|
|
||||||
void writeQueueHeader(const unsigned char* data);
|
void writeQueueHeader(const unsigned char* data);
|
||||||
void writeQueueData(const unsigned char* data);
|
void writeQueueData(const unsigned char* data);
|
||||||
|
void writeQueueEOT();
|
||||||
void writeNetworkHeader(const unsigned char* data, bool busy);
|
void writeNetworkHeader(const unsigned char* data, bool busy);
|
||||||
void writeNetworkData(const unsigned char* data, unsigned int errors, bool end, bool busy);
|
void writeNetworkData(const unsigned char* data, unsigned int errors, bool end, bool busy);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user