Remove packet timer and use the elapsed timer directly.
This commit is contained in:
parent
026a8a2e06
commit
ad29c5c4b6
14
DMRSlot.cpp
14
DMRSlot.cpp
|
@ -70,7 +70,6 @@ m_netN(0U),
|
||||||
m_networkWatchdog(1000U, 0U, 1500U),
|
m_networkWatchdog(1000U, 0U, 1500U),
|
||||||
m_rfTimeoutTimer(1000U, timeout),
|
m_rfTimeoutTimer(1000U, timeout),
|
||||||
m_netTimeoutTimer(1000U, timeout),
|
m_netTimeoutTimer(1000U, timeout),
|
||||||
m_packetTimer(1000U, 0U, 300U),
|
|
||||||
m_interval(),
|
m_interval(),
|
||||||
m_elapsed(),
|
m_elapsed(),
|
||||||
m_rfFrames(0U),
|
m_rfFrames(0U),
|
||||||
|
@ -679,7 +678,6 @@ void CDMRSlot::writeEndNet(bool writeEnd)
|
||||||
|
|
||||||
m_networkWatchdog.stop();
|
m_networkWatchdog.stop();
|
||||||
m_netTimeoutTimer.stop();
|
m_netTimeoutTimer.stop();
|
||||||
m_packetTimer.stop();
|
|
||||||
|
|
||||||
m_netFrames = 0U;
|
m_netFrames = 0U;
|
||||||
m_netLost = 0U;
|
m_netLost = 0U;
|
||||||
|
@ -1031,8 +1029,6 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
|
|
||||||
writeQueueNet(data);
|
writeQueueNet(data);
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
|
|
||||||
m_netFrames++;
|
m_netFrames++;
|
||||||
|
|
||||||
// Save details in case we need to infill data
|
// Save details in case we need to infill data
|
||||||
|
@ -1084,8 +1080,6 @@ void CDMRSlot::writeNetwork(const CDMRData& dmrData)
|
||||||
|
|
||||||
writeQueueNet(data);
|
writeQueueNet(data);
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
|
|
||||||
m_netFrames++;
|
m_netFrames++;
|
||||||
|
|
||||||
// Save details in case we need to infill data
|
// Save details in case we need to infill data
|
||||||
|
@ -1236,22 +1230,16 @@ void CDMRSlot::clock()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_netState == RS_NET_AUDIO) {
|
if (m_netState == RS_NET_AUDIO) {
|
||||||
m_packetTimer.clock(ms);
|
|
||||||
|
|
||||||
if (m_packetTimer.isRunning() && m_packetTimer.hasExpired()) {
|
|
||||||
unsigned int elapsed = m_elapsed.elapsed();
|
unsigned int elapsed = m_elapsed.elapsed();
|
||||||
unsigned int frames = elapsed / DMR_SLOT_TIME;
|
unsigned int frames = elapsed / DMR_SLOT_TIME;
|
||||||
|
|
||||||
if (frames > m_netFrames) {
|
if (frames > m_netFrames) {
|
||||||
unsigned int count = frames - m_netFrames;
|
unsigned int count = frames - m_netFrames;
|
||||||
if (count > 3U) {
|
if (count > 3U) {
|
||||||
LogDebug("DMR Slot %u, lost audio for 300ms filling in, elapsed: %ums, expected: %u, received: %u", m_slotNo, elapsed, frames, m_netFrames);
|
LogDebug("DMR Slot %u, lost audio for over 200ms filling in, elapsed: %ums, expected: %u, received: %u", m_slotNo, elapsed, frames, m_netFrames);
|
||||||
insertSilence(count - 1U);
|
insertSilence(count - 1U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,6 @@ private:
|
||||||
CTimer m_networkWatchdog;
|
CTimer m_networkWatchdog;
|
||||||
CTimer m_rfTimeoutTimer;
|
CTimer m_rfTimeoutTimer;
|
||||||
CTimer m_netTimeoutTimer;
|
CTimer m_netTimeoutTimer;
|
||||||
CTimer m_packetTimer;
|
|
||||||
CStopWatch m_interval;
|
CStopWatch m_interval;
|
||||||
CStopWatch m_elapsed;
|
CStopWatch m_elapsed;
|
||||||
unsigned int m_rfFrames;
|
unsigned int m_rfFrames;
|
||||||
|
|
|
@ -56,7 +56,6 @@ m_netN(0U),
|
||||||
m_networkWatchdog(1000U, 0U, 1500U),
|
m_networkWatchdog(1000U, 0U, 1500U),
|
||||||
m_rfTimeoutTimer(1000U, timeout),
|
m_rfTimeoutTimer(1000U, timeout),
|
||||||
m_netTimeoutTimer(1000U, timeout),
|
m_netTimeoutTimer(1000U, timeout),
|
||||||
m_packetTimer(1000U, 0U, 200U),
|
|
||||||
m_ackTimer(1000U, 0U, 750U),
|
m_ackTimer(1000U, 0U, 750U),
|
||||||
m_interval(),
|
m_interval(),
|
||||||
m_elapsed(),
|
m_elapsed(),
|
||||||
|
@ -424,7 +423,6 @@ void CDStarControl::writeEndNet()
|
||||||
|
|
||||||
m_netTimeoutTimer.stop();
|
m_netTimeoutTimer.stop();
|
||||||
m_networkWatchdog.stop();
|
m_networkWatchdog.stop();
|
||||||
m_packetTimer.stop();
|
|
||||||
|
|
||||||
if (m_network != NULL)
|
if (m_network != NULL)
|
||||||
m_network->reset();
|
m_network->reset();
|
||||||
|
@ -468,7 +466,6 @@ void CDStarControl::writeNetwork()
|
||||||
m_netHeader = header;
|
m_netHeader = header;
|
||||||
|
|
||||||
m_netTimeoutTimer.start();
|
m_netTimeoutTimer.start();
|
||||||
m_packetTimer.start();
|
|
||||||
m_elapsed.start();
|
m_elapsed.start();
|
||||||
m_ackTimer.stop();
|
m_ackTimer.stop();
|
||||||
|
|
||||||
|
@ -544,7 +541,6 @@ void CDStarControl::writeNetwork()
|
||||||
if (n == 0U)
|
if (n == 0U)
|
||||||
CSync::addDStarSync(data + 2U);
|
CSync::addDStarSync(data + 2U);
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
m_netFrames++;
|
m_netFrames++;
|
||||||
|
|
||||||
#if defined(DUMP_DSTAR)
|
#if defined(DUMP_DSTAR)
|
||||||
|
@ -589,22 +585,16 @@ void CDStarControl::clock()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_netState == RS_NET_AUDIO) {
|
if (m_netState == RS_NET_AUDIO) {
|
||||||
m_packetTimer.clock(ms);
|
|
||||||
|
|
||||||
if (m_packetTimer.isRunning() && m_packetTimer.hasExpired()) {
|
|
||||||
unsigned int elapsed = m_elapsed.elapsed();
|
unsigned int elapsed = m_elapsed.elapsed();
|
||||||
unsigned int frames = elapsed / DSTAR_FRAME_TIME;
|
unsigned int frames = elapsed / DSTAR_FRAME_TIME;
|
||||||
|
|
||||||
if (frames > m_netFrames) {
|
if (frames > m_netFrames) {
|
||||||
unsigned int count = frames - m_netFrames;
|
unsigned int count = frames - m_netFrames;
|
||||||
if (count > 5U) {
|
if (count > 10U) {
|
||||||
LogDebug("D-Star, lost audio for 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
|
LogDebug("D-Star, lost audio for over 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
|
||||||
insertSilence(count - 2U);
|
insertSilence(count - 2U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,6 @@ private:
|
||||||
CTimer m_networkWatchdog;
|
CTimer m_networkWatchdog;
|
||||||
CTimer m_rfTimeoutTimer;
|
CTimer m_rfTimeoutTimer;
|
||||||
CTimer m_netTimeoutTimer;
|
CTimer m_netTimeoutTimer;
|
||||||
CTimer m_packetTimer;
|
|
||||||
CTimer m_ackTimer;
|
CTimer m_ackTimer;
|
||||||
CStopWatch m_interval;
|
CStopWatch m_interval;
|
||||||
CStopWatch m_elapsed;
|
CStopWatch m_elapsed;
|
||||||
|
|
|
@ -33,7 +33,6 @@ m_rfState(RS_RF_LISTENING),
|
||||||
m_netState(RS_NET_IDLE),
|
m_netState(RS_NET_IDLE),
|
||||||
m_rfTimeoutTimer(1000U, timeout),
|
m_rfTimeoutTimer(1000U, timeout),
|
||||||
m_netTimeoutTimer(1000U, timeout),
|
m_netTimeoutTimer(1000U, timeout),
|
||||||
m_packetTimer(1000U, 0U, 200U),
|
|
||||||
m_networkWatchdog(1000U, 0U, 1500U),
|
m_networkWatchdog(1000U, 0U, 1500U),
|
||||||
m_elapsed(),
|
m_elapsed(),
|
||||||
m_rfFrames(0U),
|
m_rfFrames(0U),
|
||||||
|
@ -353,7 +352,6 @@ void CYSFControl::writeEndNet()
|
||||||
|
|
||||||
m_netTimeoutTimer.stop();
|
m_netTimeoutTimer.stop();
|
||||||
m_networkWatchdog.stop();
|
m_networkWatchdog.stop();
|
||||||
m_packetTimer.stop();
|
|
||||||
|
|
||||||
m_netPayload.reset();
|
m_netPayload.reset();
|
||||||
|
|
||||||
|
@ -399,7 +397,6 @@ void CYSFControl::writeNetwork()
|
||||||
|
|
||||||
m_netTimeoutTimer.start();
|
m_netTimeoutTimer.start();
|
||||||
m_netPayload.reset();
|
m_netPayload.reset();
|
||||||
m_packetTimer.start();
|
|
||||||
m_elapsed.start();
|
m_elapsed.start();
|
||||||
m_netState = RS_NET_AUDIO;
|
m_netState = RS_NET_AUDIO;
|
||||||
m_netFrames = 0U;
|
m_netFrames = 0U;
|
||||||
|
@ -516,7 +513,6 @@ void CYSFControl::writeNetwork()
|
||||||
|
|
||||||
if (send) {
|
if (send) {
|
||||||
writeQueueNet(data + 33U);
|
writeQueueNet(data + 33U);
|
||||||
m_packetTimer.start();
|
|
||||||
m_netFrames++;
|
m_netFrames++;
|
||||||
m_netN = n;
|
m_netN = n;
|
||||||
}
|
}
|
||||||
|
@ -545,22 +541,16 @@ void CYSFControl::clock(unsigned int ms)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_netState == RS_NET_AUDIO) {
|
if (m_netState == RS_NET_AUDIO) {
|
||||||
m_packetTimer.clock(ms);
|
|
||||||
|
|
||||||
if (m_packetTimer.isRunning() && m_packetTimer.hasExpired()) {
|
|
||||||
unsigned int elapsed = m_elapsed.elapsed();
|
unsigned int elapsed = m_elapsed.elapsed();
|
||||||
unsigned int frames = elapsed / YSF_FRAME_TIME;
|
unsigned int frames = elapsed / YSF_FRAME_TIME;
|
||||||
|
|
||||||
if (frames > m_netFrames) {
|
if (frames > m_netFrames) {
|
||||||
unsigned int count = frames - m_netFrames;
|
unsigned int count = frames - m_netFrames;
|
||||||
if (count > 2U) {
|
if (count > 2U) {
|
||||||
LogDebug("YSF, lost audio for 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
|
LogDebug("YSF, lost audio for over 200ms filling in, elapsed: %ums, expected: %u, received: %u", elapsed, frames, m_netFrames);
|
||||||
insertSilence(count - 1U);
|
insertSilence(count - 1U);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_packetTimer.start();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,6 @@ private:
|
||||||
RPT_NET_STATE m_netState;
|
RPT_NET_STATE m_netState;
|
||||||
CTimer m_rfTimeoutTimer;
|
CTimer m_rfTimeoutTimer;
|
||||||
CTimer m_netTimeoutTimer;
|
CTimer m_netTimeoutTimer;
|
||||||
CTimer m_packetTimer;
|
|
||||||
CTimer m_networkWatchdog;
|
CTimer m_networkWatchdog;
|
||||||
CStopWatch m_elapsed;
|
CStopWatch m_elapsed;
|
||||||
unsigned int m_rfFrames;
|
unsigned int m_rfFrames;
|
||||||
|
|
Loading…
Reference in a new issue