From 7b640fffb4cbe82417fd1d61d76547ead92ca8c8 Mon Sep 17 00:00:00 2001 From: PianetaRadio <78976006+PianetaRadio@users.noreply.github.com> Date: Mon, 28 Mar 2022 23:37:04 +0200 Subject: [PATCH] Up / Down VFO buttons #9 --- CatRadio.pro.user | 2 +- mainwindow.cpp | 27 ++++++++++++++++++++++----- mainwindow.h | 4 ++++ mainwindow.ui | 26 ++++++++++++++++++++++++++ rigdaemon.cpp | 32 ++++++++++++++++++++++++++------ rigdata.h | 7 +++---- 6 files changed, 82 insertions(+), 16 deletions(-) diff --git a/CatRadio.pro.user b/CatRadio.pro.user index fa206f4..3b47cac 100644 --- a/CatRadio.pro.user +++ b/CatRadio.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/mainwindow.cpp b/mainwindow.cpp index c8e4ccf..a7ac6e8 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -222,10 +222,10 @@ void MainWindow::guiInit() //* Tone ui->comboBox_toneType->clear(); ui->comboBox_toneType->addItem(""); //None - ui->comboBox_toneType->addItem("1750Hz"); //Burst 1750 Hz - ui->comboBox_toneType->addItem("TONE"); //CTCSS Tx - if (my_rig->caps->set_ctcss_sql) ui->comboBox_toneType->addItem("TSQL"); //CTCSS Tx + Rx squelch - if (my_rig->caps->set_dcs_sql) ui->comboBox_toneType->addItem("DCS"); //DCS + if (rig_has_set_func(my_rig, RIG_FUNC_TBURST)) ui->comboBox_toneType->addItem("1750Hz"); //Burst 1750 Hz + if (rig_has_set_func(my_rig, RIG_FUNC_TONE)) ui->comboBox_toneType->addItem("TONE"); //CTCSS Tx + if (rig_has_set_func(my_rig, RIG_FUNC_TSQL)) ui->comboBox_toneType->addItem("TSQL"); //CTCSS Tx + Rx squelch + if (rig_has_set_func(my_rig, RIG_FUNC_CSQL)) ui->comboBox_toneType->addItem("DCS"); //DCS //check for targetable sub VFO if (my_rig->caps->rig_model != 2) //Hamlib 4.4 has bug for rigctld and targetable_vfo, skip check @@ -589,6 +589,17 @@ void MainWindow::on_pushButton_Fast_toggled(bool checked) else fastDial = 0; } +void MainWindow::on_pushButton_left_clicked() +{ + rigCmd.vfoDown = 1; +} + + +void MainWindow::on_pushButton_right_clicked() +{ + rigCmd.vfoUp = 1; +} + void MainWindow::on_pushButton_Tune_clicked() { rigCmd.tune = 1; @@ -887,7 +898,13 @@ void MainWindow::on_comboBox_Meter_activated(int index) void MainWindow::on_comboBox_toneType_activated(int index) { - rigSet.toneType = index; + QString toneType = ui->comboBox_toneType->itemText(index); + if (toneType == "1750Hz") rigSet.toneType = 1; + else if (toneType == "TONE") rigSet.toneType = 2; + else if (toneType == "TSQL") rigSet.toneType = 3; + else if (toneType == "DCS") rigSet.toneType = 4; + else rigSet.toneType = 0; + rigCmd.toneList = 1; //update tone list rigCmd.tone = 1; } diff --git a/mainwindow.h b/mainwindow.h index 1cf4a1d..cf77cdf 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -158,6 +158,10 @@ private slots: void on_spinBox_RPToffset_valueChanged(int arg1); + void on_pushButton_left_clicked(); + + void on_pushButton_right_clicked(); + private: Ui::MainWindow *ui; QTimer *timer; diff --git a/mainwindow.ui b/mainwindow.ui index 1efa003..52bdff7 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -1058,6 +1058,32 @@ Sub + + + + 140 + 120 + 21 + 25 + + + + < + + + + + + 160 + 120 + 21 + 25 + + + + > + + diff --git a/rigdaemon.cpp b/rigdaemon.cpp index 754b056..6f026f3 100644 --- a/rigdaemon.cpp +++ b/rigdaemon.cpp @@ -252,6 +252,20 @@ void RigDaemon::rigUpdate() rigCmd.vfoCopy = 0; } + //* VFO Down + if (rigCmd.vfoDown) + { + rig_vfo_op(my_rig, RIG_VFO_CURR, RIG_OP_DOWN); + rigCmd.vfoDown = 0; + } + + //* VFO Up + if (rigCmd.vfoUp) + { + rig_vfo_op(my_rig, RIG_VFO_CURR, RIG_OP_UP); + rigCmd.vfoUp = 0; + } + //* Band Up if (rigCmd.bandUp) { @@ -290,9 +304,9 @@ void RigDaemon::rigUpdate() } //* Tune - if (rigCmd.tune && (my_rig->caps->vfo_ops & RIG_OP_TUNE)) + if (rigCmd.tune) { - rig_vfo_op(my_rig, RIG_VFO_CURR, RIG_OP_TUNE); + if (my_rig->caps->vfo_ops & RIG_OP_TUNE) rig_vfo_op(my_rig, RIG_VFO_CURR, RIG_OP_TUNE); rigCmd.tune = 0; } @@ -426,15 +440,21 @@ void RigDaemon::rigUpdate() //* Repeater shift if (rigCmd.rptShift) { - retcode = rig_set_rptr_shift(my_rig, RIG_VFO_CURR, rigSet.rptShift); - if (retcode == RIG_OK) rigGet.rptShift = rigSet.rptShift; + if (my_rig->caps->set_rptr_shift) + { + retcode = rig_set_rptr_shift(my_rig, RIG_VFO_CURR, rigSet.rptShift); + if (retcode == RIG_OK) rigGet.rptShift = rigSet.rptShift; + } rigCmd.rptShift = 0; } //* Repeater offset if (rigCmd.rptOffset) { - retcode = rig_set_rptr_offs(my_rig, RIG_VFO_CURR, rigSet.rptOffset); - if (retcode == RIG_OK) rigGet.rptOffset = rigSet.rptOffset; + if (my_rig->caps->set_rptr_offs) + { + retcode = rig_set_rptr_offs(my_rig, RIG_VFO_CURR, rigSet.rptOffset); + if (retcode == RIG_OK) rigGet.rptOffset = rigSet.rptOffset; + } rigCmd.rptOffset = 0; } //* Tone diff --git a/rigdata.h b/rigdata.h index e33cee9..a553a6a 100644 --- a/rigdata.h +++ b/rigdata.h @@ -82,8 +82,8 @@ typedef struct { int bwidthList; int vfo; int split; - int vfoXchange; - int vfoCopy; + int vfoXchange, vfoCopy; + int vfoDown, vfoUp; int ptt; int rfPower; int rfGain; @@ -95,8 +95,7 @@ typedef struct { int ant; int tuner; int tune; - int bandUp; - int bandDown; + int bandUp, bandDown; int bandChange; int bkin; int wpm;