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