From b57e4ebd769bf551372e0432da02ea8bcbb13a82 Mon Sep 17 00:00:00 2001 From: Roeland Jansen Date: Tue, 1 Nov 2022 12:16:55 +0100 Subject: [PATCH 1/8] added libs for suse builds; it also builds on leap 15.5 --- INSTALL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL.md b/INSTALL.md index 4a87066..fd304f8 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -78,7 +78,7 @@ install wfview on suse 15.3 & up, sles 15.x or tumbleweed; this was done on a cl we need to add packages to be able to build the stuff. - sudo zypper in --type pattern devel_basis -- sudo zypper in libQt5Widgets-devel libqt5-qtbase-common-devel libqt5-qtserialport-devel libQt5SerialPort5 qcustomplot-devel libqcustomplot2 libQt5PrintSupport-devel libqt5-qtmultimedia-devel lv2-devel libopus-devel eigen3-devel libQt5Xml-devel +- sudo zypper in libQt5Widgets-devel libqt5-qtbase-common-devel libqt5-qtserialport-devel libQt5SerialPort5 qcustomplot-devel libqcustomplot2 libQt5PrintSupport-devel libqt5-qtmultimedia-devel lv2-devel libopus-devel eigen3-devel libQt5Xml-devel portaudio-devel rtaudio-devel optional (mainly for development specifics): get and install qt5: From 9da6f770780d578c3f742990e00e53e3ec817ac3 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 13:36:13 -0800 Subject: [PATCH 2/8] Fixed issue causing the current color preset to not be load (previously preset zero was always used). --- wfmain.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index e49497b..9a3860b 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -99,8 +99,6 @@ wfmain::wfmain(const QString settingsFile, const QString logFile, bool debugMode qDebug(logSystem()) << "Running setUIToPrefs()"; setUIToPrefs(); - loadColorPresetToUIandPlots(0); - qDebug(logSystem()) << "Running setInititalTiming()"; setInitialTiming(); @@ -1215,6 +1213,8 @@ void wfmain::setUIToPrefs() ui->colorPresetCombo->setItemText(pn, *p.presetName); } + ui->colorPresetCombo->setCurrentIndex(prefs.currentColorPresetNumber); + ui->wfthemeCombo->setCurrentIndex(ui->wfthemeCombo->findData(prefs.wftheme)); colorMap->setGradient(static_cast(prefs.wftheme)); @@ -1480,7 +1480,7 @@ void wfmain::loadSettings() // Load in the color presets. The default values are already loaded. settings->beginGroup("ColorPresets"); - settings->value("currentColorPresetNumber", prefs.currentColorPresetNumber).toInt(); + prefs.currentColorPresetNumber = settings->value("currentColorPresetNumber", defPrefs.currentColorPresetNumber).toInt(); if(prefs.currentColorPresetNumber > numColorPresetsTotal-1) prefs.currentColorPresetNumber = 0; From a5ac42fe57bc1860614ffa5d655fc2b02425de5b Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 16:59:10 -0800 Subject: [PATCH 3/8] Fixed broken RTS preference. Added preliminary (and untested) support for the IC-703, 737, 738, and 756. --- rigcommander.cpp | 87 ++++++++++++++++++++++++++++++++++++++++++++++- rigidentities.cpp | 5 +++ rigidentities.h | 4 +++ wfmain.cpp | 5 +-- 4 files changed, 96 insertions(+), 5 deletions(-) diff --git a/rigcommander.cpp b/rigcommander.cpp index 1d2a30e..80c3e53 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -3486,6 +3486,27 @@ void rigCommander::determineRigCaps() createMode(modePSK_R, 0x13, "PSK-R")}); rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95"); break; + case model703: + rigCaps.modelName = QString("IC-703"); + rigCaps.rigctlModel = 3055; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = true; + rigCaps.hasPTTCommand = false; + rigCaps.useRTSforPTT = true; + rigCaps.hasDataModes = false; + rigCaps.attenuators.push_back('\x20'); + rigCaps.bands = standardHF; + rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); + rigCaps.bands.push_back(bandGen); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM")); + rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); + break; case model706: rigCaps.modelName = QString("IC-706"); rigCaps.rigctlModel = 3009; @@ -3555,6 +3576,50 @@ void rigCommander::determineRigCaps() createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), }; break; + case model737: + rigCaps.modelName = QString("IC-737"); + rigCaps.rigctlModel = 3021; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = false; + rigCaps.hasPTTCommand = false; + rigCaps.useRTSforPTT = true; + rigCaps.hasDataModes = false; + rigCaps.hasIFShift = true; // untested + rigCaps.attenuators.push_back('\x20'); + rigCaps.preamps.push_back('\x01'); + rigCaps.bands = standardHF; + rigCaps.modes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"), + createMode(modeAM, 0x02, "AM"), createMode(modeFM, 0x05, "FM"), + createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), + }; + break; + case model738: + rigCaps.modelName = QString("IC-738"); + rigCaps.rigctlModel = 3022; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = false; + rigCaps.hasPTTCommand = false; + rigCaps.useRTSforPTT = true; + rigCaps.hasDataModes = false; + rigCaps.hasIFShift = true; // untested + rigCaps.attenuators.push_back('\x20'); + rigCaps.preamps.push_back('\x01'); + rigCaps.bands = standardHF; + rigCaps.modes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"), + createMode(modeAM, 0x02, "AM"), createMode(modeFM, 0x05, "FM"), + createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), + }; + break; case model746: rigCaps.modelName = QString("IC-746"); rigCaps.rigctlModel = 3023; @@ -3582,7 +3647,27 @@ void rigCommander::determineRigCaps() rigCaps.modes = commonModes; rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); break; - + case model756: + rigCaps.modelName = QString("IC-756"); + rigCaps.rigctlModel = 3026; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = true; + rigCaps.hasTBPF = true; + rigCaps.preamps.push_back('\x01'); + rigCaps.preamps.push_back('\x02'); + rigCaps.attenuators.insert(rigCaps.attenuators.end(),{ '\x06' , '\x12', '\x18'}); + rigCaps.antennas = {0x00, 0x01}; + rigCaps.bands = standardHF; + rigCaps.bands.push_back(bandGen); + rigCaps.bsr[bandGen] = 0x11; + rigCaps.modes = commonModes; + rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); + break; case model756pro: rigCaps.modelName = QString("IC-756 Pro"); rigCaps.rigctlModel = 3027; diff --git a/rigidentities.cpp b/rigidentities.cpp index 62ea5aa..ab79ccc 100644 --- a/rigidentities.cpp +++ b/rigidentities.cpp @@ -8,6 +8,9 @@ model_kind determineRadioModel(unsigned char rigID) model_kind rig; + rig = (model_kind)rigID; + + /* switch(rigID) { case model7100: @@ -81,6 +84,8 @@ model_kind determineRadioModel(unsigned char rigID) break; } + */ + return rig; } diff --git a/rigidentities.h b/rigidentities.h index d4c4209..5a8b53a 100644 --- a/rigidentities.h +++ b/rigidentities.h @@ -27,11 +27,15 @@ enum model_kind { model7410 = 0x80, model7850 = 0x8E, model9700 = 0xA2, + model703 = 0x68, model705 = 0xA4, model706 = 0x58, model718 = 0x5E, model736 = 0x40, + model737 = 0x3C, + model738 = 0x44, model746 = 0x56, + model756 = 0x50, model756pro = 0x5C, model756proii = 0x64, model756proiii = 0x6E, diff --git a/wfmain.cpp b/wfmain.cpp index 9a3860b..2288c48 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -3680,13 +3680,10 @@ void wfmain::receiveRigID(rigCapabilities rigCaps) setBandButtons(); - ui->tuneEnableChk->setEnabled(rigCaps.hasATU); ui->tuneNowBtn->setEnabled(rigCaps.hasATU); - ui->useRTSforPTTchk->blockSignals(true); - ui->useRTSforPTTchk->setChecked(rigCaps.useRTSforPTT); - ui->useRTSforPTTchk->blockSignals(false); + ui->useRTSforPTTchk->setChecked(prefs.forceRTSasPTT); ui->audioSystemCombo->setEnabled(false); ui->audioSystemServerCombo->setEnabled(false); From 45244c7c640b50d7e03055107df442f8fb12172d Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 20:44:32 -0800 Subject: [PATCH 4/8] Fixed annoying indentation issue. --- rigcommander.cpp | 87 +++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 45 deletions(-) diff --git a/rigcommander.cpp b/rigcommander.cpp index 80c3e53..84f8e1e 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -3486,27 +3486,27 @@ void rigCommander::determineRigCaps() createMode(modePSK_R, 0x13, "PSK-R")}); rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95"); break; - case model703: - rigCaps.modelName = QString("IC-703"); - rigCaps.rigctlModel = 3055; - rigCaps.hasSpectrum = false; - rigCaps.inputs.clear(); - rigCaps.hasLan = false; - rigCaps.hasEthernet = false; - rigCaps.hasWiFi = false; - rigCaps.hasFDcomms = false; - rigCaps.hasATU = true; - rigCaps.hasPTTCommand = false; - rigCaps.useRTSforPTT = true; - rigCaps.hasDataModes = false; - rigCaps.attenuators.push_back('\x20'); - rigCaps.bands = standardHF; - rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); - rigCaps.bands.push_back(bandGen); - rigCaps.modes = commonModes; - rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM")); - rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); - break; + case model703: + rigCaps.modelName = QString("IC-703"); + rigCaps.rigctlModel = 3055; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = true; + rigCaps.hasPTTCommand = false; + rigCaps.useRTSforPTT = true; + rigCaps.hasDataModes = false; + rigCaps.attenuators.push_back('\x20'); + rigCaps.bands = standardHF; + rigCaps.bands.insert(rigCaps.bands.end(), standardVU.begin(), standardVU.end()); + rigCaps.bands.push_back(bandGen); + rigCaps.modes = commonModes; + rigCaps.modes.insert(rigCaps.modes.end(), createMode(modeWFM, 0x06, "WFM")); + rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00"); + break; case model706: rigCaps.modelName = QString("IC-706"); rigCaps.rigctlModel = 3009; @@ -3567,7 +3567,6 @@ void rigCommander::determineRigCaps() rigCaps.hasPTTCommand = false; rigCaps.useRTSforPTT = true; rigCaps.hasDataModes = false; - rigCaps.hasIFShift = true; // untested rigCaps.attenuators.push_back('\x20'); rigCaps.preamps.push_back('\x01'); rigCaps.bands = standardHF; @@ -3576,28 +3575,27 @@ void rigCommander::determineRigCaps() createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), }; break; - case model737: - rigCaps.modelName = QString("IC-737"); - rigCaps.rigctlModel = 3021; - rigCaps.hasSpectrum = false; - rigCaps.inputs.clear(); - rigCaps.hasLan = false; - rigCaps.hasEthernet = false; - rigCaps.hasWiFi = false; - rigCaps.hasFDcomms = false; - rigCaps.hasATU = false; - rigCaps.hasPTTCommand = false; - rigCaps.useRTSforPTT = true; - rigCaps.hasDataModes = false; - rigCaps.hasIFShift = true; // untested - rigCaps.attenuators.push_back('\x20'); - rigCaps.preamps.push_back('\x01'); - rigCaps.bands = standardHF; - rigCaps.modes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"), - createMode(modeAM, 0x02, "AM"), createMode(modeFM, 0x05, "FM"), - createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), - }; - break; + case model737: + rigCaps.modelName = QString("IC-737"); + rigCaps.rigctlModel = 3021; + rigCaps.hasSpectrum = false; + rigCaps.inputs.clear(); + rigCaps.hasLan = false; + rigCaps.hasEthernet = false; + rigCaps.hasWiFi = false; + rigCaps.hasFDcomms = false; + rigCaps.hasATU = false; + rigCaps.hasPTTCommand = false; + rigCaps.useRTSforPTT = true; + rigCaps.hasDataModes = false; + rigCaps.attenuators.push_back('\x20'); + rigCaps.preamps.push_back('\x01'); + rigCaps.bands = standardHF; + rigCaps.modes = { createMode(modeLSB, 0x00, "LSB"), createMode(modeUSB, 0x01, "USB"), + createMode(modeAM, 0x02, "AM"), createMode(modeFM, 0x05, "FM"), + createMode(modeCW, 0x03, "CW"), createMode(modeCW_R, 0x07, "CW-R"), + }; + break; case model738: rigCaps.modelName = QString("IC-738"); rigCaps.rigctlModel = 3022; @@ -3611,7 +3609,6 @@ void rigCommander::determineRigCaps() rigCaps.hasPTTCommand = false; rigCaps.useRTSforPTT = true; rigCaps.hasDataModes = false; - rigCaps.hasIFShift = true; // untested rigCaps.attenuators.push_back('\x20'); rigCaps.preamps.push_back('\x01'); rigCaps.bands = standardHF; From bb5ae0323527e7d5f398d95b4113b78e1101d16e Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 21:56:36 -0800 Subject: [PATCH 5/8] Cleaned up rigidentities --- rigidentities.cpp | 82 ----------------------------------------------- 1 file changed, 82 deletions(-) diff --git a/rigidentities.cpp b/rigidentities.cpp index ab79ccc..1950ab1 100644 --- a/rigidentities.cpp +++ b/rigidentities.cpp @@ -7,89 +7,7 @@ model_kind determineRadioModel(unsigned char rigID) { model_kind rig; - rig = (model_kind)rigID; - /* - switch(rigID) - { - case model7100: - rig = model7100; - break; - case model7200: - rig = model7200; - break; - case model7300: - rig = model7300; - break; - case modelR8600: - rig = modelR8600; - break; - case model7000: - rig = model7000; - break; - case model7410: - rig = model7410; - break; - case model7600: - rig = model7600; - break; - case model7610: - rig = model7610; - break; - case model7700: - rig = model7700; - break; - case model7800: - rig = model7800; - break; - case model7850: - rig = model7850; - break; - case model9700: - rig = model9700; - break; - case model706: - rig = model706; - break; - case model705: - rig = model705; - break; - case model718: - rig = model718; - break; - case model736: - rig = model736; - break; - case model746: - rig = model746; - break; - case model756pro: - rig = model756pro; - break; - case model756proii: - rig = model756proii; - break; - case model756proiii: - rig = model756proiii; - break; - case model910h: - rig = model910h; - break; - case model9100: - rig = model9100; - break; - default: - rig = modelUnknown; - break; - } - - */ - return rig; } - - - - - From 9a63a6c4c439d46d089e8ddc74caa0bb64f28e22 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 22:45:29 -0800 Subject: [PATCH 6/8] Fixed minor typo in debug text. --- rigcommander.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rigcommander.cpp b/rigcommander.cpp index 84f8e1e..6d537e9 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -4394,7 +4394,7 @@ void rigCommander::setRigID(unsigned char rigID) // It can be used for radios without Rig ID commands, // or to force a specific radio model - qInfo(logRig()) << "Sending rig ID to: (int)" << (int)rigID; + qInfo(logRig()) << "Setting rig ID to: (int)" << (int)rigID; lookingForRig = true; From e1e9167622d98b78224f82f19cc4eb9e90b5973a Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Wed, 23 Nov 2022 23:26:11 -0800 Subject: [PATCH 7/8] Fixed unusual set of conditions in which manual CI-V address would fail to identify the connected radio. The fix is to continually poll the RigID until one is received. Radios that don't support RigID will need to check both boxes in wfview (use rig as model number) to manually ID the radio. --- wfmain.cpp | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/wfmain.cpp b/wfmain.cpp index 2288c48..29cf272 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -632,10 +632,13 @@ void wfmain::receiveCommReady() if(prefs.CIVisRadioModel) { qInfo(logSystem()) << "Skipping Rig ID query, using user-supplied model from CI-V address: " << prefs.radioCIVAddr; + emit setCIVAddr(prefs.radioCIVAddr); emit setRigID(prefs.radioCIVAddr); } else { + emit setCIVAddr(prefs.radioCIVAddr); emit getRigID(); - getInitialRigState(); + issueDelayedCommand(cmdGetRigID); + delayedCommand->start(); } } } @@ -3100,8 +3103,12 @@ void wfmain::doCmd(cmds cmd) //qInfo(logSystem()) << "NOOP"; break; case cmdGetRigID: - emit getRigID(); - break; + if(!haveRigCaps) + { + emit getRigID(); + issueDelayedCommand(cmdGetRigID); + } + break; case cmdGetRigCIV: // if(!know rig civ already) if(!haveRigCaps) @@ -6753,28 +6760,7 @@ void wfmain::on_underlayAverageBuffer_toggled(bool checked) void wfmain::on_debugBtn_clicked() { qInfo(logSystem()) << "Debug button pressed."; - // issueDelayedCommand(cmdGetRigID); - //emit getRigCIV(); - //trxadj->show(); - //setRadioTimeDatePrep(); - //wf->setInteraction(QCP::iRangeZoom, true); - //wf->setInteraction(QCP::iRangeDrag, true); - plot->yAxis->setRange(QCPRange(plotFloor, plotCeiling)); - colorMap->setDataRange(QCPRange(wfFloor, wfCeiling)); - -// bool ok; -// int height = QInputDialog::getInt(this, "wfview window fixed height", "number: ", 350, 1, 500, 1, &ok ); - -// this->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); -// this->setMaximumSize(QSize(1025,height)); -// this->setMinimumSize(QSize(1025,height)); -// //this->setMaximumSize(QSize(929, 270)); -// //this->setMinimumSize(QSize(929, 270)); - -// resize(minimumSize()); -// adjustSize(); // main window -// adjustSize(); - + emit getRigID(); } // ---------- color helper functions: ---------- // From afcf087a70ea2fa224294b0bc170271bc109e1d6 Mon Sep 17 00:00:00 2001 From: Elliott Liggett Date: Thu, 24 Nov 2022 11:43:27 -0800 Subject: [PATCH 8/8] Fixed color preset zero issue. --- wfmain.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/wfmain.cpp b/wfmain.cpp index 29cf272..8a894a9 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -1217,6 +1217,7 @@ void wfmain::setUIToPrefs() } ui->colorPresetCombo->setCurrentIndex(prefs.currentColorPresetNumber); + loadColorPresetToUIandPlots(prefs.currentColorPresetNumber); ui->wfthemeCombo->setCurrentIndex(ui->wfthemeCombo->findData(prefs.wftheme)); colorMap->setGradient(static_cast(prefs.wftheme));