Delay first decode until start of the next period on startup
This commit is contained in:
parent
9e761ba144
commit
f635ba3a33
@ -1496,7 +1496,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple,
|
|||||||
|
|
||||||
// Don't block heartbeat's first run...
|
// Don't block heartbeat's first run...
|
||||||
m_lastTxStartTime = DriftingDateTime::currentDateTimeUtc().addSecs(-300);
|
m_lastTxStartTime = DriftingDateTime::currentDateTimeUtc().addSecs(-300);
|
||||||
m_lastTxStopTime = DriftingDateTime::currentDateTimeUtc().addSecs(-300);
|
|
||||||
|
// But do block the decoder's first run until the next transmit period
|
||||||
|
m_lastTxStopTime = nextTransmitCycle();
|
||||||
|
|
||||||
int width = 75;
|
int width = 75;
|
||||||
/*
|
/*
|
||||||
@ -4036,7 +4038,7 @@ bool MainWindow::decode(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
int threshold = 1000; // one second
|
int threshold = 1000; // one second
|
||||||
if(isInTransmitDecodeThreshold(threshold)){
|
if(isInDecodeDelayThreshold(threshold)){
|
||||||
if(JS8_DEBUG_DECODE) qDebug() << "--> decoder paused for" << threshold << "ms after transmit stop";
|
if(JS8_DEBUG_DECODE) qDebug() << "--> decoder paused for" << threshold << "ms after transmit stop";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -4570,7 +4572,7 @@ QDateTime MainWindow::nextTransmitCycle(){
|
|||||||
|
|
||||||
// round to 15 second increment
|
// round to 15 second increment
|
||||||
int secondsSinceEpoch = (timestamp.toMSecsSinceEpoch()/1000);
|
int secondsSinceEpoch = (timestamp.toMSecsSinceEpoch()/1000);
|
||||||
int delta = roundUp(secondsSinceEpoch, 15) + 1 - secondsSinceEpoch;
|
int delta = roundUp(secondsSinceEpoch, m_TRperiod) + 1 - secondsSinceEpoch;
|
||||||
timestamp = timestamp.addSecs(delta);
|
timestamp = timestamp.addSecs(delta);
|
||||||
|
|
||||||
return timestamp;
|
return timestamp;
|
||||||
@ -6472,7 +6474,7 @@ bool MainWindow::isMessageQueuedForTransmit(){
|
|||||||
return m_transmitting || m_txFrameCount > 0;
|
return m_transmitting || m_txFrameCount > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MainWindow::isInTransmitDecodeThreshold(int ms){
|
bool MainWindow::isInDecodeDelayThreshold(int ms){
|
||||||
if(m_lastTxStopTime.isNull()){
|
if(m_lastTxStopTime.isNull()){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -146,7 +146,7 @@ public slots:
|
|||||||
void writeNoticeTextToUI(QDateTime date, QString text);
|
void writeNoticeTextToUI(QDateTime date, QString text);
|
||||||
int writeMessageTextToUI(QDateTime date, QString text, int freq, bool isTx, int block=-1);
|
int writeMessageTextToUI(QDateTime date, QString text, int freq, bool isTx, int block=-1);
|
||||||
bool isMessageQueuedForTransmit();
|
bool isMessageQueuedForTransmit();
|
||||||
bool isInTransmitDecodeThreshold(int seconds);
|
bool isInDecodeDelayThreshold(int seconds);
|
||||||
void prependMessageText(QString text);
|
void prependMessageText(QString text);
|
||||||
void addMessageText(QString text, bool clear=false, bool selectFirstPlaceholder=false);
|
void addMessageText(QString text, bool clear=false, bool selectFirstPlaceholder=false);
|
||||||
void enqueueMessage(int priority, QString message, int freq, Callback c);
|
void enqueueMessage(int priority, QString message, int freq, Callback c);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user