mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-28 23:28:49 -05:00
This is test code!!
I have changed the declarations of the Rig class functions we use: open() setConf() getFreq() setFreq() setPTT() close() ... so that each one returns the (negative) error code returned by hamlib. These functions no longer throw exceptions. Initial tests seem to show things working well. I have found one condition that causes a crash. The rig is initially opened and is running OK (in this case, with the Polling interval set to 1 s). Then the radio is turned off. The next call to getFreq() never returns. Probably we need to set a timeout limit? The code is kinda on the quick-and-dirty side. Improvements will be welcom! git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3246 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
98d4ba6a98
commit
b0bfd5ffea
65
devsetup.cpp
65
devsetup.cpp
@ -218,9 +218,6 @@ void DevSetup::initDlg()
|
|||||||
ui.f14->setText(m_dFreq[13]);
|
ui.f14->setText(m_dFreq[13]);
|
||||||
ui.f15->setText(m_dFreq[14]);
|
ui.f15->setText(m_dFreq[14]);
|
||||||
ui.f16->setText(m_dFreq[15]);
|
ui.f16->setText(m_dFreq[15]);
|
||||||
|
|
||||||
qDebug() << "A" << m_poll;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------- accept()
|
//------------------------------------------------------- accept()
|
||||||
@ -408,6 +405,8 @@ void DevSetup::on_cbID73_toggled(bool checked)
|
|||||||
|
|
||||||
void DevSetup::on_testCATButton_clicked()
|
void DevSetup::on_testCATButton_clicked()
|
||||||
{
|
{
|
||||||
|
QString t;
|
||||||
|
int ret;
|
||||||
|
|
||||||
if(!m_catEnabled) return;
|
if(!m_catEnabled) return;
|
||||||
if(m_bRigOpen) {
|
if(m_bRigOpen) {
|
||||||
@ -416,36 +415,44 @@ void DevSetup::on_testCATButton_clicked()
|
|||||||
m_bRigOpen=false;
|
m_bRigOpen=false;
|
||||||
}
|
}
|
||||||
rig = new Rig(m_rig);
|
rig = new Rig(m_rig);
|
||||||
try {
|
rig->setConf("rig_pathname", m_catPort.toAscii().data());
|
||||||
rig->setConf("rig_pathname", m_catPort.toAscii().data());
|
char buf[80];
|
||||||
char buf[80];
|
sprintf(buf,"%d",m_serialRate);
|
||||||
sprintf(buf,"%d",m_serialRate);
|
rig->setConf("serial_speed",buf);
|
||||||
rig->setConf("serial_speed",buf);
|
sprintf(buf,"%d",m_dataBits);
|
||||||
sprintf(buf,"%d",m_dataBits);
|
rig->setConf("data_bits",buf);
|
||||||
rig->setConf("data_bits",buf);
|
sprintf(buf,"%d",m_stopBits);
|
||||||
sprintf(buf,"%d",m_stopBits);
|
rig->setConf("stop_bits",buf);
|
||||||
rig->setConf("stop_bits",buf);
|
rig->setConf("serial_handshake",m_handshake.toAscii().data());
|
||||||
rig->setConf("serial_handshake",m_handshake.toAscii().data());
|
|
||||||
if(m_bDTRoff) {
|
if(m_bDTRoff) {
|
||||||
rig->setConf("rts_state","OFF");
|
rig->setConf("rts_state","OFF");
|
||||||
rig->setConf("dtr_state","OFF");
|
rig->setConf("dtr_state","OFF");
|
||||||
}
|
|
||||||
//qDebug() << "B6";
|
|
||||||
rig->open();
|
|
||||||
//rig->getVFO();
|
|
||||||
//qDebug() << "B7" << rig->getVFO();
|
|
||||||
m_bRigOpen=true;
|
|
||||||
}
|
}
|
||||||
catch (const RigException &Ex) {
|
|
||||||
// qDebug() << "B8";
|
ret=rig->open();
|
||||||
m_bRigOpen=false;
|
if(ret==RIG_OK) {
|
||||||
msgBox("Failed to open rig (devsetup)");
|
m_bRigOpen=true;
|
||||||
|
} else {
|
||||||
|
t="Open rig failed";
|
||||||
|
msgBox(t);
|
||||||
|
m_catEnabled=false;
|
||||||
|
ui.cbEnableCAT->setChecked(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// qDebug() << "B9";
|
|
||||||
double fMHz=rig->getFreq(RIG_VFO_CURR)/1000000.0;
|
double fMHz=rig->getFreq(RIG_VFO_CURR)/1000000.0;
|
||||||
QString t;
|
if(fMHz>0.0) {
|
||||||
t.sprintf("Rig control working.\nDial Frequency: %.6f",fMHz);
|
t.sprintf("Rig control appears to be working.\nDial Frequency: %.6f MHz",
|
||||||
|
fMHz);
|
||||||
|
} else {
|
||||||
|
t.sprintf("Rig control error %d\nFailed to read frequency.",
|
||||||
|
int(1000000.0*fMHz));
|
||||||
|
if(m_poll>0) {
|
||||||
|
m_catEnabled=false;
|
||||||
|
ui.cbEnableCAT->setChecked(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
msgBox(t);
|
msgBox(t);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include "ui_devsetup.h"
|
#include "ui_devsetup.h"
|
||||||
#include <hamlib/rigclass.h>
|
#include "rigclass.h"
|
||||||
|
|
||||||
class DevSetup : public QDialog
|
class DevSetup : public QDialog
|
||||||
{
|
{
|
||||||
|
@ -1050,7 +1050,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="label_47">
|
<widget class="QLabel" name="label_47">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
@ -1062,7 +1062,7 @@
|
|||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Polling interval:</string>
|
<string>Polling interval (s):</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
@ -206,3 +206,8 @@ int ptt(int nport, int ntx, int* iptt, int* nopen)
|
|||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int hamlibError(int retcode)
|
||||||
|
{
|
||||||
|
qDebug() << "Hamlib error" << retcode;
|
||||||
|
}
|
||||||
|
120
mainwindow.cpp
120
mainwindow.cpp
@ -179,6 +179,7 @@ MainWindow::MainWindow(QSharedMemory *shdmem, QWidget *parent) :
|
|||||||
m_bRigOpen=false;
|
m_bRigOpen=false;
|
||||||
m_secBandChanged=0;
|
m_secBandChanged=0;
|
||||||
m_bMultipleOK=false;
|
m_bMultipleOK=false;
|
||||||
|
m_dontReadFreq=false;
|
||||||
decodeBusy(false);
|
decodeBusy(false);
|
||||||
|
|
||||||
ui->xThermo->setFillBrush(Qt::green);
|
ui->xThermo->setFillBrush(Qt::green);
|
||||||
@ -866,7 +867,7 @@ void MainWindow::dialFreqChanged2(double f)
|
|||||||
t.sprintf("%.6f",m_dialFreq);
|
t.sprintf("%.6f",m_dialFreq);
|
||||||
int n=t.length();
|
int n=t.length();
|
||||||
t=t.mid(0,n-3) + " " + t.mid(n-3,3);
|
t=t.mid(0,n-3) + " " + t.mid(n-3,3);
|
||||||
if(qAbs(m_dialFreq-dFreq[m_band])<0.1) {
|
if(qAbs(m_dialFreq-dFreq[m_band])<0.01) {
|
||||||
ui->labDialFreq->setStyleSheet( \
|
ui->labDialFreq->setStyleSheet( \
|
||||||
"QLabel { background-color : black; color : yellow; }");
|
"QLabel { background-color : black; color : yellow; }");
|
||||||
} else {
|
} else {
|
||||||
@ -1466,13 +1467,14 @@ void MainWindow::decodeBusy(bool b) //decodeBusy()
|
|||||||
void MainWindow::guiUpdate()
|
void MainWindow::guiUpdate()
|
||||||
{
|
{
|
||||||
static int iptt0=0;
|
static int iptt0=0;
|
||||||
// static int iptt=0;
|
|
||||||
static bool btxok0=false;
|
static bool btxok0=false;
|
||||||
static int nc0=1;
|
static int nc0=1;
|
||||||
static char message[29];
|
static char message[29];
|
||||||
static char msgsent[29];
|
static char msgsent[29];
|
||||||
static int nsendingsh=0;
|
static int nsendingsh=0;
|
||||||
int khsym=0;
|
int khsym=0;
|
||||||
|
int ret=0;
|
||||||
|
QString rt;
|
||||||
|
|
||||||
double tx1=0.0;
|
double tx1=0.0;
|
||||||
double tx2=1.0 + 85.0*m_nsps/12000.0 + icw[0]*2560.0/48000.0;
|
double tx2=1.0 + 85.0*m_nsps/12000.0 + icw[0]*2560.0/48000.0;
|
||||||
@ -1500,8 +1502,13 @@ void MainWindow::guiUpdate()
|
|||||||
//Raise PTT
|
//Raise PTT
|
||||||
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
||||||
m_iptt=1;
|
m_iptt=1;
|
||||||
if(m_pttData) rig->setPTT(RIG_PTT_ON_DATA, RIG_VFO_CURR);
|
if(m_pttData) ret=rig->setPTT(RIG_PTT_ON_DATA, RIG_VFO_CURR);
|
||||||
if(!m_pttData) rig->setPTT(RIG_PTT_ON_MIC, RIG_VFO_CURR);
|
if(!m_pttData) ret=rig->setPTT(RIG_PTT_ON_MIC, RIG_VFO_CURR);
|
||||||
|
if(ret!=RIG_OK) {
|
||||||
|
rt.sprintf("CAT control PTT failed: %d",ret);
|
||||||
|
msgBox(rt);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR or RTS
|
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR or RTS
|
||||||
ptt(m_pttPort,1,&m_iptt,&m_COMportOpen);
|
ptt(m_pttPort,1,&m_iptt,&m_COMportOpen);
|
||||||
@ -1634,7 +1641,11 @@ void MainWindow::guiUpdate()
|
|||||||
//Lower PTT
|
//Lower PTT
|
||||||
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
||||||
m_iptt=0;
|
m_iptt=0;
|
||||||
rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
|
ret=rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
|
||||||
|
if(ret!=RIG_OK) {
|
||||||
|
rt.sprintf("CAT control PTT failed: %d",ret);
|
||||||
|
msgBox(rt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR-RTS
|
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR-RTS
|
||||||
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
|
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
|
||||||
@ -1698,14 +1709,26 @@ void MainWindow::guiUpdate()
|
|||||||
if(!m_monitoring and !m_diskData) {
|
if(!m_monitoring and !m_diskData) {
|
||||||
ui->xThermo->setValue(0.0);
|
ui->xThermo->setValue(0.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(m_catEnabled and m_poll>0 and (nsec%m_poll)==0) {
|
||||||
|
if(m_dontReadFreq) {
|
||||||
|
m_dontReadFreq=false;
|
||||||
|
} else {
|
||||||
|
double fMHz=rig->getFreq(RIG_VFO_CURR)/1000000.0;
|
||||||
|
if(fMHz<0.0) {
|
||||||
|
rt.sprintf("Rig control error %d\nFailed to read frequency.",
|
||||||
|
int(1000000.0*fMHz));
|
||||||
|
msgBox(rt);
|
||||||
|
m_catEnabled=false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ndiff=1000000.0*(fMHz-m_dialFreq);
|
||||||
|
if(ndiff!=0) dialFreqChanged2(fMHz);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
m_hsym0=khsym;
|
m_hsym0=khsym;
|
||||||
m_sec0=nsec;
|
m_sec0=nsec;
|
||||||
|
|
||||||
if(m_catEnabled) {
|
|
||||||
double fMHz=rig->getFreq(RIG_VFO_CURR)/1000000.0;
|
|
||||||
int ndiff=1000000.0*(fMHz-m_dialFreq);
|
|
||||||
if(ndiff!=0) dialFreqChanged2(fMHz);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iptt0=m_iptt;
|
iptt0=m_iptt;
|
||||||
@ -1761,9 +1784,16 @@ void MainWindow::stopTx()
|
|||||||
|
|
||||||
void MainWindow::stopTx2()
|
void MainWindow::stopTx2()
|
||||||
{
|
{
|
||||||
|
int ret=0;
|
||||||
|
QString rt;
|
||||||
|
|
||||||
//Lower PTT
|
//Lower PTT
|
||||||
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
|
||||||
rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
|
ret=rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
|
||||||
|
if(ret!=RIG_OK) {
|
||||||
|
rt.sprintf("CAT control PTT failed: %d",ret);
|
||||||
|
msgBox(rt);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) {
|
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) {
|
||||||
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
|
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
|
||||||
@ -2534,6 +2564,9 @@ void MainWindow::on_actionLog_dB_reports_to_Comments_triggered(bool checked)
|
|||||||
|
|
||||||
void MainWindow::on_bandComboBox_activated(int index)
|
void MainWindow::on_bandComboBox_activated(int index)
|
||||||
{
|
{
|
||||||
|
int ret=0;
|
||||||
|
QString rt;
|
||||||
|
|
||||||
m_band=index;
|
m_band=index;
|
||||||
QString t=m_dFreq[index];
|
QString t=m_dFreq[index];
|
||||||
m_dialFreq=t.toDouble();
|
m_dialFreq=t.toDouble();
|
||||||
@ -2544,7 +2577,14 @@ void MainWindow::on_bandComboBox_activated(int index)
|
|||||||
if(!m_bRigOpen) {
|
if(!m_bRigOpen) {
|
||||||
rigOpen();
|
rigOpen();
|
||||||
}
|
}
|
||||||
if(m_bRigOpen) rig->setFreq(MHz(m_dialFreq));
|
if(m_bRigOpen) {
|
||||||
|
m_dontReadFreq=true;
|
||||||
|
ret=rig->setFreq(MHz(m_dialFreq));
|
||||||
|
if(ret!=RIG_OK) {
|
||||||
|
rt.sprintf("Set rig frequency failed: %d",ret);
|
||||||
|
msgBox(rt);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
QFile f2("ALL.TXT");
|
QFile f2("ALL.TXT");
|
||||||
f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
f2.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Append);
|
||||||
@ -2719,34 +2759,36 @@ void MainWindow::on_stopTxButton_clicked() //Stop Tx
|
|||||||
|
|
||||||
void MainWindow::rigOpen()
|
void MainWindow::rigOpen()
|
||||||
{
|
{
|
||||||
|
QString t;
|
||||||
|
int ret;
|
||||||
|
|
||||||
rig = new Rig(m_rig);
|
rig = new Rig(m_rig);
|
||||||
try {
|
rig->setConf("rig_pathname", m_catPort.toAscii().data());
|
||||||
rig->setConf("rig_pathname", m_catPort.toAscii().data());
|
char buf[80];
|
||||||
char buf[80];
|
sprintf(buf,"%d",m_serialRate);
|
||||||
sprintf(buf,"%d",m_serialRate);
|
rig->setConf("serial_speed",buf);
|
||||||
rig->setConf("serial_speed",buf);
|
sprintf(buf,"%d",m_dataBits);
|
||||||
sprintf(buf,"%d",m_dataBits);
|
rig->setConf("data_bits",buf);
|
||||||
rig->setConf("data_bits",buf);
|
sprintf(buf,"%d",m_stopBits);
|
||||||
sprintf(buf,"%d",m_stopBits);
|
rig->setConf("stop_bits",buf);
|
||||||
rig->setConf("stop_bits",buf);
|
rig->setConf("serial_handshake",m_handshake.toAscii().data());
|
||||||
rig->setConf("serial_handshake",m_handshake.toAscii().data());
|
if(m_bDTRoff) {
|
||||||
if(m_bDTRoff) {
|
rig->setConf("rts_state","OFF");
|
||||||
rig->setConf("rts_state","OFF");
|
rig->setConf("dtr_state","OFF");
|
||||||
rig->setConf("dtr_state","OFF");
|
|
||||||
}
|
|
||||||
rig->open();
|
|
||||||
pbwidth_t bw;
|
|
||||||
rmode_t rigMode;
|
|
||||||
rigMode=rig->getMode(bw);
|
|
||||||
if(rigMode!=RIG_MODE_USB) rig->setMode(RIG_MODE_USB);
|
|
||||||
m_bRigOpen=true;
|
|
||||||
ui->labRigOpen->setStyleSheet("QLabel{background-color: red}");
|
|
||||||
}
|
}
|
||||||
catch (const RigException &Ex) {
|
|
||||||
m_catEnabled=false;
|
ret=rig->open();
|
||||||
m_bRigOpen=false;
|
if(ret==RIG_OK) {
|
||||||
ui->labRigOpen->setStyleSheet("");
|
m_bRigOpen=true;
|
||||||
delete rig;
|
} else {
|
||||||
|
t="Open rig failed";
|
||||||
|
msgBox(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(m_poll>0) {
|
||||||
|
ui->labRigOpen->setStyleSheet("QLabel{background-color: red}");
|
||||||
|
} else {
|
||||||
|
ui->labRigOpen->setStyleSheet("QLabel{background-color: orange}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#include "soundout.h"
|
#include "soundout.h"
|
||||||
#include "commons.h"
|
#include "commons.h"
|
||||||
#include "psk_reporter.h"
|
#include "psk_reporter.h"
|
||||||
#include <hamlib/rigclass.h>
|
#include "rigclass.h"
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include "PSKReporter.h"
|
#include "PSKReporter.h"
|
||||||
@ -254,6 +254,7 @@ private:
|
|||||||
bool m_bMultipleOK;
|
bool m_bMultipleOK;
|
||||||
bool m_bDTRoff;
|
bool m_bDTRoff;
|
||||||
bool m_pttData;
|
bool m_pttData;
|
||||||
|
bool m_dontReadFreq;
|
||||||
|
|
||||||
char m_decoded[80];
|
char m_decoded[80];
|
||||||
|
|
||||||
|
56
rigclass.cpp
56
rigclass.cpp
@ -35,10 +35,14 @@
|
|||||||
|
|
||||||
#include <hamlib/rig.h>
|
#include <hamlib/rig.h>
|
||||||
#include "rigclass.h"
|
#include "rigclass.h"
|
||||||
|
#include <QDebug>
|
||||||
|
|
||||||
#define CHECK_RIG(cmd) { int _retval = cmd; if (_retval != RIG_OK) \
|
#define CHECK_RIG(cmd) { int _retval = cmd; if (_retval != RIG_OK) \
|
||||||
THROW(new RigException (_retval)); }
|
THROW(new RigException (_retval)); }
|
||||||
|
|
||||||
|
#define CHECK_RIG2(cmd) { int _retval = cmd; if (_retval != RIG_OK) \
|
||||||
|
return _retval; }
|
||||||
|
|
||||||
static int hamlibpp_freq_event(RIG *rig, vfo_t vfo, freq_t freq, rig_ptr_t arg);
|
static int hamlibpp_freq_event(RIG *rig, vfo_t vfo, freq_t freq, rig_ptr_t arg);
|
||||||
|
|
||||||
static int hamlibpp_freq_event(RIG *rig, vfo_t vfo, freq_t freq, rig_ptr_t arg)
|
static int hamlibpp_freq_event(RIG *rig, vfo_t vfo, freq_t freq, rig_ptr_t arg)
|
||||||
@ -68,24 +72,41 @@ Rig::~Rig() {
|
|||||||
caps = NULL;
|
caps = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::open(void) {
|
int Rig::open(void) {
|
||||||
CHECK_RIG( rig_open(theRig) );
|
CHECK_RIG2( rig_open(theRig) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::close(void) {
|
int Rig::close(void) {
|
||||||
CHECK_RIG( rig_close(theRig) );
|
CHECK_RIG2( rig_close(theRig) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::setConf(token_t token, const char *val)
|
int Rig::setConf(const char *name, const char *val)
|
||||||
|
{
|
||||||
|
CHECK_RIG2( rig_set_conf(theRig, tokenLookup(name), val) );
|
||||||
|
}
|
||||||
|
|
||||||
|
int Rig::setPTT(ptt_t ptt, vfo_t vfo)
|
||||||
|
{
|
||||||
|
CHECK_RIG2( rig_set_ptt(theRig, vfo, ptt) );
|
||||||
|
}
|
||||||
|
|
||||||
|
int Rig::setFreq(freq_t freq, vfo_t vfo) {
|
||||||
|
CHECK_RIG2( rig_set_freq(theRig, vfo, freq) );
|
||||||
|
}
|
||||||
|
|
||||||
|
freq_t Rig::getFreq(vfo_t vfo)
|
||||||
|
{
|
||||||
|
freq_t freq;
|
||||||
|
CHECK_RIG2( rig_get_freq(theRig, vfo, &freq) );
|
||||||
|
return freq;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------
|
||||||
|
int Rig::setConf(token_t token, const char *val)
|
||||||
{
|
{
|
||||||
CHECK_RIG( rig_set_conf(theRig, token, val) );
|
CHECK_RIG( rig_set_conf(theRig, token, val) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::setConf(const char *name, const char *val)
|
|
||||||
{
|
|
||||||
CHECK_RIG( rig_set_conf(theRig, tokenLookup(name), val) );
|
|
||||||
}
|
|
||||||
|
|
||||||
void Rig::getConf(token_t token, char *val)
|
void Rig::getConf(token_t token, char *val)
|
||||||
{
|
{
|
||||||
CHECK_RIG( rig_get_conf(theRig, token, val) );
|
CHECK_RIG( rig_get_conf(theRig, token, val) );
|
||||||
@ -101,17 +122,6 @@ token_t Rig::tokenLookup(const char *name)
|
|||||||
return rig_token_lookup(theRig, name);
|
return rig_token_lookup(theRig, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::setFreq(freq_t freq, vfo_t vfo) {
|
|
||||||
CHECK_RIG( rig_set_freq(theRig, vfo, freq) );
|
|
||||||
}
|
|
||||||
|
|
||||||
freq_t Rig::getFreq(vfo_t vfo)
|
|
||||||
{
|
|
||||||
freq_t freq;
|
|
||||||
CHECK_RIG( rig_get_freq(theRig, vfo, &freq) );
|
|
||||||
return freq;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Rig::setMode(rmode_t mode, pbwidth_t width, vfo_t vfo) {
|
void Rig::setMode(rmode_t mode, pbwidth_t width, vfo_t vfo) {
|
||||||
CHECK_RIG(rig_set_mode(theRig, vfo, mode, width));
|
CHECK_RIG(rig_set_mode(theRig, vfo, mode, width));
|
||||||
}
|
}
|
||||||
@ -134,10 +144,6 @@ vfo_t Rig::getVFO()
|
|||||||
return vfo;
|
return vfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Rig::setPTT(ptt_t ptt, vfo_t vfo)
|
|
||||||
{
|
|
||||||
CHECK_RIG( rig_set_ptt(theRig, vfo, ptt) );
|
|
||||||
}
|
|
||||||
|
|
||||||
ptt_t Rig::getPTT(vfo_t vfo)
|
ptt_t Rig::getPTT(vfo_t vfo)
|
||||||
{
|
{
|
||||||
|
18
rigclass.h
18
rigclass.h
@ -25,6 +25,7 @@
|
|||||||
#include <hamlib/rig.h>
|
#include <hamlib/rig.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
|
//extern int hamlibError(int retcode);
|
||||||
|
|
||||||
class BACKEND_IMPEXP Rig {
|
class BACKEND_IMPEXP Rig {
|
||||||
private:
|
private:
|
||||||
@ -39,25 +40,27 @@ public:
|
|||||||
const struct rig_caps *caps;
|
const struct rig_caps *caps;
|
||||||
|
|
||||||
// This method open the communication port to the rig
|
// This method open the communication port to the rig
|
||||||
void open(void);
|
int open(void);
|
||||||
|
|
||||||
// This method close the communication port to the rig
|
// This method close the communication port to the rig
|
||||||
void close(void);
|
int close(void);
|
||||||
|
|
||||||
void setConf(token_t token, const char *val);
|
int setConf(const char *name, const char *val);
|
||||||
void setConf(const char *name, const char *val);
|
int setFreq(freq_t freq, vfo_t vfo = RIG_VFO_CURR);
|
||||||
|
freq_t getFreq(vfo_t vfo = RIG_VFO_CURR);
|
||||||
|
int setPTT (ptt_t ptt, vfo_t vfo = RIG_VFO_CURR);
|
||||||
|
|
||||||
|
int setConf(token_t token, const char *val);
|
||||||
void getConf(token_t token, char *val);
|
void getConf(token_t token, char *val);
|
||||||
void getConf(const char *name, char *val);
|
void getConf(const char *name, char *val);
|
||||||
token_t tokenLookup(const char *name);
|
token_t tokenLookup(const char *name);
|
||||||
|
|
||||||
void setFreq(freq_t freq, vfo_t vfo = RIG_VFO_CURR);
|
|
||||||
freq_t getFreq(vfo_t vfo = RIG_VFO_CURR);
|
|
||||||
void setMode(rmode_t, pbwidth_t width = RIG_PASSBAND_NORMAL, vfo_t vfo = RIG_VFO_CURR);
|
void setMode(rmode_t, pbwidth_t width = RIG_PASSBAND_NORMAL, vfo_t vfo = RIG_VFO_CURR);
|
||||||
rmode_t getMode(pbwidth_t&, vfo_t vfo = RIG_VFO_CURR);
|
rmode_t getMode(pbwidth_t&, vfo_t vfo = RIG_VFO_CURR);
|
||||||
void setVFO(vfo_t);
|
void setVFO(vfo_t);
|
||||||
vfo_t getVFO();
|
vfo_t getVFO();
|
||||||
|
|
||||||
void setPTT (ptt_t ptt, vfo_t vfo = RIG_VFO_CURR);
|
|
||||||
ptt_t getPTT (vfo_t vfo = RIG_VFO_CURR);
|
ptt_t getPTT (vfo_t vfo = RIG_VFO_CURR);
|
||||||
dcd_t getDCD (vfo_t vfo = RIG_VFO_CURR);
|
dcd_t getDCD (vfo_t vfo = RIG_VFO_CURR);
|
||||||
|
|
||||||
@ -273,5 +276,4 @@ inline void THROW(const RigException *e) {
|
|||||||
|
|
||||||
#define THROWS(s)
|
#define THROWS(s)
|
||||||
|
|
||||||
|
|
||||||
#endif // _RIGCLASS_H
|
#endif // _RIGCLASS_H
|
||||||
|
Loading…
Reference in New Issue
Block a user