From c2cf7d33534167f3f8e5ee5bd934ea8b76481cff Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Wed, 25 Sep 2024 18:56:37 +0200 Subject: [PATCH 1/6] Activate CW QRM subtraction. --- lib/superfox/sfrx_sub.f90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/superfox/sfrx_sub.f90 b/lib/superfox/sfrx_sub.f90 index 08047989f..12a48e088 100644 --- a/lib/superfox/sfrx_sub.f90 +++ b/lib/superfox/sfrx_sub.f90 @@ -36,7 +36,7 @@ subroutine sfrx_sub(nyymmdd,nutc,nfqso,ntol,iwave) call sfox_ana(dd,npts,c0,npts) -! call sfox_remove_tone(c0,fsync) ! Needs testing + call sfox_remove_tone(c0,fsync) ! Needs testing ndepth=3 dth=0.5 From 5172c1da525ffb610fe1baa7438ba7a00f882699 Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Wed, 25 Sep 2024 20:57:45 +0200 Subject: [PATCH 2/6] Fix Enable Tx is locked when switching from SH to SF, and make sure m_XIT is zero. --- widgets/mainwindow.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 7b01bf8ad..83adbfc6a 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -2671,8 +2671,10 @@ void MainWindow::statusChanged() if (SpecOp::FOX==m_specOp) { ui->pbFreeText->setVisible(true); ui->cbSendMsg->setVisible(true); + ui->txb6->click(); if (m_config.superFox()) { ui->sbNslots->setVisible(true); + m_XIT=0; if(ui->cbSendMsg->isChecked()) { ui->sbNslots->setValue(2); m_Nslots=2; From 761bf8306937196a3c44e62d0d233374953a0d02 Mon Sep 17 00:00:00 2001 From: Brian Moran Date: Wed, 25 Sep 2024 14:37:04 -0700 Subject: [PATCH 3/6] handle slashes in a callsign that needs verification --- Network/FoxVerifier.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Network/FoxVerifier.cpp b/Network/FoxVerifier.cpp index 92663e851..36e554421 100644 --- a/Network/FoxVerifier.cpp +++ b/Network/FoxVerifier.cpp @@ -11,7 +11,9 @@ FoxVerifier::FoxVerifier(QString user_agent, QNetworkAccessManager *manager,QStr ts_ = timestamp; hz_ = hz; - QString url = QString("%1/check/%2/%3/%4.text").arg(base_url).arg(callsign).arg(timestamp.toString(Qt::ISODate)).arg(code); + // make sure we URLencode the callsign, for things like E51D/MM + QString encodedCall = QString::fromUtf8(QUrl::toPercentEncoding(callsign)); + QString url = QString("%1/check/").arg(base_url) + encodedCall + QString("/%1/%2.text").arg(timestamp.toString(Qt::ISODate)).arg(code); LOG_INFO(QString("FoxVerifier: url %1").arg(url).toStdString()); q_url_ = QUrl(url); if (manager_ == nullptr) { @@ -58,11 +60,13 @@ bool FoxVerifier::finished() { void FoxVerifier::errorOccurred(QNetworkReply::NetworkError code) { int status = reply_->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + QString reason = reply_->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString(); errored_ = true; error_reason_ = reply_->errorString(); if (reply_->error() != QNetworkReply::NoError) { - LOG_INFO(QString("FoxVerifier: errorOccurred status %1 error [%2] isFinished %3 isrunning %4 code %5").arg(status).arg( - error_reason_).arg(reply_->isFinished()).arg(reply_->isRunning()).arg(code).toStdString()); + + LOG_INFO(QString("FoxVerifier: errorOccurred status %1 error [%2][%3] isFinished %4 isrunning %5 code %6").arg(status).arg( + reason).arg(error_reason_).arg(reply_->isFinished()).arg(reply_->isRunning()).arg(code).toStdString()); return; } // TODO emit From 7b27757c2a4782879345a03a0b8d861c3afff81c Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Thu, 26 Sep 2024 08:54:29 +0200 Subject: [PATCH 4/6] Don't send SuperFox OTP messages to messageClient. --- widgets/mainwindow.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 83adbfc6a..5bd65d5ee 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -9395,6 +9395,7 @@ void MainWindow::replayDecodes () void MainWindow::postDecode (bool is_new, QString const& message) { + if (message.contains("$VERIFY$")) return; // Don't send OTP messages to messageClient auto const& decode = message.trimmed (); auto const& parts = decode.left (22).split (' ', SkipEmptyParts); if (parts.size () >= 5) From c75574339bcb97d7cb5dc27473510f61b3d90b1a Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Thu, 26 Sep 2024 09:09:32 +0200 Subject: [PATCH 5/6] Minor correction of the notes. --- widgets/mainwindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 5bd65d5ee..791f5cdbe 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -9395,7 +9395,7 @@ void MainWindow::replayDecodes () void MainWindow::postDecode (bool is_new, QString const& message) { - if (message.contains("$VERIFY$")) return; // Don't send OTP messages to messageClient + if (message.contains("$VERIFY$")) return; // Don't send SuperFox OTP messages to messageClient auto const& decode = message.trimmed (); auto const& parts = decode.left (22).split (' ', SkipEmptyParts); if (parts.size () >= 5) From eaa47122d8abffad97049f6878b61eb1a65dad04 Mon Sep 17 00:00:00 2001 From: Uwe Risse Date: Thu, 26 Sep 2024 14:44:17 +0200 Subject: [PATCH 6/6] Allow a compound prefix or suffix to be added to the DX call in SuperHound mode. --- widgets/mainwindow.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 791f5cdbe..edee2b339 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -227,6 +227,7 @@ bool keep_frequency = false; int m_Nslots0 {1}; int m_TxFreqFox {300}; bool filtered = false; +QString m_hisCall0 = ""; QSharedMemory mem_qmap("mem_qmap"); //Memory segment to be shared (optionally) with QMAP struct { @@ -5858,6 +5859,7 @@ void MainWindow::doubleClickOnCall(Qt::KeyboardModifiers modifiers) return; } m_bDoubleClicked = true; + m_hisCall0 = m_hisCall; processMessage (message, modifiers); } @@ -6479,6 +6481,7 @@ void MainWindow::genStdMsgs(QString rpt, bool unconditional) m_gen_message_is_cq = false; return; } + m_hisCall0 = hisCall; auto const& my_callsign = m_config.my_callsign (); auto is_compound = my_callsign != m_baseCall; auto is_type_one = !is77BitMode () && is_compound && shortList (my_callsign); @@ -6725,6 +6728,8 @@ void MainWindow::clearDX () if (m_mode=="FT8" and SpecOp::HOUND == m_specOp) { m_ntx=1; ui->txrb1->setChecked(true); + m_hisCall = ""; + m_hisCall0 = ""; } else { m_ntx=6; ui->txrb6->setChecked(true); @@ -6996,7 +7001,8 @@ void MainWindow::mousePressEvent(QMouseEvent *event) void MainWindow::on_dxCallEntry_textChanged (QString const& call) { - if (SpecOp::HOUND==m_specOp && m_config.superFox() && !m_bDoubleClicked) { + if (SpecOp::HOUND==m_specOp && m_config.superFox() && !(m_bDoubleClicked or (m_hisCall0 != "" + && (call.left(6).contains(m_hisCall0) or call.right(6).contains(m_hisCall0))))) { clearDX(); return; }