From b8b2892a1bf0f2af8b725e9671094c753313ef37 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Tue, 17 Aug 2021 17:54:41 +0100 Subject: [PATCH 01/13] Remove unneeded submodules --- .gitmodules | 6 ------ opus-tools | 1 - rtaudio | 1 - 3 files changed, 8 deletions(-) delete mode 160000 opus-tools delete mode 160000 rtaudio diff --git a/.gitmodules b/.gitmodules index 0e24a44..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +0,0 @@ -[submodule "opus-tools"] - path = opus-tools - url = https://github.com/xiph/opus-tools.git -[submodule "rtaudio"] - path = rtaudio - url = https://github.com/thestk/rtaudio.git diff --git a/opus-tools b/opus-tools deleted file mode 160000 index ae5d6d5..0000000 --- a/opus-tools +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ae5d6d59e82ef40300a4dece7897499685f87184 diff --git a/rtaudio b/rtaudio deleted file mode 160000 index c9bf99d..0000000 --- a/rtaudio +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c9bf99d414cf81d19ef0ddd00212a4a58ccd99c6 From c2840f43d9e7a7fe2434ba9d15e85138cf37c633 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Wed, 18 Aug 2021 12:11:23 +0100 Subject: [PATCH 02/13] Update wfview.vcxproj --- wfview.vcxproj | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/wfview.vcxproj b/wfview.vcxproj index 847643e..bf3abb6 100644 --- a/wfview.vcxproj +++ b/wfview.vcxproj @@ -57,7 +57,7 @@ Sync release\ MaxSpeed - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="eb2f897";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="fc2d1e2";HOST="wfview.org";UNAME="build";NDEBUG;QT_NO_DEBUG;%(PreprocessorDefinitions) false MultiThreadedDLL @@ -85,7 +85,7 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"eb2f897\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"fc2d1e2\";HOST=\"wfview.org\";UNAME=\"build\";NDEBUG;QT_NO_DEBUG;QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;%(PreprocessorDefinitions) msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h @@ -99,7 +99,7 @@ Sync debug\ Disabled - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="eb2f897";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX="/usr/local";__WINDOWS_WASAPI__;GITSHORT="fc2d1e2";HOST="wfview.org";UNAME="build";%(PreprocessorDefinitions) false MultiThreadedDebugDLL true @@ -124,7 +124,7 @@ 0 - _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"eb2f897\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions) + _WINDOWS;UNICODE;_UNICODE;WIN32;_ENABLE_EXTENDED_ALIGNED_STORAGE;QT_DEPRECATED_WARNINGS;QCUSTOMPLOT_COMPILE_LIBRARY;USE_SSE;OUTSIDE_SPEEX;RANDOM_PREFIX=wf;PREFIX=\"/usr/local\";__WINDOWS_WASAPI__;GITSHORT=\"fc2d1e2\";HOST=\"wfview.org\";UNAME=\"build\";QT_MULTIMEDIA_LIB;QT_PRINTSUPPORT_LIB;QT_WIDGETS_LIB;QT_GUI_LIB;QT_SERIALPORT_LIB;QT_NETWORK_LIB;QT_CORE_LIB;_DEBUG;%(PreprocessorDefinitions) msvc./$(Configuration)/moc_predefs.hMoc'ing %(Identity)...output$(Configuration)moc_%(Filename).cppdefaultRcc'ing %(Identity)...$(Configuration)qrc_%(Filename).cppUic'ing %(Identity)...$(ProjectDir)ui_%(Filename).h From 58a6477f53bad1a38cb664b9c5a0e5f33f48eac4 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Thu, 19 Aug 2021 10:21:30 +0100 Subject: [PATCH 03/13] Set audio threads to be realtime priority --- udphandler.cpp | 2 ++ udpserver.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/udphandler.cpp b/udphandler.cpp index fd25042..3d71c05 100644 --- a/udphandler.cpp +++ b/udphandler.cpp @@ -732,6 +732,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio rxaudio = new audioHandler(); rxAudioThread = new QThread(this); + rxAudioThread->setPriority(QThread::TimeCriticalPriority); rxaudio->moveToThread(rxAudioThread); @@ -749,6 +750,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio txaudio = new audioHandler(); txAudioThread = new QThread(this); + txAudioThread->setPriority(QThread::TimeCriticalPriority); txaudio->moveToThread(txAudioThread); diff --git a/udpserver.cpp b/udpserver.cpp index 6bc80a7..8627284 100644 --- a/udpserver.cpp +++ b/udpserver.cpp @@ -382,6 +382,7 @@ void udpServer::controlReceived() txaudio = new audioHandler(); txAudioThread = new QThread(this); + txAudioThread->setPriority(QThread::TimeCriticalPriority); txaudio->moveToThread(txAudioThread); txAudioThread->start(); @@ -402,6 +403,8 @@ void udpServer::controlReceived() rxaudio = new audioHandler(); rxAudioThread = new QThread(this); + rxAudioThread->setPriority(QThread::TimeCriticalPriority); + rxaudio->moveToThread(rxAudioThread); rxAudioThread->start(); From d9a9a3ba2b1f50dcd1cda780e1f679fb19e91131 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Fri, 20 Aug 2021 22:19:47 -0700 Subject: [PATCH 04/13] Fixed issue where the "none" selection didn't work quite right. Also fixed the T/R meter switching to clear out invalid readings. --- meter.cpp | 33 ++++++++++++++++++++++++++++----- meter.h | 4 ++-- wfmain.cpp | 2 ++ 3 files changed, 32 insertions(+), 7 deletions(-) diff --git a/meter.cpp b/meter.cpp index 154376b..cc45af6 100644 --- a/meter.cpp +++ b/meter.cpp @@ -48,13 +48,23 @@ meter::meter(QWidget *parent) : QWidget(parent) } -void meter::setMeterType(meterKind type) +void meter::clearMeterOnPTTtoggle() { - if(type == meterType) - return; + // When a meter changes type, such as the fixed S -- TxPo meter, + // there is automatic clearing. However, some meters do not switch on thier own, + // and thus we are providing this clearing method. We are careful + // not to clear meters that don't make sense to clear (such as Vd and Id) - meterType = type; - // clear average and peak vectors: + + if( (meterType == meterALC) || (meterType == meterSWR) + || (meterType == meterComp) || (meterType == meterTxMod) ) + { + clearMeter(); + } +} + +void meter::clearMeter() +{ current = 0; average = 0; peak = 0; @@ -70,6 +80,16 @@ void meter::setMeterType(meterKind type) update(); } +void meter::setMeterType(meterKind type) +{ + if(type == meterType) + return; + + meterType = type; + // clear average and peak vectors: + this->clearMeter(); +} + meterKind meter::getMeterType() { return meterType; @@ -140,6 +160,9 @@ void meter::paintEvent(QPaintEvent *) peakRedLevel = 100; drawScaleComp(&painter); break; + case meterNone: + return; + break; default: label = "DN"; peakRedLevel = 241; diff --git a/meter.h b/meter.h index 472408f..d94657c 100644 --- a/meter.h +++ b/meter.h @@ -24,6 +24,8 @@ public slots: void updateDrawing(int num); void setLevels(int current, int peak, int average); void setLevel(int current); + void clearMeterOnPTTtoggle(); + void clearMeter(); void setMeterType(meterKind type); void setMeterShortString(QString); QString getMeterShortString(); @@ -47,8 +49,6 @@ private: std::vector avgLevels; std::vector peakLevels; - - int peakRedLevel=0; bool drawLabels = true; int mXstart = 0; // Starting point for S=0. diff --git a/wfmain.cpp b/wfmain.cpp index 9c83a24..2d83e08 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -2407,6 +2407,7 @@ void wfmain::doCmd(commandtype cmddata) { bool pttrequest = (*std::static_pointer_cast(data)); emit setPTT(pttrequest); + ui->meter2Widget->clearMeterOnPTTtoggle(); if(pttrequest) { ui->meterSPoWidget->setMeterType(meterPower); @@ -5257,6 +5258,7 @@ void wfmain::on_meter2selectionCombo_activated(int index) if(newMeterType==meterNone) { ui->meter2Widget->hide(); + ui->meter2Widget->setMeterType(newMeterType); } else { ui->meter2Widget->show(); ui->meter2Widget->setMeterType(newMeterType); From 23ccee8a21d4e96390d29ba4fadd8038be6696e1 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Fri, 20 Aug 2021 22:23:16 -0700 Subject: [PATCH 05/13] Clear Center readout as well. --- meter.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meter.cpp b/meter.cpp index cc45af6..f316a6b 100644 --- a/meter.cpp +++ b/meter.cpp @@ -57,7 +57,8 @@ void meter::clearMeterOnPTTtoggle() if( (meterType == meterALC) || (meterType == meterSWR) - || (meterType == meterComp) || (meterType == meterTxMod) ) + || (meterType == meterComp) || (meterType == meterTxMod) + || (meterType == meterCenter )) { clearMeter(); } From db6a20d3d03b5d4669f303209266a18160e2ea08 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Mon, 23 Aug 2021 14:40:36 -0700 Subject: [PATCH 06/13] Now with dual meters for everyone! --- wfmain.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index 2d83e08..2f94485 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -684,14 +684,9 @@ void wfmain::setupMainUI() ui->meter2selectionCombo->addItem("Center", meterCenter); ui->meter2Widget->hide(); -#ifdef QT_DEBUG - // Experimental feature: ui->meter2selectionCombo->show(); ui->secondaryMeterSelectionLabel->show(); -#else - ui->meter2selectionCombo->hide(); - ui->secondaryMeterSelectionLabel->hide(); -#endif + // Future ideas: //ui->meter2selectionCombo->addItem("Transmit Audio", meterTxMod); From 5b1ed2dc353e7f6c3e843027c9f02a948dd46624 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Mon, 23 Aug 2021 23:59:40 +0100 Subject: [PATCH 07/13] Set audio thread priority in the correct place! --- udphandler.cpp | 6 +++--- udpserver.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/udphandler.cpp b/udphandler.cpp index c320e7d..a7e0717 100644 --- a/udphandler.cpp +++ b/udphandler.cpp @@ -718,7 +718,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio rxaudio->moveToThread(rxAudioThread); - rxAudioThread->start(); + rxAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup))); @@ -735,8 +735,8 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio txaudio->moveToThread(txAudioThread); - txAudioThread->start(); - + txAudioThread->start(QThread::TimeCriticalPriority); + connect(this, SIGNAL(setupTxAudio(audioSetup)), txaudio, SLOT(init(audioSetup))); connect(txAudioThread, SIGNAL(finished()), txaudio, SLOT(deleteLater())); diff --git a/udpserver.cpp b/udpserver.cpp index b6eb299..65a26c8 100644 --- a/udpserver.cpp +++ b/udpserver.cpp @@ -384,7 +384,7 @@ void udpServer::controlReceived() txAudioThread = new QThread(this); txaudio->moveToThread(txAudioThread); - txAudioThread->start(); + txAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupTxAudio(audioSetup)), txaudio, SLOT(init(audioSetup))); connect(txAudioThread, SIGNAL(finished()), txaudio, SLOT(deleteLater())); @@ -402,8 +402,8 @@ void udpServer::controlReceived() rxaudio = new audioHandler(); rxAudioThread = new QThread(this); - rxaudio->moveToThread(rxAudioThread); - rxAudioThread->start(); + + rxAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup))); connect(rxAudioThread, SIGNAL(finished()), rxaudio, SLOT(deleteLater())); From 57b6f955c66358a2c0af6a4f7c66c9712bb8b476 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Mon, 23 Aug 2021 23:59:40 +0100 Subject: [PATCH 08/13] Set audio thread priority in the correct place! --- udphandler.cpp | 6 +++--- udpserver.cpp | 9 +++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/udphandler.cpp b/udphandler.cpp index fd25042..d5368a4 100644 --- a/udphandler.cpp +++ b/udphandler.cpp @@ -735,7 +735,7 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio rxaudio->moveToThread(rxAudioThread); - rxAudioThread->start(); + rxAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup))); @@ -752,8 +752,8 @@ udpAudio::udpAudio(QHostAddress local, QHostAddress ip, quint16 audioPort, audio txaudio->moveToThread(txAudioThread); - txAudioThread->start(); - + txAudioThread->start(QThread::TimeCriticalPriority); + connect(this, SIGNAL(setupTxAudio(audioSetup)), txaudio, SLOT(init(audioSetup))); connect(txAudioThread, SIGNAL(finished()), txaudio, SLOT(deleteLater())); diff --git a/udpserver.cpp b/udpserver.cpp index 6bc80a7..4ac5f69 100644 --- a/udpserver.cpp +++ b/udpserver.cpp @@ -384,7 +384,7 @@ void udpServer::controlReceived() txAudioThread = new QThread(this); txaudio->moveToThread(txAudioThread); - txAudioThread->start(); + txAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupTxAudio(audioSetup)), txaudio, SLOT(init(audioSetup))); connect(txAudioThread, SIGNAL(finished()), txaudio, SLOT(deleteLater())); @@ -401,9 +401,10 @@ void udpServer::controlReceived() inAudio.samplerate = current->rxSampleRate; rxaudio = new audioHandler(); - rxAudioThread = new QThread(this); - rxaudio->moveToThread(rxAudioThread); - rxAudioThread->start(); + rxAudioThread = new QThread(this) + + rxaudio->moveToThread(rxAudioThread); + rxAudioThread->start(QThread::TimeCriticalPriority); connect(this, SIGNAL(setupRxAudio(audioSetup)), rxaudio, SLOT(init(audioSetup))); connect(rxAudioThread, SIGNAL(finished()), rxaudio, SLOT(deleteLater())); From 7c9610283c29513659557b55eae66ab31248d3dc Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Tue, 24 Aug 2021 09:34:40 +0100 Subject: [PATCH 09/13] Replace missing ; --- udpserver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/udpserver.cpp b/udpserver.cpp index a23f28e..a23eef2 100644 --- a/udpserver.cpp +++ b/udpserver.cpp @@ -403,7 +403,7 @@ void udpServer::controlReceived() rxaudio = new audioHandler(); - rxAudioThread = new QThread(this) + rxAudioThread = new QThread(this); rxaudio->moveToThread(rxAudioThread); rxAudioThread->start(QThread::TimeCriticalPriority); From 71c12b508fceabd88131db754e017f8728ce0dc6 Mon Sep 17 00:00:00 2001 From: Davide Gerhard Date: Wed, 25 Aug 2021 19:05:52 +0200 Subject: [PATCH 10/13] pttyhandler: add errno.h --- pttyhandler.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/pttyhandler.cpp b/pttyhandler.cpp index b671aa0..c958827 100644 --- a/pttyhandler.cpp +++ b/pttyhandler.cpp @@ -8,6 +8,7 @@ #include #include #include +#include #endif // Copyright 2017-2021 Elliott H. Liggett & Phil Taylor From 8d96c97f3ac898518f4f5d2a3440c0a725a8295a Mon Sep 17 00:00:00 2001 From: Roeland Jansen Date: Fri, 27 Aug 2021 11:45:45 +0200 Subject: [PATCH 11/13] bumped version to 1.2 alpha for testing --- aboutbox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aboutbox.cpp b/aboutbox.cpp index fa8a6c1..39d0be7 100644 --- a/aboutbox.cpp +++ b/aboutbox.cpp @@ -12,7 +12,7 @@ aboutbox::aboutbox(QWidget *parent) : ui->logoBtn->setIcon(QIcon(":resources/wfview.png")); ui->logoBtn->setStyleSheet("Text-align:left"); - ui->topText->setText("wfview version 1.1"); + ui->topText->setText("wfview version 1.2a"); QString head = QString(""); QString copyright = QString("Copyright 2017-2021 Elliott H. Liggett, W6EL. All rights reserved. wfview source code is licensed under the GNU GPLv3."); From 3a9f9db4a3968dc3d45b04ea234933fc5e2861fa Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Fri, 27 Aug 2021 18:06:09 +0100 Subject: [PATCH 12/13] Add saving of meter2 state --- wfmain.cpp | 24 ++++++++++++++++++++---- wfmain.h | 2 ++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index 2f94485..95496e7 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -685,6 +685,8 @@ void wfmain::setupMainUI() ui->meter2Widget->hide(); ui->meter2selectionCombo->show(); + ui->meter2selectionCombo->setCurrentIndex((int)prefs.meter2Type); + ui->secondaryMeterSelectionLabel->show(); @@ -1236,6 +1238,7 @@ void wfmain::setDefPrefs() defPrefs.wftheme = static_cast(QCPColorGradient::gpJet); defPrefs.confirmExit = true; defPrefs.confirmPowerOff = true; + defPrefs.meter2Type = meterNone; udpDefPrefs.ipAddress = QString(""); udpDefPrefs.controlLANPort = 50001; @@ -1269,7 +1272,7 @@ void wfmain::loadSettings() setWindowState(Qt::WindowActive); // Works around QT bug to returns window+keyboard focus. prefs.confirmExit = settings->value("ConfirmExit", defPrefs.confirmExit).toBool(); prefs.confirmPowerOff = settings->value("ConfirmPowerOff", defPrefs.confirmPowerOff).toBool(); - + prefs.meter2Type = static_cast(settings->value("Meter2Type", defPrefs.meter2Type).toInt()); settings->endGroup(); // Load color schemes: @@ -1570,6 +1573,7 @@ void wfmain::saveSettings() settings->setValue("WFLength", prefs.wflength); settings->setValue("ConfirmExit", prefs.confirmExit); settings->setValue("ConfirmPowerOff", prefs.confirmPowerOff); + settings->setValue("Meter2Type", (int)prefs.meter2Type); settings->endGroup(); // Radio and Comms: C-IV addr, port to use @@ -3003,6 +3007,16 @@ void wfmain::receiveRigID(rigCapabilities rigCaps) // recalculate command timing now that we know the rig better: calculateTimingParameters(); initPeriodicCommands(); + + for (int i = 0; i < ui->meter2selectionCombo->count(); i++) + { + if (static_cast(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type) + { + qInfo() << "*******setting meter id" << i; + ui->meter2selectionCombo->setCurrentIndex(i); + on_meter2selectionCombo_activated(i); + } + } } } @@ -3218,9 +3232,9 @@ void wfmain::receiveSpectrumData(QByteArray spectrum, double startFreq, double e void wfmain::receiveSpectrumMode(spectrumMode spectMode) { - for(int i=0; i < ui->spectrumModeCombo->count(); i++) + for (int i = 0; i < ui->spectrumModeCombo->count(); i++) { - if(static_cast(ui->spectrumModeCombo->itemData(i).toInt()) == spectMode) + if (static_cast(ui->spectrumModeCombo->itemData(i).toInt()) == spectMode) { ui->spectrumModeCombo->blockSignals(true); ui->spectrumModeCombo->setCurrentIndex(i); @@ -5241,7 +5255,7 @@ void wfmain::on_meter2selectionCombo_activated(int index) meterKind oldMeterType; newMeterType = static_cast(ui->meter2selectionCombo->currentData().toInt()); oldMeterType = ui->meter2Widget->getMeterType(); - + qInfo() << "*******setting meter type" << newMeterType; if(newMeterType == oldMeterType) return; @@ -5259,6 +5273,8 @@ void wfmain::on_meter2selectionCombo_activated(int index) ui->meter2Widget->setMeterType(newMeterType); insertPeriodicCommandUnique(newCmd); } + prefs.meter2Type = newMeterType; + (void)index; } diff --git a/wfmain.h b/wfmain.h index 934870d..390b161 100644 --- a/wfmain.h +++ b/wfmain.h @@ -477,6 +477,7 @@ private slots: void on_rigctldPortTxt_editingFinished(); + private: Ui::wfmain *ui; void closeEvent(QCloseEvent *event); @@ -703,6 +704,7 @@ private: int wftheme; bool confirmExit; bool confirmPowerOff; + meterKind meter2Type; // plot scheme } prefs; From 97e5ff9ff8d9e9c411391c937d66b945062de144 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Fri, 27 Aug 2021 18:07:45 +0100 Subject: [PATCH 13/13] Remove unneeded debugging --- wfmain.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index 95496e7..e8455af 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -3008,13 +3008,15 @@ void wfmain::receiveRigID(rigCapabilities rigCaps) calculateTimingParameters(); initPeriodicCommands(); + // Set the second meter here as I suspect we need to be connected for it to work? for (int i = 0; i < ui->meter2selectionCombo->count(); i++) { if (static_cast(ui->meter2selectionCombo->itemData(i).toInt()) == prefs.meter2Type) { - qInfo() << "*******setting meter id" << i; + // I thought that setCurrentIndex() would call the activated() function for the combobox + // but it doesn't, so call it manually. ui->meter2selectionCombo->setCurrentIndex(i); - on_meter2selectionCombo_activated(i); + on_meter2selectionCombo_activated(i); } } } @@ -5255,7 +5257,6 @@ void wfmain::on_meter2selectionCombo_activated(int index) meterKind oldMeterType; newMeterType = static_cast(ui->meter2selectionCombo->currentData().toInt()); oldMeterType = ui->meter2Widget->getMeterType(); - qInfo() << "*******setting meter type" << newMeterType; if(newMeterType == oldMeterType) return;