From 9c1533dab9cf9ba15daeaabf44b6f4a6e225ccd2 Mon Sep 17 00:00:00 2001 From: Joe Taylor Date: Mon, 15 Apr 2013 00:28:27 +0000 Subject: [PATCH] Starting to implement direct calls to hamlib functions, rather than using rigctl in a separate process. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3170 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- lib/libhamlib.dll.a | Bin 0 -> 177492 bytes lib/rig_control.c | 98 ++++++++++++++++++++++++++++++++++++++++++++ lib/tstrig.c | 26 ++++++++++++ lib/tstrig.h | 50 ++++++++++++++++++++++ mainwindow.cpp | 5 +++ mainwindow.h | 7 ++++ wsjtx.pro | 1 + 7 files changed, 187 insertions(+) create mode 100644 lib/libhamlib.dll.a create mode 100644 lib/rig_control.c create mode 100644 lib/tstrig.c create mode 100644 lib/tstrig.h diff --git a/lib/libhamlib.dll.a b/lib/libhamlib.dll.a new file mode 100644 index 0000000000000000000000000000000000000000..7bb6d1bd5b8b7605dbc9ce5424c4a79fc63ec296 GIT binary patch literal 177492 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 literal 0 HcmV?d00001 diff --git a/lib/rig_control.c b/lib/rig_control.c new file mode 100644 index 000000000..d105718e4 --- /dev/null +++ b/lib/rig_control.c @@ -0,0 +1,98 @@ +#include "config.h" +#include +#include +#include +#include "tstrig.h" + +RIG *my_rig; // handle to rig + +int set_conf(RIG *my_rig, char *conf_parms); + +//------------------------------------------------------------------------ +int set_conf(RIG *my_rig, char *conf_parms) +{ + char *p, *q, *n; + int ret; + + p = conf_parms; + while (p && *p != '\0') { + /* FIXME: left hand value of = cannot be null */ + q = strchr(p, '='); + if ( !q ) + return -RIG_EINVAL; + *q++ = '\0'; + n = strchr(q, ','); + if (n) *n++ = '\0'; + + printf("%s %s\n",p,q); + + ret = rig_set_conf(my_rig, rig_token_lookup(my_rig, p), q); + if (ret != RIG_OK) + return ret; + p = n; + } + return RIG_OK; +} + +//------------------------------------------------------------------------ +int rigOpen(rig_model_t my_model, int verbose) +{ + int retcode; /* generic return code from functions */ + char *civaddr = NULL; /* NULL means no need to set conf */ + const char *rig_file; + const char *conf_parms2; + int serial_rate; + + rig_set_debug(verbose); + my_rig=rig_init(my_model); + + if (!my_rig) { + fprintf(stderr, "Unknown rig num %d, or initialization error.\n",my_model); + exit(2); + } + rig_file="COM1"; + serial_rate=4800; + conf_parms2="data_bits=8,stop_bits=2,serial_handshake=Hardware"; + + retcode=set_conf(my_rig, conf_parms2); + if (retcode!=RIG_OK) { + fprintf(stderr, "Config parameter error: %s\n", rigerror(retcode)); + exit(2); + } + + if (rig_file) + strncpy(my_rig->state.rigport.pathname, rig_file, FILPATHLEN - 1); + + if (serial_rate!=0) + my_rig->state.rigport.parm.serial.rate = serial_rate; + + if (civaddr) + rig_set_conf(my_rig, rig_token_lookup(my_rig, "civaddr"), civaddr); + + retcode = rig_open(my_rig); + return 0; +} + +int rigSetFreq(int fHz) +{ + return rig_set_freq(my_rig,RIG_VFO_CURR,fHz); +} + +int rigFreq() +{ + int iret=0; + freq_t freq; + iret=rig_get_freq(my_rig, RIG_VFO_CURR, &freq); + if (iret == RIG_OK ) { + printf("rig_get_freq: freq = %"PRIfreq"\n", freq); + } else { + printf("rig_get_freq: error = %s \n", rigerror(iret)); + } + return freq; +} + +void rigClose() +{ + rig_close(my_rig); + rig_cleanup(my_rig); +} diff --git a/lib/tstrig.c b/lib/tstrig.c new file mode 100644 index 000000000..2e77fea5c --- /dev/null +++ b/lib/tstrig.c @@ -0,0 +1,26 @@ +#include "config.h" +#include +#include +#include +#include "tstrig.h" + +int set_conf(RIG *my_rig, char *conf_parms); + +int rig_control(rig_model_t my_model, int verbose); + +int main (int argc, char *argv[]) +{ + rig_model_t my_model = RIG_MODEL_DUMMY; + int verbose=0; + + my_model=214; + rig_control(my_model,verbose); + return 0; +} + +/* +gcc -c -Wall -I../include rig_control.c +gcc -c -Wall -I../include tstrig.c +gcc -o tstrig.exe -Wl,--enable-auto-import tstrig.o rig_control.o libhamlib.dll.a +strip tstrig.exe +*/ diff --git a/lib/tstrig.h b/lib/tstrig.h new file mode 100644 index 000000000..ce62d3d7b --- /dev/null +++ b/lib/tstrig.h @@ -0,0 +1,50 @@ +/* + * rigctl_parse.h - (C) Stephane Fillod 2000-2010 + * + * This program test/control a radio using Hamlib. + * It takes commands in interactive mode as well as + * from command line options. + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#ifndef RIGCTL_PARSE_H +#define RIGCTL_PARSE_H + +#include +#include + +/* + * external prototype + */ + +int dumpcaps (RIG *, FILE *); +int dumpconf (RIG *, FILE *); + +/* + * Prototypes + */ +void usage_rig(FILE *); +void version(); +void list_models(); +int dump_chan(FILE *, RIG*, channel_t*); +int print_conf_list(const struct confparams *cfp, rig_ptr_t data); +int set_conf(RIG *my_rig, char *conf_parms); + +int rigctl_parse(RIG *my_rig, FILE *fin, FILE *fout, char *argv[], int argc); + +#endif /* RIGCTL_PARSE_H */ diff --git a/mainwindow.cpp b/mainwindow.cpp index 8f1007a7c..1a70d00a5 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -2552,4 +2552,9 @@ void MainWindow::on_tuneButton_clicked() ui->tuneButton->setStyleSheet(""); on_monitorButton_clicked(); } + /* + rigOpen(214,0); + rigSetFreq(10138700); + qDebug() << "Freq:" << rigFreq(); + */ } diff --git a/mainwindow.h b/mainwindow.h index ebb5284f9..c7c9f2fcf 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -362,6 +362,13 @@ void azdist_(char* MyGrid, char* HisGrid, double* utch, int* nAz, int* nEl, int len1, int len2); void morse_(char* msg, int* icw, int* ncw, int len); + +//void rig_control(int nrig, int verbose); + +void rigOpen(int nrig, int verbose); +void rigSetFreq(int fHz); +int rigFreq(); + } #endif // MAINWINDOW_H diff --git a/wsjtx.pro b/wsjtx.pro index 0fcfa641d..7810d9dcd 100644 --- a/wsjtx.pro +++ b/wsjtx.pro @@ -66,6 +66,7 @@ LIBS += -lportaudio -lgfortran -lfftw3f win32 { INCLUDEPATH += c:/qwt-6.0.1/include LIBS += ../wsjtx/lib/libjt9.a +LIBS += ../wsjtx/lib/libhamlib.dll.a LIBS += ../wsjtx/libfftw3f_win.a LIBS += ../wsjtx/libpskreporter.a LIBS += ../QtSupport/palir-02.dll