From 7040d69a46ad435cc433d046480052d3f296e638 Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Sat, 31 Aug 2024 11:54:24 +0200 Subject: [PATCH] Limit the number of Tx3 hound replies to 6. --- widgets/mainwindow.cpp | 16 +++++++++++++++- widgets/mainwindow.h | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 8c26b3621..d020424ee 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -861,6 +861,9 @@ MainWindow::MainWindow(QDir const& temp_directory, bool multiple, connect(&m_guiTimer, &QTimer::timeout, this, &MainWindow::guiUpdate); m_guiTimer.start(100); //### Don't change the 100 ms! ### + stopWRTimer.setSingleShot(true); + connect(&stopWRTimer, &QTimer::timeout, this, &MainWindow::stopWRTimeout); + ptt0Timer.setSingleShot(true); connect(&ptt0Timer, &QTimer::timeout, this, &MainWindow::stopTx2); @@ -2210,6 +2213,7 @@ void MainWindow::on_actionAbout_triggered() //Display "About" void MainWindow::on_autoButton_clicked (bool checked) { + stopWRTimer.stop(); // stop a running Tx3 timer m_auto = checked; m_maxPoints=-1; if (checked @@ -2556,6 +2560,11 @@ void MainWindow::displayDialFrequency () ui->labDialFreq->setText (Radio::pretty_frequency_MHz_string (dial_frequency)); } + void MainWindow::stopWRTimeout() + { + auto_tx_mode(false); + } + void MainWindow::statusChanged() { if (m_specOp==SpecOp::Q65_PILEUP && m_mode != "Q65") on_actionQ65_triggered(); @@ -2819,6 +2828,7 @@ void MainWindow::on_stopButton_clicked() //stopButton MessageBox::information_message (this, tr ("Reference spectrum saved")); m_bRefSpec=false; } + stopWRTimer.stop(); // stop a running Tx3 timer } void MainWindow::on_actionRelease_Notes_triggered () @@ -6975,6 +6985,7 @@ void MainWindow::on_logQSOButton_clicked() //Log QSO button m_dateTimeQSOOn, dateTimeQSOOff, m_freqNominal + ui->TxFreqSpinBox->value(), m_noSuffix, m_xSent, m_xRcvd); m_inQSOwith=""; + stopWRTimer.stop(); // stop a running Tx3 timer } void MainWindow::acceptQSO (QDateTime const& QSO_date_off, QString const& call, QString const& grid @@ -8287,6 +8298,7 @@ void MainWindow::on_rptSpinBox_valueChanged(int n) void MainWindow::on_tuneButton_clicked (bool checked) { + stopWRTimer.stop(); // stop a running Tx3 timer static bool lastChecked = false; if (lastChecked == checked) return; lastChecked = checked; @@ -8347,6 +8359,7 @@ void MainWindow::on_stopTxButton_clicked() //Stop Tx m_bCallingCQ = false; m_bAutoReply = false; // ready for next m_maxPoints=-1; + stopWRTimer.stop(); // stop a running Tx3 timer } void MainWindow::rigOpen () @@ -10018,12 +10031,13 @@ void MainWindow::readWidebandDecodes() void MainWindow::hound_reply () { if (!m_tune) { - //Select TX3, set TxFreq to FoxFreq, and Force Auto ON. + // Select Tx3, set TxFreq to FoxFreq, and Force Auto ON. ui->txrb3->setChecked (true); m_nSentFoxRrpt = 1; ui->rptSpinBox->setValue(m_rptSent.toInt()); if (!m_auto) auto_tx_mode(true); if (!m_config.superFox()) ui->TxFreqSpinBox->setValue (m_nFoxFreq); + stopWRTimer.start(int(11000.0*m_TRperiod)); // Tx3 timeout when in Hound mode } } diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 918d284f3..9101e403d 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -146,6 +146,7 @@ private: private slots: void initialize_fonts (); + void stopWRTimeout(); void on_houndButton_clicked(bool checked); void on_ft8Button_clicked(); void on_ft4Button_clicked(); @@ -637,6 +638,7 @@ private: WSPRNet *wsprNet; QTimer m_guiTimer; + QTimer stopWRTimer; QTimer ptt1Timer; //StartTx delay QTimer ptt0Timer; //StopTx delay QTimer logQSOTimer;