mirror of
https://github.com/jtdx-project/jtdx
synced 2026-08-13 17:35:38 -04:00
Replace Sleep with changed interval
This commit is contained in:
parent
556a818d9b
commit
2fedeca652
2 changed files with 27 additions and 29 deletions
|
|
@ -19,6 +19,7 @@ namespace
|
|||
PollingTransceiver::PollingTransceiver (int poll_interval, QObject * parent)
|
||||
: TransceiverBase {parent}
|
||||
, interval_ { (poll_interval & 0x7fff) == 0 ? 500 : (poll_interval & 0x7fff) * 1000}
|
||||
, set_interval_ {interval_}
|
||||
, poll_timer_ {nullptr}
|
||||
, ft4_mode_ {false}
|
||||
, fast_mode_ {interval_ == 500}
|
||||
|
|
@ -89,25 +90,13 @@ void PollingTransceiver::do_post_start (JTDXDateTime * jtdxtime)
|
|||
fprintf (pFile,"%s Poll start ms %lld %d\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),ms,sec);
|
||||
fclose (pFile);
|
||||
#endif
|
||||
if (fast_mode_) {
|
||||
if (ms < 300)
|
||||
QThread::msleep (300 - ms);
|
||||
else if (ms > 330 && ms < 800 )
|
||||
QThread::msleep (800 - ms);
|
||||
else if (ms > 830)
|
||||
QThread::msleep (1300 - ms);
|
||||
}
|
||||
else if (ft4_mode_ && (sec == 5 || sec == 6 || sec == 7 || sec == 8 || sec == 9 || sec == 10 || sec == 11)) {
|
||||
if (ms < 800)
|
||||
QThread::msleep (800-ms);
|
||||
else if (ms > 830)
|
||||
QThread::msleep (1800-ms);
|
||||
if (ft4_mode_ && (sec == 7 || sec == 8 || sec == 9 || sec == 10 || sec == 11 || sec == 12 || sec == 13)) {
|
||||
if (ms < 500)
|
||||
interval_ = 500;
|
||||
}
|
||||
else {
|
||||
if (ms < 300)
|
||||
QThread::msleep (300-ms);
|
||||
else if (ms > 330)
|
||||
QThread::msleep (1300-ms);
|
||||
if (ms > 500)
|
||||
interval_ = 500;
|
||||
}
|
||||
start_timer ();
|
||||
if (!next_state_.online ())
|
||||
|
|
@ -213,7 +202,7 @@ void PollingTransceiver::handle_timeout ()
|
|||
if (m_jtdxtime == nullptr) {
|
||||
#if JTDX_DEBUG_TO_FILE
|
||||
FILE * pFile = fopen (debug_file_.c_str(),"a");
|
||||
fprintf(pFile," Poll start retries=%d fast_mode=%d ft4_mode=%d\n",retries_,fast_mode_,ft4_mode_);
|
||||
fprintf(pFile," Poll start interval= %d retries=%d fast_mode=%d ft4_mode=%d\n",interval_,retries_,fast_mode_,ft4_mode_);
|
||||
fclose (pFile);
|
||||
#endif
|
||||
offline ("Polling destroyed");
|
||||
|
|
@ -222,26 +211,34 @@ void PollingTransceiver::handle_timeout ()
|
|||
{
|
||||
int sec = m_jtdxtime->currentDateTimeUtc2().toString("ss").toInt() % 15;
|
||||
auto ms = m_jtdxtime->currentMSecsSinceEpoch2() % 1000;
|
||||
// printf("%s %d Poll start retries=%d fast_mode=%d ft4_mode=%d sec=%d ms=%lld\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec,retries_,fast_mode_,ft4_mode_,sec,ms);
|
||||
// printf("%s %d Poll start interval=%d retries=%d fast_mode=%d ft4_mode=%d sec=%d ms=%lld\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec,interval_,retries_,fast_mode_,ft4_mode_,sec,ms);
|
||||
#if JTDX_DEBUG_TO_FILE
|
||||
FILE * pFile = fopen (debug_file_.c_str(),"a");
|
||||
fprintf(pFile,"%s %d Poll start retries=%d fast_mode=%d ft4_mode=%d sec=%d ms=%lld\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec,retries_,fast_mode_,ft4_mode_,sec,ms);
|
||||
fprintf(pFile,"%s %d Poll start interval=%d retries=%d fast_mode=%d ft4_mode=%d sec=%d ms=%lld\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec,interval_,retries_,fast_mode_,ft4_mode_,sec,ms);
|
||||
fclose (pFile);
|
||||
#endif
|
||||
if (!ft4_mode_ && !fast_mode_) {
|
||||
if (ms < 300) {poll_timer_->stop (); QThread::msleep (300 - ms); poll_timer_->start (interval_);}
|
||||
else if (ms > 330) {poll_timer_->stop (); QThread::msleep (1300 - ms); poll_timer_->start (interval_);}
|
||||
} else if (!fast_mode_) {
|
||||
if ((sec == 6 || sec == 7 || sec == 8 || sec == 9 || sec == 10 || sec == 11 || sec == 12) && ms < 800) {
|
||||
poll_timer_->stop (); QThread::msleep (800 - ms); poll_timer_->start (interval_);
|
||||
} else if (sec == 13 || sec == 14 || sec == 0 || sec == 1 || sec == 2 || sec == 3 || sec == 4 || sec == 5) {
|
||||
if (ms < 300) {poll_timer_->stop (); QThread::msleep (300 - ms); poll_timer_->start (interval_);}
|
||||
else if (ms > 330) {poll_timer_->stop (); QThread::msleep (1300 - ms); poll_timer_->start (interval_);}
|
||||
if (ms >= 500) interval_ = 500; else interval_ = set_interval_;
|
||||
} else if (ft4_mode_) {
|
||||
if (sec == 7 || sec == 8 || sec == 9 || sec == 10 || sec == 11 || sec == 12) {
|
||||
if (ms < 500) interval_ = 500; else interval_ = set_interval_;
|
||||
} else if (sec == 6){
|
||||
if (ms < 500) interval_ = 1500; else interval_ = set_interval_;
|
||||
} else if (sec == 13){
|
||||
if (ms >= 500) interval_ = 1500; else interval_ = set_interval_;
|
||||
} else {
|
||||
if (ms >= 500) interval_ = 500; else interval_ = set_interval_;
|
||||
}
|
||||
}
|
||||
if (interval_ != poll_timer_->interval()) {
|
||||
poll_timer_->stop ();
|
||||
poll_timer_->start (interval_);
|
||||
// printf("New interval %d ",interval_);
|
||||
}
|
||||
|
||||
// printf("%s %d Poll start retries=%d fast_mode=%d ft4_mode=%d sec=%d ms=%lld\n",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec,retries_,fast_mode_,ft4_mode_,sec,ms);
|
||||
do_poll (); // tell sub-classes to update our state
|
||||
// printf("%s %d Poll end ",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec);
|
||||
printf("%s %d Poll end ",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec);
|
||||
#if JTDX_DEBUG_TO_FILE
|
||||
pFile = fopen (debug_file_.c_str(),"a");
|
||||
fprintf(pFile,"%s %d Poll end ",m_jtdxtime->currentDateTimeUtc2().toString("hh:mm:ss.zzz").toStdString().c_str(),sec);
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ private:
|
|||
Q_SLOT void handle_timeout ();
|
||||
|
||||
int interval_; // polling interval in milliseconds
|
||||
int set_interval_;
|
||||
QTimer * poll_timer_;
|
||||
bool ft4_mode_;
|
||||
bool fast_mode_;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue