From ef30ab50eb1c86eee893488544b1fdfe4c47e5ae Mon Sep 17 00:00:00 2001 From: PianetaRadio <78976006+PianetaRadio@users.noreply.github.com> Date: Fri, 12 May 2023 20:18:45 +0200 Subject: [PATCH] High SWR indicator #37 --- ChangeLog.txt | 1 + mainwindow.cpp | 3 +++ mainwindow.ui | 15 ++++++++++++++- rigdaemon.cpp | 8 +++++++- rigdata.h | 1 + 5 files changed, 26 insertions(+), 2 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 82a4e83..af4ae60 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -3,6 +3,7 @@ CatRadio (+ New, * Updated, - Removed) 1.4.0 - 2023-mm-dd + + High SWR indicator + Meter peak hold indicator + Debug mode * Bug fix: Power status diff --git a/mainwindow.cpp b/mainwindow.cpp index f85733b..11bd71f 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -288,6 +288,7 @@ void MainWindow::guiInit() if (rig_has_get_level(my_rig, RIG_METER_VDD)) ui->comboBox_Meter->addItem("VDD"); rigSet.meter = levelmeterstr (ui->comboBox_Meter->currentText()); setSubMeter(); + ui->label_hiSWR->setVisible(false); //* Attenuator comboBox ui->comboBox_Att->clear(); @@ -586,6 +587,7 @@ void MainWindow::guiUpdate() } ui->progressBar_Smeter->setValue(rigGet.powerMeter.f*100); ui->progressBar_subMeter->setValue(rigGet.subMeter.f); + if (rigGet.hiSWR.f > 2) ui->label_hiSWR->setVisible(true); } else //RIG_PTT_OFF { @@ -598,6 +600,7 @@ void MainWindow::guiUpdate() ui->progressBar_Smeter->setTx(false); ui->progressBar_Smeter->setValue(-54); ui->progressBar_Smeter->resetPeakValue(); + ui->label_hiSWR->setVisible(false); //if (rigSet.meter == RIG_LEVEL_SWR) ui->progressBar_subMeter->setValue(1.0); //else ui->progressBar_subMeter->setValue(0.0); //ui->progressBar_subMeter->resetPeakValue(); diff --git a/mainwindow.ui b/mainwindow.ui index e650fb7..25fcbe0 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -1129,7 +1129,7 @@ - 250 + 240 0 161 61 @@ -1146,6 +1146,19 @@ + + + + 410 + 0 + 63 + 20 + + + + Hi SWR + + diff --git a/rigdaemon.cpp b/rigdaemon.cpp index 2cc8027..40bb62d 100644 --- a/rigdaemon.cpp +++ b/rigdaemon.cpp @@ -149,7 +149,13 @@ void RigDaemon::rigUpdate(RIG *my_rig) if (rigGet.ptt == 1 || rigSet.ptt == 1) { rig_get_level(my_rig, RIG_VFO_CURR, RIG_LEVEL_RFPOWER_METER, &rigGet.powerMeter); - rig_get_level(my_rig, RIG_VFO_CURR, rigSet.meter, &rigGet.subMeter); + if (rigSet.meter != RIG_METER_NONE) rig_get_level(my_rig, RIG_VFO_CURR, rigSet.meter, &rigGet.subMeter); + + if (rig_has_get_level(my_rig, RIG_METER_SWR) && (rigSet.meter != RIG_LEVEL_SWR)) + { + rig_get_level(my_rig, RIG_VFO_CURR, RIG_LEVEL_SWR, &rigGet.hiSWR); + } + else if (rigSet.meter == RIG_LEVEL_SWR) rigGet.hiSWR = rigGet.subMeter; } else { diff --git a/rigdata.h b/rigdata.h index 9479646..7bf9e1b 100644 --- a/rigdata.h +++ b/rigdata.h @@ -51,6 +51,7 @@ typedef struct { value_t sMeter; //Smeter signal strenght value_t powerMeter; //RF power meter value_t subMeter; //secondary meter + value_t hiSWR; //SWR level for Hi SWR indicator unsigned long long meter; //secondary meter type float rfPower; //RF power output level float rfGain; //RF gain rx