Hamlib 4.4
rig.h
Go to the documentation of this file.
1/*
2 * Hamlib Interface - API header
3 * Copyright (c) 2000-2003 by Frank Singleton
4 * Copyright (c) 2000-2012 by Stephane Fillod
5 *
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 *
21 */
22
23
24#ifndef _RIG_H
25#define _RIG_H 1
26
27#define TRACE rig_debug(RIG_DEBUG_TRACE,"%s(%d) trace\n", __FILE__, __LINE__)
28#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
29
30#include <stdio.h>
31#include <stdarg.h>
32#include <string.h>
33#include <inttypes.h>
34#include <time.h>
35#include <sys/time.h>
36
37/* Rig list is in a separate file so as not to mess up w/ this one */
38#include <hamlib/riglist.h>
39
53/* __BEGIN_DECLS should be used at the beginning of your declarations,
54 * so that C++ compilers don't mangle their names. Use __END_DECLS at
55 * the end of C declarations. */
57#undef __BEGIN_DECLS
58#undef __END_DECLS
59#ifdef __cplusplus
60# define __BEGIN_DECLS extern "C" {
61# define __END_DECLS }
62#else
63# define __BEGIN_DECLS /* empty */
64# define __END_DECLS /* empty */
65#endif
67
68/* HAMLIB_PARAMS is a macro used to wrap function prototypes, so that compilers
69 * that don't understand ANSI C prototypes still work, and ANSI C
70 * compilers can issue warnings about type mismatches. */
72#undef HAMLIB_PARAMS
73#if defined (__STDC__) \
74 || defined (_AIX) \
75 || (defined (__mips) && defined (_SYSTYPE_SVR4)) \
76 || defined(__CYGWIN__) \
77 || defined(_WIN32) \
78 || defined(__cplusplus)
79# define HAMLIB_PARAMS(protos) protos
80# define rig_ptr_t void *
81# define amp_ptr_t void *
82#else
83# define HAMLIB_PARAMS(protos) ()
84# define rig_ptr_t char *
85# define amp_ptr_t char *
86#endif
88
89#include <hamlib/rig_dll.h>
90
91#ifndef SWIGLUA
93#define CONSTANT_64BIT_FLAG(BIT) (1ull << (BIT))
95#else
96/* SWIG's older Lua generator doesn't grok ull due to Lua using a
97 double-precision floating point type internally for number
98 representations (max 53 bits of precision) so makes a string
99 constant from a constant number literal using ull */
100// #define CONSTANT_64BIT_FLAG(BIT) (1 << (BIT))
101// #define SWIGLUAHIDE
102/* But this appears to have been fixed so we'll use the correct one now
103 If you have the older version of SWIG comment out this line and use
104 the two above */
105// This 1ul definition works on swig 4.0.1 and lua 5.3.5
106#define CONSTANT_64BIT_FLAG(BIT) (1ul << (BIT))
107#endif
108
109__BEGIN_DECLS
110
115// cookie is 26-char time code plus 10-char (2^31-1) random number
116#define HAMLIB_COOKIE_SIZE 37
117extern int cookie_use; // this is global as once one client requests it everybody needs to honor it
118
120extern HAMLIB_EXPORT_VAR(const char) hamlib_version[];
121extern HAMLIB_EXPORT_VAR(const char) hamlib_copyright[];
122extern HAMLIB_EXPORT_VAR(const char *) hamlib_version2;
123extern HAMLIB_EXPORT_VAR(const char *) hamlib_copyright2;
125
133 RIG_OK = 0,
150 RIG_EDOM
152
158#define RIG_IS_SOFT_ERRCODE(errcode) (errcode == RIG_EINVAL || errcode == RIG_ENIMPL || errcode == RIG_ERJCTED \
159 || errcode == RIG_ETRUNC || errcode == RIG_ENAVAIL || errcode == RIG_ENTARGET \
160 || errcode == RIG_EVFO || errcode == RIG_EDOM)
161
165#define NETRIGCTL_RET "RPRT "
166
167
184
185
186/* --------------- Rig capabilities -----------------*/
187
188/* Forward struct references */
189
190struct rig;
191struct rig_state;
192
196typedef struct s_rig RIG;
197
199#define HAMLIB_RIGNAMSIZ 30
200#define HAMLIB_RIGVERSIZ 8
201#define HAMLIB_FILPATHLEN 512
202#define HAMLIB_FRQRANGESIZ 30
203#define HAMLIB_MAXCHANDESC 30 /* describe channel eg: "WWV 5Mhz" */
204#define HAMLIB_TSLSTSIZ 20 /* max tuning step list size, zero ended */
205#define HAMLIB_FLTLSTSIZ 60 /* max mode/filter list size, zero ended */
206#define HAMLIB_MAXDBLSTSIZ 8 /* max preamp/att levels supported, zero ended */
207#define HAMLIB_CHANLSTSIZ 16 /* max mem_list size, zero ended */
208#define HAMLIB_MAX_AGC_LEVELS 8 /* max AGC levels supported */
209#define HAMLIB_MAX_SPECTRUM_SCOPES 4 /* max number of spectrum scopes supported */
210#define HAMLIB_MAX_SPECTRUM_MODES 5 /* max number of spectrum modes supported */
211#define HAMLIB_MAX_SPECTRUM_AVG_MODES 12 /* max number of spectrum averaging modes supported */
212#define HAMLIB_MAX_SPECTRUM_SPANS 20 /* max number of spectrum modes supported */
213#define HAMLIB_MAX_CAL_LENGTH 32 /* max calibration plots in cal_table_t */
214#define HAMLIB_MAX_MODES 63
215#define HAMLIB_MAX_VFOS 31
216#define HAMLIB_MAX_ROTORS 63
217#define HAMLIB_MAX_VFO_OPS 31
218#define HAMLIB_MAX_RSCANS 31
220
221
232#define CTCSS_LIST_SIZE 60
233#define DCS_LIST_SIZE 128
234typedef unsigned int tone_t;
235
236
240typedef enum rig_port_e {
256
257
268
269
278
279
288
289
293typedef enum {
294 RIG_FLAG_RECEIVER = (1 << 1),
296 RIG_FLAG_SCANNER = (1 << 3),
297 RIG_FLAG_MOBILE = (1 << 4),
298 RIG_FLAG_HANDHELD = (1 << 5),
299 RIG_FLAG_COMPUTER = (1 << 6),
300 RIG_FLAG_TRUNKING = (1 << 7),
301 RIG_FLAG_APRS = (1 << 8),
302 RIG_FLAG_TNC = (1 << 9),
303 RIG_FLAG_DXCLUSTER = (1 << 10),
304 RIG_FLAG_TUNER = (1 << 11)
306
308#define RIG_FLAG_TRANSCEIVER (RIG_FLAG_RECEIVER|RIG_FLAG_TRANSMITTER)
309#define RIG_TYPE_MASK (RIG_FLAG_TRANSCEIVER|RIG_FLAG_SCANNER|RIG_FLAG_MOBILE|RIG_FLAG_HANDHELD|RIG_FLAG_COMPUTER|RIG_FLAG_TRUNKING|RIG_FLAG_TUNER)
310
311#define RIG_TYPE_OTHER 0
312#define RIG_TYPE_TRANSCEIVER RIG_FLAG_TRANSCEIVER
313#define RIG_TYPE_HANDHELD (RIG_FLAG_TRANSCEIVER|RIG_FLAG_HANDHELD)
314#define RIG_TYPE_MOBILE (RIG_FLAG_TRANSCEIVER|RIG_FLAG_MOBILE)
315#define RIG_TYPE_RECEIVER RIG_FLAG_RECEIVER
316#define RIG_TYPE_PCRECEIVER (RIG_FLAG_COMPUTER|RIG_FLAG_RECEIVER)
317#define RIG_TYPE_SCANNER (RIG_FLAG_SCANNER|RIG_FLAG_RECEIVER)
318#define RIG_TYPE_TRUNKSCANNER (RIG_TYPE_SCANNER|RIG_FLAG_TRUNKING)
319#define RIG_TYPE_COMPUTER (RIG_FLAG_TRANSCEIVER|RIG_FLAG_COMPUTER)
320#define RIG_TYPE_TUNER RIG_FLAG_TUNER
322
323
333 /* RIG_STATUS_NEW * *!< Initial release of code
334 * !! Use of RIG_STATUS_NEW is deprecated. Do not use it anymore */
336
341#define RIG_STATUS_NEW RIG_STATUS_UNTESTED
342
343
347typedef enum {
352
353
357typedef enum {
361
362
368typedef double freq_t;
369
373#define PRIfreq ".0f"
374
378#define SCNfreq "lf"
382#define FREQFMT SCNfreq
383
384
390typedef signed long shortfreq_t;
391
393#define Hz(f) ((freq_t)(f))
395#define kHz(f) ((freq_t)((f)*(freq_t)1000))
397#define MHz(f) ((freq_t)((f)*(freq_t)1000000))
399#define GHz(f) ((freq_t)((f)*(freq_t)1000000000))
400
402#define s_Hz(f) ((shortfreq_t)(f))
404#define s_kHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000))
406#define s_MHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000))
408#define s_GHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000000))
409
411#define RIG_FREQ_NONE Hz(0)
412
413
428typedef unsigned int vfo_t;
429
432#define RIG_VFO_N(n) (1u<<(n))
433
435#define RIG_VFO_NONE 0
436
438#define RIG_VFO_A RIG_VFO_N(0)
439
441#define RIG_VFO_B RIG_VFO_N(1)
442
444#define RIG_VFO_C RIG_VFO_N(2)
445
446// Any addition VFOS need to go from 3-20
447// To maintain backward compatibility these values cannot change
448
450#define RIG_VFO_SUB_A RIG_VFO_N(21)
451
453#define RIG_VFO_SUB_B RIG_VFO_N(22)
454
456#define RIG_VFO_SUB_C RIG_VFO_N(3)
457
459#define RIG_VFO_MAIN_A RIG_VFO_N(23)
460
462#define RIG_VFO_MAIN_B RIG_VFO_N(24)
463
465#define RIG_VFO_MAIN_C RIG_VFO_N(4)
466
468#define RIG_VFO_OTHER RIG_VFO_N(5)
469
471#define RIG_VFO_SUB RIG_VFO_N(25)
472
474#define RIG_VFO_MAIN RIG_VFO_N(26)
475
477#define RIG_VFO_VFO RIG_VFO_N(27)
478
480#define RIG_VFO_MEM RIG_VFO_N(28)
481
483#define RIG_VFO_CURR RIG_VFO_N(29)
484
486#define RIG_VFO_TX_FLAG RIG_VFO_N(30)
487
489#define RIG_VFO_ALL RIG_VFO_N(31)
490
491// we can also use RIG_VFO_N(31) if needed
492
493// Misc VFO Macros
494
496#define RIG_VFO_TX_VFO(v) ((v)|RIG_VFO_TX_FLAG)
497
499#define RIG_VFO_TX RIG_VFO_TX_VFO(RIG_VFO_CURR)
500
502#define RIG_VFO_RX RIG_VFO_CURR
503
504
505/*
506 * targetable bitfields, for internal use.
507 * In rig.c lack of a flag will case a VFO change if needed
508 * So setting this flag will mean the backend handles any VFO needs
509 * For many rigs RITXIT, PTT, MEM, and BANK are non-VFO commands so need these flags to avoid unnecessary VFO swapping
510 */
512#define RIG_TARGETABLE_NONE 0
513#define RIG_TARGETABLE_FREQ (1<<0)
514#define RIG_TARGETABLE_MODE (1<<1) // mode by vfo or same mode on both vfos
515#define RIG_TARGETABLE_PURE (1<<2) // deprecated -- not used -- reuse it
516#define RIG_TARGETABLE_TONE (1<<3)
517#define RIG_TARGETABLE_FUNC (1<<4)
518#define RIG_TARGETABLE_LEVEL (1<<5)
519#define RIG_TARGETABLE_RITXIT (1<<6)
520#define RIG_TARGETABLE_PTT (1<<7)
521#define RIG_TARGETABLE_MEM (1<<8)
522#define RIG_TARGETABLE_BANK (1<<9)
523#define RIG_TARGETABLE_ANT (1<<10)
524#define RIG_TARGETABLE_ROOFING (1<<11) // roofing filter targetable by VFO
525#define RIG_TARGETABLE_SPECTRUM (1<<12) // spectrum scope targetable by VFO
526#define RIG_TARGETABLE_COMMON (RIG_TARGETABLE_RITXIT | RIG_TARGETABLE_PTT | RIG_TARGETABLE_MEM | RIG_TARGETABLE_BANK)
527#define RIG_TARGETABLE_ALL 0x7fffffff
529//
530//
531// Newer Icoms like the 9700 and 910 have VFOA/B on both Main & Sub
532// Compared to older rigs which have one or the other
533// So we need to distinguish between them
535#define VFO_HAS_A_B ((rig->state.vfo_list & (RIG_VFO_A|RIG_VFO_B)) == (RIG_VFO_A|RIG_VFO_B))
536#define VFO_HAS_MAIN_SUB ((rig->state.vfo_list & (RIG_VFO_MAIN|RIG_VFO_SUB)) == (RIG_VFO_MAIN|RIG_VFO_SUB))
537#define VFO_HAS_MAIN_SUB_ONLY ((!VFO_HAS_A_B) & VFO_HAS_MAIN_SUB)
538#define VFO_HAS_MAIN_SUB_A_B_ONLY (VFO_HAS_A_B & VFO_HAS_MAIN_SUB)
539#define VFO_HAS_A_B_ONLY (VFO_HAS_A_B & (!VFO_HAS_MAIN_SUB))
540#define VFO_DUAL (RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
541#define VFO_HAS_DUAL ((rig->state.vfo_list & VFO_DUAL) == VFO_DUAL)
543
548#define RIG_PASSBAND_NORMAL s_Hz(0)
549
553#define RIG_PASSBAND_NOCHANGE s_Hz(-1)
554
560
561
565typedef enum dcd_e {
569
570
576typedef enum {
586} dcd_type_t;
587
588
592typedef enum {
598
599
605typedef enum {
615} ptt_type_t;
616
617
621typedef enum {
623 RIG_POWER_ON = (1 << 0),
624 RIG_POWER_STANDBY = (1 << 1),
625 RIG_POWER_OPERATE = (1 << 2),
626 RIG_POWER_UNKNOWN = (1 << 3)
628
629
633typedef enum {
635 RIG_RESET_SOFT = (1 << 0),
636 RIG_RESET_VFO = (1 << 1),
637 RIG_RESET_MCALL = (1 << 2),
638 RIG_RESET_MASTER = (1 << 3)
640
641
657typedef enum {
659 RIG_OP_CPY = (1 << 0),
660 RIG_OP_XCHG = (1 << 1),
661 RIG_OP_FROM_VFO = (1 << 2),
662 RIG_OP_TO_VFO = (1 << 3),
663 RIG_OP_MCL = (1 << 4),
664 RIG_OP_UP = (1 << 5),
665 RIG_OP_DOWN = (1 << 6),
666 RIG_OP_BAND_UP = (1 << 7),
667 RIG_OP_BAND_DOWN = (1 << 8),
668 RIG_OP_LEFT = (1 << 9),
669 RIG_OP_RIGHT = (1 << 10),
670 RIG_OP_TUNE = (1 << 11),
671 RIG_OP_TOGGLE = (1 << 12)
673
674
683typedef enum {
685 RIG_SCAN_MEM = (1 << 0),
686 RIG_SCAN_SLCT = (1 << 1),
687 RIG_SCAN_PRIO = (1 << 2),
688 RIG_SCAN_PROG = (1 << 3),
689 RIG_SCAN_DELTA = (1 << 4),
690 RIG_SCAN_VFO = (1 << 5),
691 RIG_SCAN_PLT = (1 << 6),
692 RIG_SCAN_STOP = (1 << 7)
694
695
699typedef long token_t;
700
701
703#define RIG_CONF_END 0
705
706
720/* strongly inspired from soundmodem. Thanks Thomas! */
729
731#define RIG_COMBO_MAX 16
732#define RIG_BIN_MAX 80
734
740 const char *name;
741 const char *label;
742 const char *tooltip;
743 const char *dflt;
745 union {
746 struct {
747 float min;
748 float max;
749 float step;
750 } n;
751 struct {
752 const char *combostr[RIG_COMBO_MAX];
753 } c;
754 } u;
755};
756
757
763typedef enum {
766 RIG_ANN_FREQ = (1 << 0),
767 RIG_ANN_RXMODE = (1 << 1),
768 RIG_ANN_CW = (1 << 2),
769 RIG_ANN_ENG = (1 << 3),
770 RIG_ANN_JAP = (1 << 4)
772
773
820typedef unsigned int ant_t;
821
822#define RIG_ANT_NONE 0
823#define RIG_ANT_N(n) ((ant_t)1<<(n))
824#define RIG_ANT_1 RIG_ANT_N(0)
825#define RIG_ANT_2 RIG_ANT_N(1)
826#define RIG_ANT_3 RIG_ANT_N(2)
827#define RIG_ANT_4 RIG_ANT_N(3)
828#define RIG_ANT_5 RIG_ANT_N(4)
829
830#define RIG_ANT_UNKNOWN RIG_ANT_N(30)
831#define RIG_ANT_CURR RIG_ANT_N(31)
832
833#define RIG_ANT_MAX 32
834
835
839/* TODO: kill me, and replace by real AGC delay */
841 RIG_AGC_OFF = 0,
842 RIG_AGC_SUPERFAST,
843 RIG_AGC_FAST,
844 RIG_AGC_SLOW,
846 RIG_AGC_MEDIUM,
847 RIG_AGC_AUTO
848};
849
851#define RIG_AGC_LAST RIG_AGC_AUTO
853
858 RIG_METER_NONE = 0, /*< No display meter */
859 RIG_METER_SWR = (1 << 0), /*< Stationary Wave Ratio */
860 RIG_METER_COMP = (1 << 1), /*< Compression level */
861 RIG_METER_ALC = (1 << 2), /*< ALC */
862 RIG_METER_IC = (1 << 3), /*< IC */
863 RIG_METER_DB = (1 << 4), /*< DB */
864 RIG_METER_PO = (1 << 5), /*< Power Out */
865 RIG_METER_VDD = (1 << 6), /*< Final Amp Voltage */
866 RIG_METER_TEMP = (1 << 7) /*< Final Amp Voltage */
867};
868
869
875typedef union {
876 signed int i;
877 float f;
878 char *s;
879 const char *cs;
881 struct {
882 int l;
883 unsigned char *d; /* Pointer to data buffer */
884 } b;
886} value_t;
887
888
897typedef uint64_t rig_level_e;
898#define RIG_LEVEL_NONE 0
899#define RIG_LEVEL_PREAMP CONSTANT_64BIT_FLAG(0)
900#define RIG_LEVEL_ATT CONSTANT_64BIT_FLAG(1)
901#define RIG_LEVEL_VOXDELAY CONSTANT_64BIT_FLAG(2)
902#define RIG_LEVEL_AF CONSTANT_64BIT_FLAG(3)
903#define RIG_LEVEL_RF CONSTANT_64BIT_FLAG(4)
904#define RIG_LEVEL_SQL CONSTANT_64BIT_FLAG(5)
905#define RIG_LEVEL_IF CONSTANT_64BIT_FLAG(6)
906#define RIG_LEVEL_APF CONSTANT_64BIT_FLAG(7)
907#define RIG_LEVEL_NR CONSTANT_64BIT_FLAG(8)
908#define RIG_LEVEL_PBT_IN CONSTANT_64BIT_FLAG(9)
909#define RIG_LEVEL_PBT_OUT CONSTANT_64BIT_FLAG(10)
910#define RIG_LEVEL_CWPITCH CONSTANT_64BIT_FLAG(11)
911#define RIG_LEVEL_RFPOWER CONSTANT_64BIT_FLAG(12)
912#define RIG_LEVEL_MICGAIN CONSTANT_64BIT_FLAG(13)
913#define RIG_LEVEL_KEYSPD CONSTANT_64BIT_FLAG(14)
914#define RIG_LEVEL_NOTCHF CONSTANT_64BIT_FLAG(15)
915#define RIG_LEVEL_COMP CONSTANT_64BIT_FLAG(16)
916#define RIG_LEVEL_AGC CONSTANT_64BIT_FLAG(17)
917#define RIG_LEVEL_BKINDL CONSTANT_64BIT_FLAG(18)
918#define RIG_LEVEL_BALANCE CONSTANT_64BIT_FLAG(19)
919#define RIG_LEVEL_METER CONSTANT_64BIT_FLAG(20)
920#define RIG_LEVEL_VOXGAIN CONSTANT_64BIT_FLAG(21)
921#define RIG_LEVEL_ANTIVOX CONSTANT_64BIT_FLAG(22)
922#define RIG_LEVEL_SLOPE_LOW CONSTANT_64BIT_FLAG(23)
923#define RIG_LEVEL_SLOPE_HIGH CONSTANT_64BIT_FLAG(24)
924#define RIG_LEVEL_BKIN_DLYMS CONSTANT_64BIT_FLAG(25)
927#define RIG_LEVEL_RAWSTR CONSTANT_64BIT_FLAG(26)
928//#define RIG_LEVEL_SQLSTAT CONSTANT_64BIT_FLAG(27) /*!< \c SQLSTAT -- SQL status, arg int (open=1/closed=0). Deprecated, use get_dcd instead */
929#define RIG_LEVEL_SWR CONSTANT_64BIT_FLAG(28)
930#define RIG_LEVEL_ALC CONSTANT_64BIT_FLAG(29)
931#define RIG_LEVEL_STRENGTH CONSTANT_64BIT_FLAG(30)
932 /* RIG_LEVEL_BWC (1<<31) */
933#define RIG_LEVEL_RFPOWER_METER CONSTANT_64BIT_FLAG(32)
934#define RIG_LEVEL_COMP_METER CONSTANT_64BIT_FLAG(33)
935#define RIG_LEVEL_VD_METER CONSTANT_64BIT_FLAG(34)
936#define RIG_LEVEL_ID_METER CONSTANT_64BIT_FLAG(35)
938#define RIG_LEVEL_NOTCHF_RAW CONSTANT_64BIT_FLAG(36)
939#define RIG_LEVEL_MONITOR_GAIN CONSTANT_64BIT_FLAG(37)
940#define RIG_LEVEL_NB CONSTANT_64BIT_FLAG(38)
941#define RIG_LEVEL_RFPOWER_METER_WATTS CONSTANT_64BIT_FLAG(39)
942#define RIG_LEVEL_SPECTRUM_MODE CONSTANT_64BIT_FLAG(40)
943#define RIG_LEVEL_SPECTRUM_SPAN CONSTANT_64BIT_FLAG(41)
944#define RIG_LEVEL_SPECTRUM_EDGE_LOW CONSTANT_64BIT_FLAG(42)
945#define RIG_LEVEL_SPECTRUM_EDGE_HIGH CONSTANT_64BIT_FLAG(43)
946#define RIG_LEVEL_SPECTRUM_SPEED CONSTANT_64BIT_FLAG(44)
947#define RIG_LEVEL_SPECTRUM_REF CONSTANT_64BIT_FLAG(45)
948#define RIG_LEVEL_SPECTRUM_AVG CONSTANT_64BIT_FLAG(46)
949#define RIG_LEVEL_SPECTRUM_ATT CONSTANT_64BIT_FLAG(47)
950#define RIG_LEVEL_TEMP_METER CONSTANT_64BIT_FLAG(48)
951#define RIG_LEVEL_48 CONSTANT_64BIT_FLAG(48)
952#define RIG_LEVEL_49 CONSTANT_64BIT_FLAG(49)
953#define RIG_LEVEL_50 CONSTANT_64BIT_FLAG(50)
954#define RIG_LEVEL_51 CONSTANT_64BIT_FLAG(51)
955#define RIG_LEVEL_52 CONSTANT_64BIT_FLAG(52)
956#define RIG_LEVEL_53 CONSTANT_64BIT_FLAG(53)
957#define RIG_LEVEL_54 CONSTANT_64BIT_FLAG(54)
958#define RIG_LEVEL_55 CONSTANT_64BIT_FLAG(55)
959#define RIG_LEVEL_56 CONSTANT_64BIT_FLAG(56)
960#define RIG_LEVEL_57 CONSTANT_64BIT_FLAG(57)
961#define RIG_LEVEL_58 CONSTANT_64BIT_FLAG(58)
962#define RIG_LEVEL_59 CONSTANT_64BIT_FLAG(59)
963#define RIG_LEVEL_60 CONSTANT_64BIT_FLAG(60)
964#define RIG_LEVEL_61 CONSTANT_64BIT_FLAG(61)
965#define RIG_LEVEL_62 CONSTANT_64BIT_FLAG(62)
966#define RIG_LEVEL_63 CONSTANT_64BIT_FLAG(63)
969#define RIG_LEVEL_FLOAT_LIST (RIG_LEVEL_AF|RIG_LEVEL_RF|RIG_LEVEL_SQL|RIG_LEVEL_APF|RIG_LEVEL_NR|RIG_LEVEL_PBT_IN|RIG_LEVEL_PBT_OUT|RIG_LEVEL_RFPOWER|RIG_LEVEL_MICGAIN|RIG_LEVEL_COMP|RIG_LEVEL_BALANCE|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_VOXGAIN|RIG_LEVEL_ANTIVOX|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_RFPOWER_METER_WATTS|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB|RIG_LEVEL_SPECTRUM_REF)
970
971#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR|RIG_LEVEL_RFPOWER_METER|RIG_LEVEL_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER)
972
973#define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST)
974#define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST)
976
977
988 RIG_PARM_ANN = (1 << 0),
989 RIG_PARM_APO = (1 << 1),
991 RIG_PARM_BEEP = (1 << 4),
992 RIG_PARM_TIME = (1 << 5),
993 RIG_PARM_BAT = (1 << 6),
994 RIG_PARM_KEYLIGHT = (1 << 7),
995 RIG_PARM_SCREENSAVER = (1 << 8)
997
1010};
1011
1017 RIG_MULTICAST_POLL, // hamlib will be polling the rig for all rig items
1018 RIG_MULTICAST_TRANSCEIVE, // transceive will be turned on and processed
1019 RIG_MULTICAST_SPECTRUM // spectrum data will be included
1020};
1021
1023#define RIG_PARM_FLOAT_LIST (RIG_PARM_BACKLIGHT|RIG_PARM_BAT|RIG_PARM_KEYLIGHT)
1024#define RIG_PARM_READONLY_LIST (RIG_PARM_BAT)
1025
1026#define RIG_PARM_IS_FLOAT(l) ((l)&RIG_PARM_FLOAT_LIST)
1027#define RIG_PARM_SET(l) ((l)&~RIG_PARM_READONLY_LIST)
1029
1036typedef uint64_t setting_t;
1037
1042#define RIG_SETTING_MAX 64
1043
1057#define RIG_TRN_OFF 0
1058#define RIG_TRN_RIG 1
1059#define RIG_TRN_POLL 2
1060
1061
1070/*
1071 * The C standard dictates that an enum constant is a 32 bit signed integer.
1072 * Setting a constant's bit 31 created a negative value that on amd64 had the
1073 * upper 32 bits set as well when assigned to the misc.c:rig_func_str structure.
1074 * This caused misc.c:rig_strfunc() to fail its comparison for RIG_FUNC_XIT
1075 * on amd64 (x86_64). To use bit 31 as an unsigned long, preprocessor macros
1076 * have been used instead as a 'const unsigned long' which cannot be used to
1077 * initialize the rig_func_str.func members. TNX KA6MAL, AC6SL. - N0NB
1078 */
1079#define RIG_FUNC_NONE 0
1080#define RIG_FUNC_FAGC CONSTANT_64BIT_FLAG (0)
1081#define RIG_FUNC_NB CONSTANT_64BIT_FLAG (1)
1082#define RIG_FUNC_COMP CONSTANT_64BIT_FLAG (2)
1083#define RIG_FUNC_VOX CONSTANT_64BIT_FLAG (3)
1084#define RIG_FUNC_TONE CONSTANT_64BIT_FLAG (4)
1085#define RIG_FUNC_TSQL CONSTANT_64BIT_FLAG (5)
1086#define RIG_FUNC_SBKIN CONSTANT_64BIT_FLAG (6)
1087#define RIG_FUNC_FBKIN CONSTANT_64BIT_FLAG (7)
1088#define RIG_FUNC_ANF CONSTANT_64BIT_FLAG (8)
1089#define RIG_FUNC_NR CONSTANT_64BIT_FLAG (9)
1090#define RIG_FUNC_AIP CONSTANT_64BIT_FLAG (10)
1091#define RIG_FUNC_APF CONSTANT_64BIT_FLAG (11)
1092#define RIG_FUNC_MON CONSTANT_64BIT_FLAG (12)
1093#define RIG_FUNC_MN CONSTANT_64BIT_FLAG (13)
1094#define RIG_FUNC_RF CONSTANT_64BIT_FLAG (14)
1095#define RIG_FUNC_ARO CONSTANT_64BIT_FLAG (15)
1096#define RIG_FUNC_LOCK CONSTANT_64BIT_FLAG (16)
1097#define RIG_FUNC_MUTE CONSTANT_64BIT_FLAG (17)
1098#define RIG_FUNC_VSC CONSTANT_64BIT_FLAG (18)
1099#define RIG_FUNC_REV CONSTANT_64BIT_FLAG (19)
1100#define RIG_FUNC_SQL CONSTANT_64BIT_FLAG (20)
1101#define RIG_FUNC_ABM CONSTANT_64BIT_FLAG (21)
1102#define RIG_FUNC_BC CONSTANT_64BIT_FLAG (22)
1103#define RIG_FUNC_MBC CONSTANT_64BIT_FLAG (23)
1104#define RIG_FUNC_RIT CONSTANT_64BIT_FLAG (24)
1105#define RIG_FUNC_AFC CONSTANT_64BIT_FLAG (25)
1106#define RIG_FUNC_SATMODE CONSTANT_64BIT_FLAG (26)
1107#define RIG_FUNC_SCOPE CONSTANT_64BIT_FLAG (27)
1108#define RIG_FUNC_RESUME CONSTANT_64BIT_FLAG (28)
1109#define RIG_FUNC_TBURST CONSTANT_64BIT_FLAG (29)
1110#define RIG_FUNC_TUNER CONSTANT_64BIT_FLAG (30)
1111#define RIG_FUNC_XIT CONSTANT_64BIT_FLAG (31)
1112#ifndef SWIGLUAHIDE
1113/* Hide the top 32 bits from the old Lua binding as they can't be represented */
1114#define RIG_FUNC_NB2 CONSTANT_64BIT_FLAG (32)
1115#define RIG_FUNC_CSQL CONSTANT_64BIT_FLAG (33)
1116#define RIG_FUNC_AFLT CONSTANT_64BIT_FLAG (34)
1117#define RIG_FUNC_ANL CONSTANT_64BIT_FLAG (35)
1118#define RIG_FUNC_BC2 CONSTANT_64BIT_FLAG (36)
1119#define RIG_FUNC_DUAL_WATCH CONSTANT_64BIT_FLAG (37)
1120#define RIG_FUNC_DIVERSITY CONSTANT_64BIT_FLAG (38)
1121#define RIG_FUNC_DSQL CONSTANT_64BIT_FLAG (39)
1122#define RIG_FUNC_SCEN CONSTANT_64BIT_FLAG (40)
1123#define RIG_FUNC_SLICE CONSTANT_64BIT_FLAG (41)
1124#define RIG_FUNC_TRANSCEIVE CONSTANT_64BIT_FLAG (42)
1125#define RIG_FUNC_SPECTRUM CONSTANT_64BIT_FLAG (43)
1126#define RIG_FUNC_SPECTRUM_HOLD CONSTANT_64BIT_FLAG (44)
1127#define RIG_FUNC_BIT45 CONSTANT_64BIT_FLAG (45)
1128#define RIG_FUNC_BIT46 CONSTANT_64BIT_FLAG (46)
1129#define RIG_FUNC_BIT47 CONSTANT_64BIT_FLAG (47)
1130#define RIG_FUNC_BIT48 CONSTANT_64BIT_FLAG (48)
1131#define RIG_FUNC_BIT49 CONSTANT_64BIT_FLAG (49)
1132#define RIG_FUNC_BIT50 CONSTANT_64BIT_FLAG (50)
1133#define RIG_FUNC_BIT51 CONSTANT_64BIT_FLAG (51)
1134#define RIG_FUNC_BIT52 CONSTANT_64BIT_FLAG (52)
1135#define RIG_FUNC_BIT53 CONSTANT_64BIT_FLAG (53)
1136#define RIG_FUNC_BIT54 CONSTANT_64BIT_FLAG (54)
1137#define RIG_FUNC_BIT55 CONSTANT_64BIT_FLAG (55)
1138#define RIG_FUNC_BIT56 CONSTANT_64BIT_FLAG (56)
1139#define RIG_FUNC_BIT57 CONSTANT_64BIT_FLAG (57)
1140#define RIG_FUNC_BIT58 CONSTANT_64BIT_FLAG (58)
1141#define RIG_FUNC_BIT59 CONSTANT_64BIT_FLAG (59)
1142#define RIG_FUNC_BIT60 CONSTANT_64BIT_FLAG (60)
1143#define RIG_FUNC_BIT61 CONSTANT_64BIT_FLAG (61)
1144#define RIG_FUNC_BIT62 CONSTANT_64BIT_FLAG (62)
1145#define RIG_FUNC_BIT63 CONSTANT_64BIT_FLAG (63)
1146/* 63 is this highest bit number that can be used */
1147#endif
1148
1155#define mW(p) ((int)(p))
1163#define Watts(p) ((int)((p)*1000))
1170#define W(p) Watts(p)
1171#if 0 // deprecating kW macro as this doesn't make sense
1178#define kW(p) ((int)((p)*1000000L))
1179#endif
1180
1181
1191typedef uint64_t rmode_t;
1192
1193#define RIG_MODE_NONE 0
1194#define RIG_MODE_AM CONSTANT_64BIT_FLAG (0)
1195#define RIG_MODE_CW CONSTANT_64BIT_FLAG (1)
1196#define RIG_MODE_USB CONSTANT_64BIT_FLAG (2)
1197#define RIG_MODE_LSB CONSTANT_64BIT_FLAG (3)
1198#define RIG_MODE_RTTY CONSTANT_64BIT_FLAG (4)
1199#define RIG_MODE_FM CONSTANT_64BIT_FLAG (5)
1200#define RIG_MODE_WFM CONSTANT_64BIT_FLAG (6)
1201#define RIG_MODE_CWR CONSTANT_64BIT_FLAG (7)
1202#define RIG_MODE_RTTYR CONSTANT_64BIT_FLAG (8)
1203#define RIG_MODE_AMS CONSTANT_64BIT_FLAG (9)
1204#define RIG_MODE_PKTLSB CONSTANT_64BIT_FLAG (10)
1205#define RIG_MODE_PKTUSB CONSTANT_64BIT_FLAG (11)
1206#define RIG_MODE_PKTFM CONSTANT_64BIT_FLAG (12)
1207#define RIG_MODE_ECSSUSB CONSTANT_64BIT_FLAG (13)
1208#define RIG_MODE_ECSSLSB CONSTANT_64BIT_FLAG (14)
1209#define RIG_MODE_FAX CONSTANT_64BIT_FLAG (15)
1210#define RIG_MODE_SAM CONSTANT_64BIT_FLAG (16)
1211#define RIG_MODE_SAL CONSTANT_64BIT_FLAG (17)
1212#define RIG_MODE_SAH CONSTANT_64BIT_FLAG (18)
1213#define RIG_MODE_DSB CONSTANT_64BIT_FLAG (19)
1214#define RIG_MODE_FMN CONSTANT_64BIT_FLAG (21)
1215#define RIG_MODE_PKTAM CONSTANT_64BIT_FLAG (22)
1216#define RIG_MODE_P25 CONSTANT_64BIT_FLAG (23)
1217#define RIG_MODE_DSTAR CONSTANT_64BIT_FLAG (24)
1218#define RIG_MODE_DPMR CONSTANT_64BIT_FLAG (25)
1219#define RIG_MODE_NXDNVN CONSTANT_64BIT_FLAG (26)
1220#define RIG_MODE_NXDN_N CONSTANT_64BIT_FLAG (27)
1221#define RIG_MODE_DCR CONSTANT_64BIT_FLAG (28)
1222#define RIG_MODE_AMN CONSTANT_64BIT_FLAG (29)
1223#define RIG_MODE_PSK CONSTANT_64BIT_FLAG (30)
1224#define RIG_MODE_PSKR CONSTANT_64BIT_FLAG (31)
1225#ifndef SWIGLUAHIDE
1226/* hide the top 32 bits from the Lua binding as they will not work */
1227#define RIG_MODE_DD CONSTANT_64BIT_FLAG (32)
1228#define RIG_MODE_C4FM CONSTANT_64BIT_FLAG (33)
1229#define RIG_MODE_PKTFMN CONSTANT_64BIT_FLAG (34)
1230#define RIG_MODE_SPEC CONSTANT_64BIT_FLAG (35)
1231#define RIG_MODE_CWN CONSTANT_64BIT_FLAG (36)
1232#define RIG_MODE_IQ CONSTANT_64BIT_FLAG (37)
1233#define RIG_MODE_BIT38 CONSTANT_64BIT_FLAG (38)
1234#define RIG_MODE_BIT39 CONSTANT_64BIT_FLAG (39)
1235#define RIG_MODE_BIT40 CONSTANT_64BIT_FLAG (40)
1236#define RIG_MODE_BIT41 CONSTANT_64BIT_FLAG (41)
1237#define RIG_MODE_BIT42 CONSTANT_64BIT_FLAG (42)
1238#define RIG_MODE_BIT43 CONSTANT_64BIT_FLAG (43)
1239#define RIG_MODE_BIT44 CONSTANT_64BIT_FLAG (44)
1240#define RIG_MODE_BIT45 CONSTANT_64BIT_FLAG (45)
1241#define RIG_MODE_BIT46 CONSTANT_64BIT_FLAG (46)
1242#define RIG_MODE_BIT47 CONSTANT_64BIT_FLAG (47)
1243#define RIG_MODE_BIT48 CONSTANT_64BIT_FLAG (48)
1244#define RIG_MODE_BIT49 CONSTANT_64BIT_FLAG (49)
1245#define RIG_MODE_BIT50 CONSTANT_64BIT_FLAG (50)
1246#define RIG_MODE_BIT51 CONSTANT_64BIT_FLAG (51)
1247#define RIG_MODE_BIT52 CONSTANT_64BIT_FLAG (52)
1248#define RIG_MODE_BIT53 CONSTANT_64BIT_FLAG (53)
1249#define RIG_MODE_BIT54 CONSTANT_64BIT_FLAG (54)
1250#define RIG_MODE_BIT55 CONSTANT_64BIT_FLAG (55)
1251#define RIG_MODE_BIT56 CONSTANT_64BIT_FLAG (56)
1252#define RIG_MODE_BIT57 CONSTANT_64BIT_FLAG (57)
1253#define RIG_MODE_BIT58 CONSTANT_64BIT_FLAG (58)
1254#define RIG_MODE_BIT59 CONSTANT_64BIT_FLAG (59)
1255#define RIG_MODE_BIT60 CONSTANT_64BIT_FLAG (60)
1256#define RIG_MODE_BIT61 CONSTANT_64BIT_FLAG (61)
1257#define RIG_MODE_BIT62 CONSTANT_64BIT_FLAG (62)
1258#define RIG_MODE_TESTS_MAX CONSTANT_64BIT_FLAG (63)
1259#endif
1260
1264#define RIG_MODE_SSB (RIG_MODE_USB|RIG_MODE_LSB)
1265
1269#define RIG_MODE_ECSS (RIG_MODE_ECSSUSB|RIG_MODE_ECSSLSB)
1270
1272#define RIG_DBLST_END 0 /* end marker in a preamp/att level list */
1273#define RIG_IS_DBLST_END(d) ((d)==0)
1275
1276
1283typedef struct freq_range_list {
1291 char *label;
1293
1295#define RIG_FRNG_END {Hz(0),Hz(0),RIG_MODE_NONE,0,0,RIG_VFO_NONE}
1296#define RIG_IS_FRNG_END(r) ((r).startf == Hz(0) && (r).endf == Hz(0))
1298
1318};
1319
1321#define RIG_TS_ANY 0
1322#define RIG_TS_END {RIG_MODE_NONE, 0}
1323#define RIG_IS_TS_END(t) ((t).modes == RIG_MODE_NONE && (t).ts == 0)
1325
1326
1353};
1355#define RIG_FLT_ANY 0
1356#define RIG_FLT_END {RIG_MODE_NONE, 0}
1357#define RIG_IS_FLT_END(f) ((f).modes == RIG_MODE_NONE)
1359
1360
1364#define RIG_CHFLAG_NONE 0
1368#define RIG_CHFLAG_SKIP (1<<0)
1372#define RIG_CHFLAG_DATA (1<<1)
1376#define RIG_CHFLAG_PSKIP (1<<2)
1377
1382struct ext_list {
1385};
1386
1388#define RIG_EXT_END {0, {.i=0}}
1389#define RIG_IS_EXT_END(x) ((x).token == 0)
1391
1399struct channel {
1422 tone_t ctcss_tone;
1423 tone_t ctcss_sql;
1424 tone_t dcs_code;
1425 tone_t dcs_sql;
1427 unsigned int flags;
1428 char channel_desc[HAMLIB_MAXCHANDESC];
1429 struct ext_list
1431};
1432
1436typedef struct channel channel_t;
1437
1444 unsigned bank_num: 1;
1445 unsigned vfo: 1;
1446 unsigned ant: 1;
1447 unsigned freq: 1;
1448 unsigned mode: 1;
1449 unsigned width: 1;
1451 unsigned tx_freq: 1;
1452 unsigned tx_mode: 1;
1453 unsigned tx_width: 1;
1455 unsigned split: 1;
1456 unsigned tx_vfo: 1;
1457 unsigned rptr_shift: 1;
1458 unsigned rptr_offs: 1;
1459 unsigned tuning_step: 1;
1460 unsigned rit: 1;
1461 unsigned xit: 1;
1464 unsigned ctcss_tone: 1;
1465 unsigned ctcss_sql: 1;
1466 unsigned dcs_code: 1;
1467 unsigned dcs_sql: 1;
1468 unsigned scan_group: 1;
1469 unsigned flags: 1;
1470 unsigned channel_desc: 1;
1471 unsigned ext_levels: 1;
1472};
1473
1478
1479
1490typedef enum {
1500
1501
1517 int endc;
1521};
1522
1524#define RIG_CHAN_END {0,0,RIG_MTYPE_NONE}
1525#define RIG_IS_CHAN_END(c) ((c).type == RIG_MTYPE_NONE)
1527
1531#define RIG_MEM_CAPS_ALL -1
1532
1536typedef struct chan_list chan_t;
1537
1538
1550struct gran {
1554};
1555
1559typedef struct gran gran_t;
1560
1561
1566 int size;
1567 struct {
1568 int raw;
1569 int val;
1570 } table[HAMLIB_MAX_CAL_LENGTH];
1571};
1572
1585typedef struct cal_table cal_table_t;
1586
1588#define EMPTY_STR_CAL { 0, { { 0, 0 }, } }
1590
1591
1596 int size;
1597 struct {
1598 int raw;
1599 float val;
1600 } table[HAMLIB_MAX_CAL_LENGTH];
1601};
1602
1616
1618#define EMPTY_FLOAT_CAL { 0, { { 0, 0f }, } }
1619
1620typedef int (* chan_cb_t)(RIG *, channel_t **, int, const chan_t *, rig_ptr_t);
1621typedef int (* confval_cb_t)(RIG *,
1622 const struct confparams *,
1623 value_t *,
1624 rig_ptr_t);
1626
1631{
1632 int id;
1633 char *name;
1634};
1635
1640 RIG_SPECTRUM_MODE_NONE = 0,
1645};
1646
1651{
1652 int id;
1653 char *name;
1654};
1655
1668{
1669 int id;
1685 unsigned char *spectrum_data;
1686};
1687
1708#define RIG_MODEL(arg) .rig_model=arg,.macro_name=#arg
1709struct rig_caps {
1710 rig_model_t rig_model;
1711 const char *model_name;
1712 const char *mfg_name;
1713 const char *version;
1714 const char *copyright;
1715 enum rig_status_e status;
1717 int rig_type;
1718 ptt_type_t ptt_type;
1719 dcd_type_t dcd_type;
1720 rig_port_t port_type;
1722 int serial_rate_min;
1723 int serial_rate_max;
1724 int serial_data_bits;
1725 int serial_stop_bits;
1726 enum serial_parity_e serial_parity;
1727 enum serial_handshake_e serial_handshake;
1729 int write_delay;
1730 int post_write_delay;
1731 int timeout;
1732 int retry;
1734 setting_t has_get_func;
1735 setting_t has_set_func;
1736 setting_t has_get_level;
1737 setting_t has_set_level;
1738 setting_t has_get_parm;
1739 setting_t has_set_parm;
1741 gran_t level_gran[RIG_SETTING_MAX];
1742 gran_t parm_gran[RIG_SETTING_MAX];
1744 const struct confparams *extparms;
1745 const struct confparams *extlevels;
1746 const struct confparams *extfuncs;
1747 int *ext_tokens;
1749 tone_t *ctcss_list;
1750 tone_t *dcs_list;
1752 int preamp[HAMLIB_MAXDBLSTSIZ];
1753 int attenuator[HAMLIB_MAXDBLSTSIZ];
1754 shortfreq_t max_rit;
1755 shortfreq_t max_xit;
1756 shortfreq_t max_ifshift;
1758 int agc_level_count;
1759 enum agc_level_e agc_levels[HAMLIB_MAX_AGC_LEVELS];
1761 ann_t announces;
1763 vfo_op_t vfo_ops;
1764 scan_t scan_ops;
1765 int targetable_vfo;
1766 int transceive;
1768 int bank_qty;
1769 int chan_desc_sz;
1771 chan_t chan_list[HAMLIB_CHANLSTSIZ];
1773 // As of 2020-02-12 we know of 5 models from Icom USA, EUR, ITR, TPE, KOR for the IC-9700
1774 // So we currently have 5 ranges we need to deal with
1775 // The backend for the model should fill in the label field to explain what model it is
1776 // The the IC-9700 in ic7300.c for an example
1777 freq_range_t rx_range_list1[HAMLIB_FRQRANGESIZ];
1778 freq_range_t tx_range_list1[HAMLIB_FRQRANGESIZ];
1779 freq_range_t rx_range_list2[HAMLIB_FRQRANGESIZ];
1780 freq_range_t tx_range_list2[HAMLIB_FRQRANGESIZ];
1781 freq_range_t rx_range_list3[HAMLIB_FRQRANGESIZ];
1782 freq_range_t tx_range_list3[HAMLIB_FRQRANGESIZ];
1783 freq_range_t rx_range_list4[HAMLIB_FRQRANGESIZ];
1784 freq_range_t tx_range_list4[HAMLIB_FRQRANGESIZ];
1785 freq_range_t rx_range_list5[HAMLIB_FRQRANGESIZ];
1786 freq_range_t tx_range_list5[HAMLIB_FRQRANGESIZ];
1788 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
1789 struct filter_list filters[HAMLIB_FLTLSTSIZ];
1791 cal_table_t str_cal;
1792 cal_table_float_t swr_cal;
1793 cal_table_float_t alc_cal;
1794 cal_table_float_t rfpower_meter_cal;
1795 cal_table_float_t comp_meter_cal;
1796 cal_table_float_t vd_meter_cal;
1797 cal_table_float_t id_meter_cal;
1799 struct rig_spectrum_scope spectrum_scopes[HAMLIB_MAX_SPECTRUM_SCOPES];
1800 enum rig_spectrum_mode_e spectrum_modes[HAMLIB_MAX_SPECTRUM_MODES];
1801 freq_t spectrum_spans[HAMLIB_MAX_SPECTRUM_SPANS];
1802 struct rig_spectrum_avg_mode spectrum_avg_modes[HAMLIB_MAX_SPECTRUM_AVG_MODES];
1803 int spectrum_attenuator[HAMLIB_MAXDBLSTSIZ];
1805 const struct confparams *cfgparams;
1806 const rig_ptr_t priv;
1808 /*
1809 * Rig API
1810 *
1811 */
1812
1813 int (*rig_init)(RIG *rig);
1814 int (*rig_cleanup)(RIG *rig);
1815 int (*rig_open)(RIG *rig);
1816 int (*rig_close)(RIG *rig);
1817
1818 /*
1819 * General API commands, from most primitive to least.. :()
1820 * List Set/Get functions pairs
1821 */
1822
1823 int (*set_freq)(RIG *rig, vfo_t vfo, freq_t freq);
1824 int (*get_freq)(RIG *rig, vfo_t vfo, freq_t *freq);
1825
1826 int (*set_mode)(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
1827 int (*get_mode)(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
1828
1829 int (*set_vfo)(RIG *rig, vfo_t vfo);
1830 int (*get_vfo)(RIG *rig, vfo_t *vfo);
1831
1832 int (*set_ptt)(RIG *rig, vfo_t vfo, ptt_t ptt);
1833 int (*get_ptt)(RIG *rig, vfo_t vfo, ptt_t *ptt);
1834
1835 int (*get_dcd)(RIG *rig, vfo_t vfo, dcd_t *dcd);
1836
1837 int (*set_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift);
1838 int (*get_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift);
1839
1840 int (*set_rptr_offs)(RIG *rig, vfo_t vfo, shortfreq_t offs);
1841 int (*get_rptr_offs)(RIG *rig, vfo_t vfo, shortfreq_t *offs);
1842
1843 int (*set_split_freq)(RIG *rig, vfo_t vfo, freq_t tx_freq);
1844 int (*get_split_freq)(RIG *rig, vfo_t vfo, freq_t *tx_freq);
1845
1846 int (*set_split_mode)(RIG *rig,
1847 vfo_t vfo,
1848 rmode_t tx_mode,
1849 pbwidth_t tx_width);
1850 int (*get_split_mode)(RIG *rig,
1851 vfo_t vfo,
1852 rmode_t *tx_mode,
1853 pbwidth_t *tx_width);
1854
1855 int (*set_split_freq_mode)(RIG *rig,
1856 vfo_t vfo,
1857 freq_t tx_freq,
1858 rmode_t tx_mode,
1859 pbwidth_t tx_width);
1860 int (*get_split_freq_mode)(RIG *rig,
1861 vfo_t vfo,
1862 freq_t *tx_freq,
1863 rmode_t *tx_mode,
1864 pbwidth_t *tx_width);
1865
1866 int (*set_split_vfo)(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
1867 int (*get_split_vfo)(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo);
1868
1869 int (*set_rit)(RIG *rig, vfo_t vfo, shortfreq_t rit);
1870 int (*get_rit)(RIG *rig, vfo_t vfo, shortfreq_t *rit);
1871
1872 int (*set_xit)(RIG *rig, vfo_t vfo, shortfreq_t xit);
1873 int (*get_xit)(RIG *rig, vfo_t vfo, shortfreq_t *xit);
1874
1875 int (*set_ts)(RIG *rig, vfo_t vfo, shortfreq_t ts);
1876 int (*get_ts)(RIG *rig, vfo_t vfo, shortfreq_t *ts);
1877
1878 int (*set_dcs_code)(RIG *rig, vfo_t vfo, tone_t code);
1879 int (*get_dcs_code)(RIG *rig, vfo_t vfo, tone_t *code);
1880
1881 int (*set_tone)(RIG *rig, vfo_t vfo, tone_t tone);
1882 int (*get_tone)(RIG *rig, vfo_t vfo, tone_t *tone);
1883
1884 int (*set_ctcss_tone)(RIG *rig, vfo_t vfo, tone_t tone);
1885 int (*get_ctcss_tone)(RIG *rig, vfo_t vfo, tone_t *tone);
1886
1887 int (*set_dcs_sql)(RIG *rig, vfo_t vfo, tone_t code);
1888 int (*get_dcs_sql)(RIG *rig, vfo_t vfo, tone_t *code);
1889
1890 int (*set_tone_sql)(RIG *rig, vfo_t vfo, tone_t tone);
1891 int (*get_tone_sql)(RIG *rig, vfo_t vfo, tone_t *tone);
1892
1893 int (*set_ctcss_sql)(RIG *rig, vfo_t vfo, tone_t tone);
1894 int (*get_ctcss_sql)(RIG *rig, vfo_t vfo, tone_t *tone);
1895
1896 int (*power2mW)(RIG *rig,
1897 unsigned int *mwpower,
1898 float power,
1899 freq_t freq,
1900 rmode_t mode);
1901 int (*mW2power)(RIG *rig,
1902 float *power,
1903 unsigned int mwpower,
1904 freq_t freq,
1905 rmode_t mode);
1906
1907 int (*set_powerstat)(RIG *rig, powerstat_t status);
1908 int (*get_powerstat)(RIG *rig, powerstat_t *status);
1909
1910 int (*reset)(RIG *rig, reset_t reset);
1911
1912 int (*set_ant)(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
1913 int (*get_ant)(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx);
1914
1915 int (*set_level)(RIG *rig, vfo_t vfo, setting_t level, value_t val);
1916 int (*get_level)(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
1917
1918 int (*set_func)(RIG *rig, vfo_t vfo, setting_t func, int status);
1919 int (*get_func)(RIG *rig, vfo_t vfo, setting_t func, int *status);
1920
1921 int (*set_parm)(RIG *rig, setting_t parm, value_t val);
1922 int (*get_parm)(RIG *rig, setting_t parm, value_t *val);
1923
1924 int (*set_ext_level)(RIG *rig, vfo_t vfo, token_t token, value_t val);
1925 int (*get_ext_level)(RIG *rig, vfo_t vfo, token_t token, value_t *val);
1926
1927 int (*set_ext_func)(RIG *rig, vfo_t vfo, token_t token, int status);
1928 int (*get_ext_func)(RIG *rig, vfo_t vfo, token_t token, int *status);
1929
1930 int (*set_ext_parm)(RIG *rig, token_t token, value_t val);
1931 int (*get_ext_parm)(RIG *rig, token_t token, value_t *val);
1932
1933 int (*set_conf)(RIG *rig, token_t token, const char *val);
1934 int (*get_conf)(RIG *rig, token_t token, char *val);
1935
1936 int (*send_dtmf)(RIG *rig, vfo_t vfo, const char *digits);
1937 int (*recv_dtmf)(RIG *rig, vfo_t vfo, char *digits, int *length);
1938
1939 int (*send_morse)(RIG *rig, vfo_t vfo, const char *msg);
1940 int (*stop_morse)(RIG *rig, vfo_t vfo);
1941 int (*wait_morse)(RIG *rig, vfo_t vfo);
1942
1943 int (*send_voice_mem)(RIG *rig, vfo_t vfo, int ch);
1944
1945 int (*set_bank)(RIG *rig, vfo_t vfo, int bank);
1946
1947 int (*set_mem)(RIG *rig, vfo_t vfo, int ch);
1948 int (*get_mem)(RIG *rig, vfo_t vfo, int *ch);
1949
1950 int (*vfo_op)(RIG *rig, vfo_t vfo, vfo_op_t op);
1951
1952 int (*scan)(RIG *rig, vfo_t vfo, scan_t scan, int ch);
1953
1954 int (*set_trn)(RIG *rig, int trn);
1955 int (*get_trn)(RIG *rig, int *trn);
1956
1957 int (*decode_event)(RIG *rig);
1958
1959 int (*set_channel)(RIG *rig, vfo_t vfo, const channel_t *chan);
1960 int (*get_channel)(RIG *rig, vfo_t vfo, channel_t *chan, int read_only);
1961
1962 const char * (*get_info)(RIG *rig);
1963
1964 int (*set_chan_all_cb)(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, rig_ptr_t);
1965 int (*get_chan_all_cb)(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, rig_ptr_t);
1966
1967 int (*set_mem_all_cb)(RIG *rig,
1968 chan_cb_t chan_cb,
1969 confval_cb_t parm_cb,
1970 rig_ptr_t);
1971 int (*get_mem_all_cb)(RIG *rig,
1972 chan_cb_t chan_cb,
1973 confval_cb_t parm_cb,
1974 rig_ptr_t);
1975
1976 int (*set_vfo_opt)(RIG *rig, int status); // only for Net Rigctl device
1977 int (*rig_get_vfo_info) (RIG *rig,
1978 vfo_t vfo,
1979 freq_t *freq,
1980 rmode_t *mode,
1981 pbwidth_t *width,
1982 split_t *split);
1983 int(*set_clock) (RIG *rig, int year, int month, int day, int hour, int min, int sec, double msec, int utc_offset);
1984 int(*get_clock) (RIG *rig, int *year, int *month, int *day, int *hour, int *min, int *sec, double *msec, int *utc_offset);
1985
1986 const char *clone_combo_set;
1987 const char *clone_combo_get;
1988 const char *macro_name;
1989};
1991
1997// all functions enumerated for rig_get_function_ptr
1998enum rig_function_e {
1999 RIG_FUNCTION_INIT,
2000 RIG_FUNCTION_CLEANUP,
2001 RIG_FUNCTION_OPEN,
2002 RIG_FUNCTION_CLOSE,
2003 RIG_FUNCTION_SET_FREQ,
2004 RIG_FUNCTION_GET_FREQ,
2005 RIG_FUNCTION_SET_MODE,
2006 RIG_FUNCTION_GET_MODE,
2007 RIG_FUNCTION_SET_VFO,
2008 RIG_FUNCTION_GET_VFO,
2009 RIG_FUNCTION_SET_PTT,
2010 RIG_FUNCTION_GET_PTT,
2011 RIG_FUNCTION_GET_DCD,
2012 RIG_FUNCTION_SET_RPTR_SHIFT,
2013 RIG_FUNCTION_GET_RPTR_SHIFT,
2014 RIG_FUNCTION_SET_RPTR_OFFS,
2015 RIG_FUNCTION_GET_RPTR_OFFS,
2016 RIG_FUNCTION_SET_SPLIT_FREQ,
2017 RIG_FUNCTION_GET_SPLIT_FREQ,
2018 RIG_FUNCTION_SET_SPLIT_MODE,
2019 RIG_FUNCTION_SET_SPLIT_FREQ_MODE,
2020 RIG_FUNCTION_GET_SPLIT_FREQ_MODE,
2021 RIG_FUNCTION_SET_SPLIT_VFO,
2022 RIG_FUNCTION_GET_SPLIT_VFO,
2023 RIG_FUNCTION_SET_RIT,
2024 RIG_FUNCTION_GET_RIT,
2025 RIG_FUNCTION_SET_XIT,
2026 RIG_FUNCTION_GET_XIT,
2027 RIG_FUNCTION_SET_TS,
2028 RIG_FUNCTION_GET_TS,
2029 RIG_FUNCTION_SET_DCS_CODE,
2030 RIG_FUNCTION_GET_DCS_CODE,
2031 RIG_FUNCTION_SET_TONE,
2032 RIG_FUNCTION_GET_TONE,
2033 RIG_FUNCTION_SET_CTCSS_TONE,
2034 RIG_FUNCTION_GET_CTCSS_TONE,
2035 RIG_FUNCTION_SET_DCS_SQL,
2036 RIG_FUNCTION_GET_DCS_SQL,
2037 RIG_FUNCTION_SET_TONE_SQL,
2038 RIG_FUNCTION_GET_TONE_SQL,
2039 RIG_FUNCTION_SET_CTCSS_SQL,
2040 RIG_FUNCTION_GET_CTCSS_SQL,
2041 RIG_FUNCTION_POWER2MW,
2042 RIG_FUNCTION_MW2POWER,
2043 RIG_FUNCTION_SET_POWERSTAT,
2044 RIG_FUNCTION_GET_POWERSTAT,
2045 RIG_FUNCTION_RESET,
2046 RIG_FUNCTION_SET_ANT,
2047 RIG_FUNCTION_GET_ANT,
2048 RIG_FUNCTION_SET_LEVEL,
2049 RIG_FUNCTION_GET_LEVEL,
2050 RIG_FUNCTION_SET_FUNC,
2051 RIG_FUNCTION_GET_FUNC,
2052 RIG_FUNCTION_SET_PARM,
2053 RIG_FUNCTION_GET_PARM,
2054 RIG_FUNCTION_SET_EXT_LEVEL,
2055 RIG_FUNCTION_GET_EXT_LEVEL,
2056 RIG_FUNCTION_SET_EXT_FUNC,
2057 RIG_FUNCTION_GET_EXT_FUNC,
2058 RIG_FUNCTION_SET_EXT_PARM,
2059 RIG_FUNCTION_GET_EXT_PARM,
2060 RIG_FUNCTION_SET_CONF,
2061 RIG_FUNCTION_GET_CONF,
2062 RIG_FUNCTION_SEND_DTMF,
2063 RIG_FUNCTION_SEND_MORSE,
2064 RIG_FUNCTION_STOP_MORSE,
2065 RIG_FUNCTION_WAIT_MORSE,
2066 RIG_FUNCTION_SET_BANK,
2067 RIG_FUNCTION_SET_MEM,
2068 RIG_FUNCTION_GET_MEM,
2069 RIG_FUNCTION_VFO_OP,
2070 RIG_FUNCTION_SCAN,
2071 RIG_FUNCTION_SET_TRN,
2072 RIG_FUNCTION_GET_TRN,
2073 RIG_FUNCTION_DECODE_EVENT,
2074 RIG_FUNCTION_SET_CHANNEL,
2075 RIG_FUNCTION_GET_CHANNEL,
2076 RIG_FUNCTION_GET_INFO,
2077 RIG_FUNCTION_SET_CHAN_ALL_CB,
2078 RIG_FUNCTION_GET_CHAN_ALL_CB,
2079 RIG_FUNCTION_SET_MEM_ALL_CB,
2080 RIG_FUNCTION_GET_MEM_ALL_CB,
2081 RIG_FUNCTION_SET_VFO_OPT,
2082};
2083
2089extern HAMLIB_EXPORT (void *) rig_get_function_ptr(rig_model_t rig_model, enum rig_function_e rig_function);
2090
2096// values enumerated for rig->caps values
2097enum rig_caps_int_e {
2098 RIG_CAPS_TARGETABLE_VFO,
2099 RIG_CAPS_RIG_MODEL,
2100 RIG_CAPS_PORT_TYPE,
2101 RIG_CAPS_PTT_TYPE,
2102 RIG_CAPS_HAS_GET_LEVEL
2103};
2104
2105enum rig_caps_cptr_e {
2106 RIG_CAPS_VERSION_CPTR,
2107 RIG_CAPS_MFG_NAME_CPTR,
2108 RIG_CAPS_MODEL_NAME_CPTR,
2109 RIG_CAPS_STATUS_CPTR
2110};
2111
2117extern HAMLIB_EXPORT (long long) rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps);
2118
2124extern HAMLIB_EXPORT (const char *) rig_get_caps_cptr(rig_model_t rig_model, enum rig_caps_cptr_e rig_caps);
2125
2132typedef struct hamlib_port {
2133 union {
2134 rig_port_t rig;
2135 ptt_type_t ptt;
2136 dcd_type_t dcd;
2137 } type;
2138
2139 int fd;
2140 void *handle;
2142 int write_delay;
2143 int post_write_delay;
2145 struct {
2146 int tv_sec, tv_usec;
2147 } post_write_date;
2149 int timeout;
2150 short retry;
2151 short flushx;
2153 char pathname[HAMLIB_FILPATHLEN];
2155 union {
2156 struct {
2157 int rate;
2158 int data_bits;
2159 int stop_bits;
2160 enum serial_parity_e parity;
2161 enum serial_handshake_e handshake;
2162 enum serial_control_state_e rts_state;
2163 enum serial_control_state_e dtr_state;
2164 } serial;
2166 struct {
2167 int pin;
2168 } parallel;
2170 struct {
2171 int ptt_bitnum;
2172 } cm108;
2174 struct {
2175 int vid;
2176 int pid;
2177 int conf;
2178 int iface;
2179 int alt;
2180 char *vendor_name;
2181 char *product;
2182 } usb;
2184 struct {
2185 int on_value;
2186 int value;
2187 } gpio;
2188 } parm;
2189 int client_port;
2190 RIG *rig;
2191} hamlib_port_t;
2193
2194#if !defined(__APPLE__) || !defined(__cplusplus)
2195typedef hamlib_port_t port_t;
2196#endif
2197
2198#define HAMLIB_ELAPSED_GET 0
2199#define HAMLIB_ELAPSED_SET 1
2200#define HAMLIB_ELAPSED_INVALIDATE 2
2201
2202#define HAMLIB_CACHE_ALWAYS -1 /*< value to set cache timeout to always use cache */
2203
2204typedef enum {
2205 HAMLIB_CACHE_ALL, // to set all cache timeouts at once
2206 HAMLIB_CACHE_VFO,
2207 HAMLIB_CACHE_FREQ,
2208 HAMLIB_CACHE_MODE,
2209 HAMLIB_CACHE_PTT,
2210 HAMLIB_CACHE_SPLIT,
2211 HAMLIB_CACHE_WIDTH
2212} hamlib_cache_t;
2213
2214typedef enum {
2215 TWIDDLE_OFF,
2216 TWIDDLE_ON
2217} twiddle_state_t;
2218
2224struct rig_cache {
2225 int timeout_ms; // the cache timeout for invalidating itself
2226 vfo_t vfo;
2227 //freq_t freq; // to be deprecated in 4.1 when full Main/Sub/A/B caching is implemented in 4.1
2228 // other abstraction here is based on dual vfo rigs and mapped to all others
2229 // So we have four possible states of rig
2230 // MainA, MainB, SubA, SubB
2231 // Main is the Main VFO and Sub is for the 2nd VFO
2232 // Most rigs have MainA and MainB
2233 // Dual VFO rigs can have SubA and SubB too
2234 // For dual VFO rigs simplex operations are all done on MainA/MainB -- ergo this abstraction
2235 freq_t freqCurr; // Other VFO
2236 freq_t freqOther; // Other VFO
2237 freq_t freqMainA; // VFO_A, VFO_MAIN, and VFO_MAINA
2238 freq_t freqMainB; // VFO_B, VFO_SUB, and VFO_MAINB
2239 freq_t freqMainC; // VFO_C, VFO_MAINC
2240 freq_t freqSubA; // VFO_SUBA -- only for rigs with dual Sub VFOs
2241 freq_t freqSubB; // VFO_SUBB -- only for rigs with dual Sub VFOs
2242 freq_t freqSubC; // VFO_SUBC -- only for rigs with 3 Sub VFOs
2243 freq_t freqMem; // VFO_MEM -- last MEM channel
2244 rmode_t modeCurr;
2245 rmode_t modeOther;
2246 rmode_t modeMainA;
2247 rmode_t modeMainB;
2248 rmode_t modeMainC;
2249 rmode_t modeSubA;
2250 rmode_t modeSubB;
2251 rmode_t modeSubC;
2252 rmode_t modeMem;
2253 pbwidth_t widthCurr; // if non-zero then rig has separate width for MainA
2254 pbwidth_t widthOther; // if non-zero then rig has separate width for MainA
2255 pbwidth_t widthMainA; // if non-zero then rig has separate width for MainA
2256 pbwidth_t widthMainB; // if non-zero then rig has separate width for MainB
2257 pbwidth_t widthMainC; // if non-zero then rig has separate width for MainC
2258 pbwidth_t widthSubA; // if non-zero then rig has separate width for SubA
2259 pbwidth_t widthSubB; // if non-zero then rig has separate width for SubB
2260 pbwidth_t widthSubC; // if non-zero then rig has separate width for SubC
2261 pbwidth_t widthMem; // if non-zero then rig has separate width for Mem
2262 ptt_t ptt;
2263 split_t split;
2264 vfo_t split_vfo; // split caches two values
2265 struct timespec time_freqCurr;
2266 struct timespec time_freqOther;
2267 struct timespec time_freqMainA;
2268 struct timespec time_freqMainB;
2269 struct timespec time_freqMainC;
2270 struct timespec time_freqSubA;
2271 struct timespec time_freqSubB;
2272 struct timespec time_freqSubC;
2273 struct timespec time_freqMem;
2274 struct timespec time_vfo;
2275 struct timespec time_modeCurr;
2276 struct timespec time_modeOther;
2277 struct timespec time_modeMainA;
2278 struct timespec time_modeMainB;
2279 struct timespec time_modeMainC;
2280 struct timespec time_modeSubA;
2281 struct timespec time_modeSubB;
2282 struct timespec time_modeSubC;
2283 struct timespec time_modeMem;
2284 struct timespec time_widthCurr;
2285 struct timespec time_widthOther;
2286 struct timespec time_widthMainA;
2287 struct timespec time_widthMainB;
2288 struct timespec time_widthMainC;
2289 struct timespec time_widthSubA;
2290 struct timespec time_widthSubB;
2291 struct timespec time_widthSubC;
2292 struct timespec time_widthMem;
2293 struct timespec time_ptt;
2294 struct timespec time_split;
2295 int satmode; // if rig is in satellite mode
2296};
2297
2298
2309struct rig_state {
2310 /*
2311 * overridable fields
2312 */
2313 hamlib_port_t rigport;
2314 hamlib_port_t pttport;
2315 hamlib_port_t dcdport;
2317 double vfo_comp;
2319 int deprecated_itu_region;
2320 freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
2321 freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
2323 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
2325 struct filter_list filters[HAMLIB_FLTLSTSIZ];
2327 cal_table_t str_cal;
2329 chan_t chan_list[HAMLIB_CHANLSTSIZ];
2331 shortfreq_t max_rit;
2332 shortfreq_t max_xit;
2333 shortfreq_t max_ifshift;
2335 ann_t announces;
2337 int preamp[HAMLIB_MAXDBLSTSIZ];
2338 int attenuator[HAMLIB_MAXDBLSTSIZ];
2340 setting_t has_get_func;
2341 setting_t has_set_func;
2342 setting_t has_get_level;
2343 setting_t has_set_level;
2344 setting_t has_get_parm;
2345 setting_t has_set_parm;
2347 gran_t level_gran[RIG_SETTING_MAX];
2348 gran_t parm_gran[RIG_SETTING_MAX];
2351 /*
2352 * non overridable fields, internal use
2353 */
2354
2355 int hold_decode;
2356 vfo_t current_vfo;
2357 int vfo_list;
2358 int comm_state;
2359 rig_ptr_t priv;
2360 rig_ptr_t obj;
2362 int transceive;
2363 int poll_interval;
2364 freq_t current_freq;
2365 rmode_t current_mode;
2366 //rmode_t current_modeB; /*!< Mode currently set VFOB */
2367 pbwidth_t current_width;
2368 vfo_t tx_vfo;
2369 rmode_t mode_list;
2370 // mode_list is used by some
2371 // so anything added to this structure must be below here
2372 int transmit;
2375 freq_t lo_freq;
2376 time_t twiddle_time;
2377 int twiddle_timeout;
2378 // uplink allows gpredict to behave better by no reading the uplink VFO
2379 int uplink;
2380 struct rig_cache cache;
2381 int vfo_opt;
2382 int auto_power_on;
2384 int auto_power_off;
2386 int auto_disable_screensaver;
2389 int ptt_share;
2390 int power_now;
2391 int power_min;
2392 int power_max;
2393 unsigned char disable_yaesu_bandselect;
2394 int twiddle_rit;
2395 int twiddle_state;
2396 vfo_t rx_vfo;
2397};
2398
2400typedef int (*vprintf_cb_t)(enum rig_debug_level_e,
2401 rig_ptr_t,
2402 const char *,
2403 va_list);
2404
2405typedef int (*freq_cb_t)(RIG *, vfo_t, freq_t, rig_ptr_t);
2406typedef int (*mode_cb_t)(RIG *, vfo_t, rmode_t, pbwidth_t, rig_ptr_t);
2407typedef int (*vfo_cb_t)(RIG *, vfo_t, rig_ptr_t);
2408typedef int (*ptt_cb_t)(RIG *, vfo_t, ptt_t, rig_ptr_t);
2409typedef int (*dcd_cb_t)(RIG *, vfo_t, dcd_t, rig_ptr_t);
2410typedef int (*pltune_cb_t)(RIG *,
2411 vfo_t, freq_t *,
2412 rmode_t *,
2413 pbwidth_t *,
2414 rig_ptr_t);
2415typedef int (*spectrum_cb_t)(RIG *,
2416 struct rig_spectrum_line *,
2417 rig_ptr_t);
2418
2420
2438struct rig_callbacks {
2439 freq_cb_t freq_event;
2440 rig_ptr_t freq_arg;
2441 mode_cb_t mode_event;
2442 rig_ptr_t mode_arg;
2443 vfo_cb_t vfo_event;
2444 rig_ptr_t vfo_arg;
2445 ptt_cb_t ptt_event;
2446 rig_ptr_t ptt_arg;
2447 dcd_cb_t dcd_event;
2448 rig_ptr_t dcd_arg;
2449 pltune_cb_t pltune;
2450 rig_ptr_t pltune_arg;
2451 spectrum_cb_t spectrum_event;
2452 rig_ptr_t spectrum_arg;
2453 /* etc.. */
2454};
2455
2456
2466struct s_rig {
2467 struct rig_caps *caps;
2468 struct rig_state state;
2469 struct rig_callbacks callbacks;
2470};
2471
2472
2473
2474/* --------------- API function prototypes -----------------*/
2475
2477
2478extern HAMLIB_EXPORT(RIG *) rig_init HAMLIB_PARAMS((rig_model_t rig_model));
2479extern HAMLIB_EXPORT(int) rig_open HAMLIB_PARAMS((RIG *rig));
2480
2481/*
2482 * General API commands, from most primitive to least.. :()
2483 * List Set/Get functions pairs
2484 */
2485
2486extern HAMLIB_EXPORT(int)
2487rig_flush(hamlib_port_t *port);
2488
2489extern HAMLIB_EXPORT(int)
2490rig_set_freq HAMLIB_PARAMS((RIG *rig,
2491 vfo_t vfo,
2492 freq_t freq));
2493extern HAMLIB_EXPORT(int)
2494rig_get_freq HAMLIB_PARAMS((RIG *rig,
2495 vfo_t vfo,
2496 freq_t *freq));
2497
2498extern HAMLIB_EXPORT(int)
2499rig_set_mode HAMLIB_PARAMS((RIG *rig,
2500 vfo_t vfo,
2501 rmode_t mode,
2502 pbwidth_t width));
2503extern HAMLIB_EXPORT(int)
2504rig_get_mode HAMLIB_PARAMS((RIG *rig,
2505 vfo_t vfo,
2506 rmode_t *mode,
2507 pbwidth_t *width));
2508
2509#if 0
2510#define rig_set_vfo(r,v) rig_set_vfo(r,v,__builtin_FUNCTION())
2511extern HAMLIB_EXPORT(int)
2512rig_set_vfo HAMLIB_PARAMS((RIG *rig,
2513 vfo_t vfo, const char *func));
2514#else
2515extern HAMLIB_EXPORT(int)
2516rig_set_vfo HAMLIB_PARAMS((RIG *rig,
2517 vfo_t vfo));
2518#endif
2519extern HAMLIB_EXPORT(int)
2520rig_get_vfo HAMLIB_PARAMS((RIG *rig,
2521 vfo_t *vfo));
2522
2523extern HAMLIB_EXPORT(int)
2524rig_get_vfo_info HAMLIB_PARAMS((RIG *rig,
2525 vfo_t vfo,
2526 freq_t *freq,
2527 rmode_t *mode,
2528 pbwidth_t *width,
2529 split_t *split,
2530 int *satmode));
2531
2532extern HAMLIB_EXPORT(int)
2533rig_get_vfo_list HAMLIB_PARAMS((RIG *rig, char *buf, int buflen));
2534
2535extern HAMLIB_EXPORT(int)
2536netrigctl_get_vfo_mode HAMLIB_PARAMS((RIG *rig));
2537
2538extern HAMLIB_EXPORT(int)
2539rig_set_ptt HAMLIB_PARAMS((RIG *rig,
2540 vfo_t vfo,
2541 ptt_t ptt));
2542extern HAMLIB_EXPORT(int)
2543rig_get_ptt HAMLIB_PARAMS((RIG *rig,
2544 vfo_t vfo,
2545 ptt_t *ptt));
2546
2547extern HAMLIB_EXPORT(int)
2548rig_get_dcd HAMLIB_PARAMS((RIG *rig,
2549 vfo_t vfo,
2550 dcd_t *dcd));
2551
2552extern HAMLIB_EXPORT(int)
2553rig_set_rptr_shift HAMLIB_PARAMS((RIG *rig,
2554 vfo_t vfo,
2555 rptr_shift_t rptr_shift));
2556extern HAMLIB_EXPORT(int)
2557rig_get_rptr_shift HAMLIB_PARAMS((RIG *rig,
2558 vfo_t vfo,
2559 rptr_shift_t *rptr_shift));
2560
2561extern HAMLIB_EXPORT(int)
2562rig_set_rptr_offs HAMLIB_PARAMS((RIG *rig,
2563 vfo_t vfo,
2564 shortfreq_t rptr_offs));
2565extern HAMLIB_EXPORT(int)
2566rig_get_rptr_offs HAMLIB_PARAMS((RIG *rig,
2567 vfo_t vfo,
2568 shortfreq_t *rptr_offs));
2569
2570extern HAMLIB_EXPORT(int)
2571rig_set_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2572 vfo_t vfo,
2573 tone_t tone));
2574extern HAMLIB_EXPORT(int)
2575rig_get_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2576 vfo_t vfo,
2577 tone_t *tone));
2578
2579extern HAMLIB_EXPORT(int)
2580rig_set_dcs_code HAMLIB_PARAMS((RIG *rig,
2581 vfo_t vfo,
2582 tone_t code));
2583extern HAMLIB_EXPORT(int)
2584rig_get_dcs_code HAMLIB_PARAMS((RIG *rig,
2585 vfo_t vfo,
2586 tone_t *code));
2587
2588extern HAMLIB_EXPORT(int)
2589rig_set_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2590 vfo_t vfo,
2591 tone_t tone));
2592extern HAMLIB_EXPORT(int)
2593rig_get_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2594 vfo_t vfo,
2595 tone_t *tone));
2596
2597extern HAMLIB_EXPORT(int)
2598rig_set_dcs_sql HAMLIB_PARAMS((RIG *rig,
2599 vfo_t vfo,
2600 tone_t code));
2601extern HAMLIB_EXPORT(int)
2602rig_get_dcs_sql HAMLIB_PARAMS((RIG *rig,
2603 vfo_t vfo,
2604 tone_t *code));
2605
2606extern HAMLIB_EXPORT(int)
2607rig_set_split_freq HAMLIB_PARAMS((RIG *rig,
2608 vfo_t vfo,
2609 freq_t tx_freq));
2610extern HAMLIB_EXPORT(int)
2611rig_get_split_freq HAMLIB_PARAMS((RIG *rig,
2612 vfo_t vfo,
2613 freq_t *tx_freq));
2614
2615extern HAMLIB_EXPORT(int)
2616rig_set_split_mode HAMLIB_PARAMS((RIG *rig,
2617 vfo_t vfo,
2618 rmode_t tx_mode,
2619 pbwidth_t tx_width));
2620extern HAMLIB_EXPORT(int)
2621rig_get_split_mode HAMLIB_PARAMS((RIG *rig,
2622 vfo_t vfo,
2623 rmode_t *tx_mode,
2624 pbwidth_t *tx_width));
2625
2626extern HAMLIB_EXPORT(int)
2627rig_set_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2628 vfo_t vfo,
2629 freq_t tx_freq,
2630 rmode_t tx_mode,
2631 pbwidth_t tx_width));
2632extern HAMLIB_EXPORT(int)
2633rig_get_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2634 vfo_t vfo,
2635 freq_t *tx_freq,
2636 rmode_t *tx_mode,
2637 pbwidth_t *tx_width));
2638
2639extern HAMLIB_EXPORT(int)
2640rig_set_split_vfo HAMLIB_PARAMS((RIG *,
2641 vfo_t rx_vfo,
2642 split_t split,
2643 vfo_t tx_vfo));
2644extern HAMLIB_EXPORT(int)
2645rig_get_split_vfo HAMLIB_PARAMS((RIG *,
2646 vfo_t rx_vfo,
2647 split_t *split,
2648 vfo_t *tx_vfo));
2649
2650#define rig_set_split(r,v,s) rig_set_split_vfo((r),(v),(s),RIG_VFO_CURR)
2651#define rig_get_split(r,v,s) ({ vfo_t _tx_vfo; rig_get_split_vfo((r),(v),(s),&_tx_vfo); })
2652
2653extern HAMLIB_EXPORT(int)
2654rig_set_rit HAMLIB_PARAMS((RIG *rig,
2655 vfo_t vfo,
2656 shortfreq_t rit));
2657extern HAMLIB_EXPORT(int)
2658rig_get_rit HAMLIB_PARAMS((RIG *rig,
2659 vfo_t vfo,
2660 shortfreq_t *rit));
2661
2662extern HAMLIB_EXPORT(int)
2663rig_set_xit HAMLIB_PARAMS((RIG *rig,
2664 vfo_t vfo,
2665 shortfreq_t xit));
2666extern HAMLIB_EXPORT(int)
2667rig_get_xit HAMLIB_PARAMS((RIG *rig,
2668 vfo_t vfo,
2669 shortfreq_t *xit));
2670
2671extern HAMLIB_EXPORT(int)
2672rig_set_ts HAMLIB_PARAMS((RIG *rig,
2673 vfo_t vfo,
2674 shortfreq_t ts));
2675extern HAMLIB_EXPORT(int)
2676rig_get_ts HAMLIB_PARAMS((RIG *rig,
2677 vfo_t vfo,
2678 shortfreq_t *ts));
2679
2680extern HAMLIB_EXPORT(int)
2681rig_power2mW HAMLIB_PARAMS((RIG *rig,
2682 unsigned int *mwpower,
2683 float power,
2684 freq_t freq,
2685 rmode_t mode));
2686extern HAMLIB_EXPORT(int)
2687rig_mW2power HAMLIB_PARAMS((RIG *rig,
2688 float *power,
2689 unsigned int mwpower,
2690 freq_t freq,
2691 rmode_t mode));
2692
2693extern HAMLIB_EXPORT(shortfreq_t)
2694rig_get_resolution HAMLIB_PARAMS((RIG *rig,
2695 rmode_t mode));
2696
2697extern HAMLIB_EXPORT(int)
2698rig_set_level HAMLIB_PARAMS((RIG *rig,
2699 vfo_t vfo,
2700 setting_t level,
2701 value_t val));
2702extern HAMLIB_EXPORT(int)
2703rig_get_level HAMLIB_PARAMS((RIG *rig,
2704 vfo_t vfo,
2705 setting_t level,
2706 value_t *val));
2707
2708#define rig_get_strength(r,v,s) rig_get_level((r),(v),RIG_LEVEL_STRENGTH, (value_t*)(s))
2709
2710extern HAMLIB_EXPORT(int)
2711rig_set_parm HAMLIB_PARAMS((RIG *rig,
2712 setting_t parm,
2713 value_t val));
2714extern HAMLIB_EXPORT(int)
2715rig_get_parm HAMLIB_PARAMS((RIG *rig,
2716 setting_t parm,
2717 value_t *val));
2718
2719extern HAMLIB_EXPORT(int)
2720rig_set_conf HAMLIB_PARAMS((RIG *rig,
2721 token_t token,
2722 const char *val));
2723extern HAMLIB_EXPORT(int)
2724rig_get_conf HAMLIB_PARAMS((RIG *rig,
2725 token_t token,
2726 char *val));
2727
2728extern HAMLIB_EXPORT(int)
2729rig_set_powerstat HAMLIB_PARAMS((RIG *rig,
2730 powerstat_t status));
2731extern HAMLIB_EXPORT(int)
2732rig_get_powerstat HAMLIB_PARAMS((RIG *rig,
2733 powerstat_t *status));
2734
2735extern HAMLIB_EXPORT(int)
2736rig_reset HAMLIB_PARAMS((RIG *rig,
2737 reset_t reset)); /* dangerous! */
2738
2739extern HAMLIB_EXPORT(int)
2740rig_set_ext_level HAMLIB_PARAMS((RIG *rig,
2741 vfo_t vfo,
2742 token_t token,
2743 value_t val));
2744extern HAMLIB_EXPORT(int)
2745rig_get_ext_level HAMLIB_PARAMS((RIG *rig,
2746 vfo_t vfo,
2747 token_t token,
2748 value_t *val));
2749
2750extern HAMLIB_EXPORT(int)
2751rig_set_ext_func HAMLIB_PARAMS((RIG *rig,
2752 vfo_t vfo,
2753 token_t token,
2754 int status));
2755extern HAMLIB_EXPORT(int)
2756rig_get_ext_func HAMLIB_PARAMS((RIG *rig,
2757 vfo_t vfo,
2758 token_t token,
2759 int *status));
2760
2761extern HAMLIB_EXPORT(int)
2762rig_set_ext_parm HAMLIB_PARAMS((RIG *rig,
2763 token_t token,
2764 value_t val));
2765extern HAMLIB_EXPORT(int)
2766rig_get_ext_parm HAMLIB_PARAMS((RIG *rig,
2767 token_t token,
2768 value_t *val));
2769
2770extern HAMLIB_EXPORT(int)
2771rig_ext_func_foreach HAMLIB_PARAMS((RIG *rig,
2772 int (*cfunc)(RIG *,
2773 const struct confparams *,
2774 rig_ptr_t),
2775 rig_ptr_t data));
2776extern HAMLIB_EXPORT(int)
2777rig_ext_level_foreach HAMLIB_PARAMS((RIG *rig,
2778 int (*cfunc)(RIG *,
2779 const struct confparams *,
2780 rig_ptr_t),
2781 rig_ptr_t data));
2782extern HAMLIB_EXPORT(int)
2783rig_ext_parm_foreach HAMLIB_PARAMS((RIG *rig,
2784 int (*cfunc)(RIG *,
2785 const struct confparams *,
2786 rig_ptr_t),
2787 rig_ptr_t data));
2788
2789extern HAMLIB_EXPORT(const struct confparams *)
2790rig_ext_lookup HAMLIB_PARAMS((RIG *rig,
2791 const char *name));
2792
2793extern HAMLIB_EXPORT(const struct confparams *)
2794rig_ext_lookup_tok HAMLIB_PARAMS((RIG *rig,
2795 token_t token));
2796extern HAMLIB_EXPORT(token_t)
2797rig_ext_token_lookup HAMLIB_PARAMS((RIG *rig,
2798 const char *name));
2799
2800
2801extern HAMLIB_EXPORT(int)
2802rig_token_foreach HAMLIB_PARAMS((RIG *rig,
2803 int (*cfunc)(const struct confparams *,
2804 rig_ptr_t),
2805 rig_ptr_t data));
2806
2807extern HAMLIB_EXPORT(const struct confparams *)
2808rig_confparam_lookup HAMLIB_PARAMS((RIG *rig,
2809 const char *name));
2810extern HAMLIB_EXPORT(token_t)
2811rig_token_lookup HAMLIB_PARAMS((RIG *rig,
2812 const char *name));
2813
2814extern HAMLIB_EXPORT(int)
2815rig_close HAMLIB_PARAMS((RIG *rig));
2816
2817extern HAMLIB_EXPORT(int)
2818rig_cleanup HAMLIB_PARAMS((RIG *rig));
2819
2820extern HAMLIB_EXPORT(int)
2821rig_set_ant HAMLIB_PARAMS((RIG *rig,
2822 vfo_t vfo,
2823 ant_t ant, /* antenna */
2824 value_t option)); /* optional ant info */
2825extern HAMLIB_EXPORT(int)
2826rig_get_ant HAMLIB_PARAMS((RIG *rig,
2827 vfo_t vfo,
2828 ant_t ant,
2829 value_t *option,
2830 ant_t *ant_curr,
2831 ant_t *ant_tx,
2832 ant_t *ant_rx));
2833
2834extern HAMLIB_EXPORT(setting_t)
2835rig_has_get_level HAMLIB_PARAMS((RIG *rig,
2836 setting_t level));
2837extern HAMLIB_EXPORT(setting_t)
2838rig_has_set_level HAMLIB_PARAMS((RIG *rig,
2839 setting_t level));
2840
2841extern HAMLIB_EXPORT(setting_t)
2842rig_has_get_parm HAMLIB_PARAMS((RIG *rig,
2843 setting_t parm));
2844extern HAMLIB_EXPORT(setting_t)
2845rig_has_set_parm HAMLIB_PARAMS((RIG *rig,
2846 setting_t parm));
2847
2848extern HAMLIB_EXPORT(setting_t)
2849rig_has_get_func HAMLIB_PARAMS((RIG *rig,
2850 setting_t func));
2851extern HAMLIB_EXPORT(setting_t)
2852rig_has_set_func HAMLIB_PARAMS((RIG *rig,
2853 setting_t func));
2854
2855extern HAMLIB_EXPORT(int)
2856rig_set_func HAMLIB_PARAMS((RIG *rig,
2857 vfo_t vfo,
2858 setting_t func,
2859 int status));
2860extern HAMLIB_EXPORT(int)
2861rig_get_func HAMLIB_PARAMS((RIG *rig,
2862 vfo_t vfo,
2863 setting_t func,
2864 int *status));
2865
2866extern HAMLIB_EXPORT(int)
2867rig_send_dtmf HAMLIB_PARAMS((RIG *rig,
2868 vfo_t vfo,
2869 const char *digits));
2870extern HAMLIB_EXPORT(int)
2871rig_recv_dtmf HAMLIB_PARAMS((RIG *rig,
2872 vfo_t vfo,
2873 char *digits,
2874 int *length));
2875
2876extern HAMLIB_EXPORT(int)
2877rig_send_morse HAMLIB_PARAMS((RIG *rig,
2878 vfo_t vfo,
2879 const char *msg));
2880
2881extern HAMLIB_EXPORT(int)
2882rig_stop_morse HAMLIB_PARAMS((RIG *rig,
2883 vfo_t vfo));
2884
2885extern HAMLIB_EXPORT(int)
2886rig_wait_morse HAMLIB_PARAMS((RIG *rig,
2887 vfo_t vfo));
2888
2889extern HAMLIB_EXPORT(int)
2890rig_send_voice_mem HAMLIB_PARAMS((RIG *rig,
2891 vfo_t vfo,
2892 int ch));
2893
2894extern HAMLIB_EXPORT(int)
2895rig_set_bank HAMLIB_PARAMS((RIG *rig,
2896 vfo_t vfo,
2897 int bank));
2898
2899extern HAMLIB_EXPORT(int)
2900rig_set_mem HAMLIB_PARAMS((RIG *rig,
2901 vfo_t vfo,
2902 int ch));
2903extern HAMLIB_EXPORT(int)
2904rig_get_mem HAMLIB_PARAMS((RIG *rig,
2905 vfo_t vfo,
2906 int *ch));
2907
2908extern HAMLIB_EXPORT(int)
2909rig_vfo_op HAMLIB_PARAMS((RIG *rig,
2910 vfo_t vfo,
2911 vfo_op_t op));
2912
2913extern HAMLIB_EXPORT(vfo_op_t)
2914rig_has_vfo_op HAMLIB_PARAMS((RIG *rig,
2915 vfo_op_t op));
2916
2917extern HAMLIB_EXPORT(int)
2918rig_scan HAMLIB_PARAMS((RIG *rig,
2919 vfo_t vfo,
2920 scan_t scan,
2921 int ch));
2922
2923extern HAMLIB_EXPORT(scan_t)
2924rig_has_scan HAMLIB_PARAMS((RIG *rig,
2925 scan_t scan));
2926
2927extern HAMLIB_EXPORT(int)
2928rig_set_channel HAMLIB_PARAMS((RIG *rig,
2929 vfo_t vfo,
2930 const channel_t *chan)); /* mem */
2931extern HAMLIB_EXPORT(int)
2932rig_get_channel HAMLIB_PARAMS((RIG *rig,
2933 vfo_t vfo,
2934 channel_t *chan, int read_only));
2935
2936extern HAMLIB_EXPORT(int)
2937rig_set_chan_all HAMLIB_PARAMS((RIG *rig,
2938 vfo_t vfo,
2939 const channel_t chans[]));
2940extern HAMLIB_EXPORT(int)
2941rig_get_chan_all HAMLIB_PARAMS((RIG *rig,
2942 vfo_t vfo,
2943 channel_t chans[]));
2944
2945extern HAMLIB_EXPORT(int)
2946rig_set_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2947 vfo_t vfo,
2948 chan_cb_t chan_cb,
2949 rig_ptr_t));
2950extern HAMLIB_EXPORT(int)
2951rig_get_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2952 vfo_t vfo,
2953 chan_cb_t chan_cb,
2954 rig_ptr_t));
2955
2956extern HAMLIB_EXPORT(int)
2957rig_set_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2958 vfo_t vfo,
2959 chan_cb_t chan_cb,
2960 confval_cb_t parm_cb,
2961 rig_ptr_t));
2962extern HAMLIB_EXPORT(int)
2963rig_get_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2964 vfo_t vfo,
2965 chan_cb_t chan_cb,
2966 confval_cb_t parm_cb,
2967 rig_ptr_t));
2968
2969extern HAMLIB_EXPORT(int)
2970rig_set_mem_all HAMLIB_PARAMS((RIG *rig,
2971 vfo_t vfo,
2972 const channel_t *chan,
2973 const struct confparams *,
2974 const value_t *));
2975extern HAMLIB_EXPORT(int)
2976rig_get_mem_all HAMLIB_PARAMS((RIG *rig,
2977 vfo_t vfo,
2978 channel_t *chan,
2979 const struct confparams *,
2980 value_t *));
2981
2982extern HAMLIB_EXPORT(const chan_t *)
2983rig_lookup_mem_caps HAMLIB_PARAMS((RIG *rig,
2984 int ch));
2985
2986extern HAMLIB_EXPORT(int)
2987rig_mem_count HAMLIB_PARAMS((RIG *rig));
2988
2989extern HAMLIB_EXPORT(int)
2990rig_set_trn HAMLIB_PARAMS((RIG *rig,
2991 int trn));
2992extern HAMLIB_EXPORT(int)
2993rig_get_trn HAMLIB_PARAMS((RIG *rig,
2994 int *trn));
2995
2996extern HAMLIB_EXPORT(int)
2997rig_set_freq_callback HAMLIB_PARAMS((RIG *,
2998 freq_cb_t,
2999 rig_ptr_t));
3000
3001extern HAMLIB_EXPORT(int)
3002rig_set_mode_callback HAMLIB_PARAMS((RIG *,
3003 mode_cb_t,
3004 rig_ptr_t));
3005extern HAMLIB_EXPORT(int)
3006rig_set_vfo_callback HAMLIB_PARAMS((RIG *,
3007 vfo_cb_t,
3008 rig_ptr_t));
3009
3010extern HAMLIB_EXPORT(int)
3011rig_set_ptt_callback HAMLIB_PARAMS((RIG *,
3012 ptt_cb_t,
3013 rig_ptr_t));
3014
3015extern HAMLIB_EXPORT(int)
3016rig_set_dcd_callback HAMLIB_PARAMS((RIG *,
3017 dcd_cb_t,
3018 rig_ptr_t));
3019
3020extern HAMLIB_EXPORT(int)
3021rig_set_pltune_callback HAMLIB_PARAMS((RIG *,
3022 pltune_cb_t,
3023 rig_ptr_t));
3024
3025extern HAMLIB_EXPORT(int)
3026rig_set_spectrum_callback HAMLIB_PARAMS((RIG *,
3027 spectrum_cb_t,
3028 rig_ptr_t));
3029
3030extern HAMLIB_EXPORT(int)
3031rig_set_twiddle HAMLIB_PARAMS((RIG *rig,
3032 int seconds));
3033
3034extern HAMLIB_EXPORT(int)
3035rig_get_twiddle HAMLIB_PARAMS((RIG *rig,
3036 int *seconds));
3037
3038extern HAMLIB_EXPORT(int)
3039rig_set_uplink HAMLIB_PARAMS((RIG *rig,
3040 int val));
3041
3042extern HAMLIB_EXPORT(const char *)
3043rig_get_info HAMLIB_PARAMS((RIG *rig));
3044
3045extern HAMLIB_EXPORT(const struct rig_caps *)
3046rig_get_caps HAMLIB_PARAMS((rig_model_t rig_model));
3047
3048extern HAMLIB_EXPORT(const freq_range_t *)
3049rig_get_range HAMLIB_PARAMS((const freq_range_t *range_list,
3050 freq_t freq,
3051 rmode_t mode));
3052
3053extern HAMLIB_EXPORT(pbwidth_t)
3054rig_passband_normal HAMLIB_PARAMS((RIG *rig,
3055 rmode_t mode));
3056extern HAMLIB_EXPORT(pbwidth_t)
3057rig_passband_narrow HAMLIB_PARAMS((RIG *rig,
3058 rmode_t mode));
3059extern HAMLIB_EXPORT(pbwidth_t)
3060rig_passband_wide HAMLIB_PARAMS((RIG *rig,
3061 rmode_t mode));
3062
3063extern HAMLIB_EXPORT(const char *)
3064rigerror HAMLIB_PARAMS((int errnum));
3065
3066extern HAMLIB_EXPORT(int)
3067rig_setting2idx HAMLIB_PARAMS((setting_t s));
3068
3069extern HAMLIB_EXPORT(setting_t)
3070rig_idx2setting(int i);
3071/*
3072 * Even if these functions are prefixed with "rig_", they are not rig specific
3073 * Maybe "hamlib_" would have been better. Let me know. --SF
3074 */
3075extern HAMLIB_EXPORT(void)
3076rig_set_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
3077
3078extern HAMLIB_EXPORT(void)
3079rig_set_debug_time_stamp HAMLIB_PARAMS((int flag));
3080
3081#define rig_set_debug_level(level) rig_set_debug(level)
3082
3083extern HAMLIB_EXPORT(int)
3084rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
3085
3086
3087// this need to be fairly big to avoid compiler warnings
3088#define DEBUGMSGSAVE_SIZE 24000
3089extern HAMLIB_EXPORT_VAR(char) debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg
3090extern HAMLIB_EXPORT_VAR(char) debugmsgsave2[DEBUGMSGSAVE_SIZE]; // last-1 debug msg
3091extern HAMLIB_EXPORT_VAR(char) debugmsgsave3[DEBUGMSGSAVE_SIZE]; // last-2 debug msg
3092#ifndef __cplusplus
3093#ifdef __GNUC__
3094// doing the debug macro with a dummy sprintf allows gcc to check the format string
3095#define rig_debug(debug_level,fmt,...) do { strncpy(debugmsgsave3, debugmsgsave2,sizeof(debugmsgsave3));strncpy(debugmsgsave2, debugmsgsave, sizeof(debugmsgsave2));snprintf(debugmsgsave,sizeof(debugmsgsave),fmt,__VA_ARGS__);rig_debug(debug_level,fmt,##__VA_ARGS__); } while(0);
3096#endif
3097#endif
3098extern HAMLIB_EXPORT(void)
3099rig_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level,
3100 const char *fmt, ...));
3101
3102extern HAMLIB_EXPORT(vprintf_cb_t)
3103rig_set_debug_callback HAMLIB_PARAMS((vprintf_cb_t cb,
3104 rig_ptr_t arg));
3105
3106extern HAMLIB_EXPORT(FILE *)
3107rig_set_debug_file HAMLIB_PARAMS((FILE *stream));
3108
3109extern HAMLIB_EXPORT(int)
3110rig_register HAMLIB_PARAMS((const struct rig_caps *caps));
3111
3112extern HAMLIB_EXPORT(int)
3113rig_unregister HAMLIB_PARAMS((rig_model_t rig_model));
3114
3115extern HAMLIB_EXPORT(int)
3116rig_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rig_caps *, rig_ptr_t),
3117 rig_ptr_t data));
3118
3119extern HAMLIB_EXPORT(int)
3120rig_list_foreach_model HAMLIB_PARAMS((int (*cfunc)(const rig_model_t rig_model, rig_ptr_t),
3121 rig_ptr_t data));
3122
3123extern HAMLIB_EXPORT(int)
3124rig_load_backend HAMLIB_PARAMS((const char *be_name));
3125
3126extern HAMLIB_EXPORT(int)
3127rig_check_backend HAMLIB_PARAMS((rig_model_t rig_model));
3128
3129extern HAMLIB_EXPORT(int)
3130rig_load_all_backends HAMLIB_PARAMS((void));
3131
3132typedef int (*rig_probe_func_t)(const hamlib_port_t *, rig_model_t, rig_ptr_t);
3133
3134extern HAMLIB_EXPORT(int)
3135rig_probe_all HAMLIB_PARAMS((hamlib_port_t *p,
3136 rig_probe_func_t,
3137 rig_ptr_t));
3138
3139extern HAMLIB_EXPORT(rig_model_t)
3140rig_probe HAMLIB_PARAMS((hamlib_port_t *p));
3141
3142
3143/* Misc calls */
3144extern HAMLIB_EXPORT(const char *) rig_strrmode(rmode_t mode);
3145extern HAMLIB_EXPORT(int) rig_strrmodes(rmode_t modes, char *buf, int buflen);
3146extern HAMLIB_EXPORT(const char *) rig_strvfo(vfo_t vfo);
3147extern HAMLIB_EXPORT(const char *) rig_strfunc(setting_t);
3148extern HAMLIB_EXPORT(const char *) rig_strlevel(setting_t);
3149extern HAMLIB_EXPORT(const char *) rig_strparm(setting_t);
3150extern HAMLIB_EXPORT(const char *) rig_stragclevel(enum agc_level_e level);
3151extern HAMLIB_EXPORT(const char *) rig_strptrshift(rptr_shift_t);
3152extern HAMLIB_EXPORT(const char *) rig_strvfop(vfo_op_t op);
3153extern HAMLIB_EXPORT(const char *) rig_strscan(scan_t scan);
3154extern HAMLIB_EXPORT(const char *) rig_strstatus(enum rig_status_e status);
3155extern HAMLIB_EXPORT(const char *) rig_strmtype(chan_type_t mtype);
3156extern HAMLIB_EXPORT(const char *) rig_strspectrummode(enum rig_spectrum_mode_e mode);
3157
3158extern HAMLIB_EXPORT(rmode_t) rig_parse_mode(const char *s);
3159extern HAMLIB_EXPORT(vfo_t) rig_parse_vfo(const char *s);
3160extern HAMLIB_EXPORT(setting_t) rig_parse_func(const char *s);
3161extern HAMLIB_EXPORT(setting_t) rig_parse_level(const char *s);
3162extern HAMLIB_EXPORT(setting_t) rig_parse_parm(const char *s);
3163extern HAMLIB_EXPORT(vfo_op_t) rig_parse_vfo_op(const char *s);
3164extern HAMLIB_EXPORT(scan_t) rig_parse_scan(const char *s);
3165extern HAMLIB_EXPORT(rptr_shift_t) rig_parse_rptr_shift(const char *s);
3166extern HAMLIB_EXPORT(chan_type_t) rig_parse_mtype(const char *s);
3167
3168extern HAMLIB_EXPORT(const char *) rig_license HAMLIB_PARAMS(());
3169extern HAMLIB_EXPORT(const char *) rig_version HAMLIB_PARAMS(());
3170extern HAMLIB_EXPORT(const char *) rig_copyright HAMLIB_PARAMS(());
3171
3172extern HAMLIB_EXPORT(void) rig_no_restore_ai();
3173
3174extern HAMLIB_EXPORT(int) rig_get_cache_timeout_ms(RIG *rig, hamlib_cache_t selection);
3175extern HAMLIB_EXPORT(int) rig_set_cache_timeout_ms(RIG *rig, hamlib_cache_t selection, int ms);
3176
3177extern HAMLIB_EXPORT(int) rig_set_vfo_opt(RIG *rig, int status);
3178extern HAMLIB_EXPORT(int) rig_get_vfo_info(RIG *rig, vfo_t vfo, freq_t *freq, rmode_t *mode, pbwidth_t *width, split_t *split, int *satmode);
3179extern HAMLIB_EXPORT(int) rig_get_rig_info(RIG *rig, char *response, int max_response_len);
3180extern HAMLIB_EXPORT(int) rig_get_cache(RIG *rig, vfo_t vfo, freq_t *freq, int * cache_ms_freq, rmode_t *mode, int *cache_ms_mode, pbwidth_t *width, int *cache_ms_width);
3181
3182extern HAMLIB_EXPORT(int) rig_set_clock(RIG *rig, int year, int month, int day, int hour, int min, int sec, double msec, int utc_offset);
3183extern HAMLIB_EXPORT(int) rig_get_clock(RIG *rig, int *year, int *month, int *day, int *hour, int *min, int *sec, double *msec, int *utc_offset);
3184
3185typedef unsigned long rig_useconds_t;
3186extern HAMLIB_EXPORT(int) hl_usleep(rig_useconds_t msec);
3187
3188extern HAMLIB_EXPORT(int) rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, int cookie_len);
3189
3191
3192__END_DECLS
3193
3194#endif /* _RIG_H */
3195
setting_t rig_parse_parm(const char *s)
Convert alpha string to RIG_PARM_...
Definition: misc.c:1126
vfo_t rig_parse_vfo(const char *s)
Convert alpha string to enum RIG_VFO_...
Definition: misc.c:600
const char * rig_strparm(setting_t parm)
Convert enum RIG_PARM_... to alpha string.
Definition: misc.c:1176
const char * rig_strspectrummode(enum rig_spectrum_mode_e mode)
Convert enum RIG_SPECTRUM_MODE_... to alpha string.
Definition: misc.c:1557
int rig_strrmodes(rmode_t modes, char *buf, int buflen)
Convert RIG_MODE or'd value to alpha string of all modes.
Definition: misc.c:533
const char * rig_strvfo(vfo_t vfo)
Convert enum RIG_VFO_... to alpha string.
Definition: misc.c:629
const char * rig_strscan(scan_t rscan)
Convert enum RIG_SCAN_... to alpha string.
Definition: misc.c:1395
rptr_shift_t rig_parse_rptr_shift(const char *s)
Convert alpha char to enum RIG_RPT_SHIFT_...
Definition: misc.c:1449
const char * rig_strfunc(setting_t func)
Convert enum RIG_FUNC_... to alpha string.
Definition: misc.c:779
const char * rig_strptrshift(rptr_shift_t shift)
convert enum RIG_RPT_SHIFT_... to printable character
Definition: misc.c:1424
uint64_t rig_idx2setting(int i)
Definition: misc.c:717
chan_type_t rig_parse_mtype(const char *s)
Convert alpha string to enum RIG_MTYPE_...
Definition: misc.c:1492
const char * rig_stragclevel(enum agc_level_e level)
Convert enum RIG_AGC_... to alpha string.
Definition: misc.c:1249
const char * rig_strstatus(enum rig_status_e status)
Convert enum RIG_STATUS_... to printable string.
Definition: misc.c:392
setting_t rig_parse_level(const char *s)
Convert alpha string to enum RIG_LEVEL_...
Definition: misc.c:927
scan_t rig_parse_scan(const char *s)
Convert alpha string to enum RIG_SCAN_...
Definition: misc.c:1370
const char * rig_strrmode(rmode_t mode)
Convert enum RIG_MODE to alpha string.
Definition: misc.c:501
setting_t rig_parse_func(const char *s)
Convert alpha string to enum RIG_FUNC_...
Definition: misc.c:729
const char * rig_strmtype(chan_type_t mtype)
Convert enum RIG_MTYPE_... to alpha string.
Definition: misc.c:1517
rmode_t rig_parse_mode(const char *s)
Convert alpha string to enum RIG_MODE.
Definition: misc.c:475
const char * rig_strvfop(vfo_op_t op)
Convert enum RIG_OP_... to alpha string.
Definition: misc.c:1325
const char * rig_strlevel(setting_t level)
Convert enum RIG_LEVEL_... to alpha string.
Definition: misc.c:1008
vfo_op_t rig_parse_vfo_op(const char *s)
Convert alpha string to enum RIG_OP_...
Definition: misc.c:1300
const char * rig_get_info(RIG *rig)
get general information from the radio
Definition: rig.c:6761
shortfreq_t tuning_step
Definition: rig.h:1417
rmode_t mode
Definition: rig.h:1405
int rig_set_vfo(RIG *rig, vfo_t vfo)
set the current VFO
Definition: rig.c:2757
unsigned int vfo_t
VFO definition.
Definition: rig.h:428
int rig_get_split_freq_mode(RIG *rig, vfo_t vfo, freq_t *tx_freq, rmode_t *tx_mode, pbwidth_t *tx_width)
get the current split frequency and mode
Definition: rig.c:4717
int rig_set_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t val)
set a radio level extra parameter
Definition: settings.c:612
int rig_send_dtmf(RIG *rig, vfo_t vfo, const char *digits)
send DTMF digits
Definition: rig.c:6232
int rig_set_twiddle(RIG *rig, int seconds)
timeout (secs) to stop rigctld when VFO is manually changed
Definition: rig.c:1351
meter_level_e
Level display meters.
Definition: rig.h:857
int rig_get_rig_info(RIG *rig, char *response, int max_response_len)
get freq/mode/width for requested VFO
Definition: rig.c:6830
tone_t ctcss_tone
Definition: rig.h:1422
int rig_get_mem_all(RIG *rig, vfo_t vfo, channel_t chans[], const struct confparams cfgps[], value_t vals[])
get all channel and non-channel data
Definition: mem.c:1531
int rig_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
get the status of the DCD
Definition: rig.c:3551
pbwidth_t tx_width
Definition: rig.h:1410
vfo_t vfo
Definition: rig.h:1402
value_t levels[64]
Definition: rig.h:1421
int startc
Definition: rig.h:1516
serial_parity_e
Serial parity.
Definition: rig.h:261
int rig_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo)
get the current split mode
Definition: rig.c:4933
int rig_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
Definition: rig.c:2456
int val
Definition: rig.h:1569
shortfreq_t rptr_offs
Definition: rig.h:1416
freq_t startf
Definition: rig.h:1284
int rig_get_cache(RIG *rig, vfo_t vfo, freq_t *freq, int *cache_ms_freq, rmode_t *mode, int *cache_ms_mode, pbwidth_t *width, int *cache_ms_width)
get cached values for a VFO
Definition: rig.c:1614
int rig_set_channel(RIG *rig, vfo_t vfo, const channel_t *chan)
set channel data
Definition: mem.c:688
freq_t low_edge_freq
Definition: rig.h:1681
const char * combostr[RIG_COMBO_MAX]
Definition: rig.h:752
rmode_t modes
Definition: rig.h:1351
int rig_set_split_vfo(RIG *rig, vfo_t rx_vfo, split_t split, vfo_t tx_vfo)
set the split mode
Definition: rig.c:4777
dcd_e
DCD status.
Definition: rig.h:565
vfo_t tx_vfo
Definition: rig.h:1413
int rig_set_freq_callback(RIG *rig, freq_cb_t cb, rig_ptr_t arg)
set the callback for freq events
Definition: event.c:547
const char * hamlib_copyright2
Hamlib copyright notice.
Definition: rig.c:103
int rig_get_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t *rptr_offs)
get the current repeater offset
Definition: rig.c:3883
int rig_set_powerstat(RIG *rig, powerstat_t status)
turn on/off the radio
Definition: rig.c:5843
int rig_get_powerstat(RIG *rig, powerstat_t *status)
get the on/off status of the radio
Definition: rig.c:5880
int rig_set_dcs_sql(RIG *rig, vfo_t vfo, tone_t code)
set the current DCS code
Definition: tones.c:491
serial_control_state_e
Serial control state.
Definition: rig.h:283
int rig_set_mem(RIG *rig, vfo_t vfo, int ch)
set the current memory channel number
Definition: mem.c:72
freq_t endf
Definition: rig.h:1285
int rig_power2mW(RIG *rig, unsigned int *mwpower, float power, freq_t freq, rmode_t mode)
conversion utility from relative range to absolute in mW
Definition: rig.c:5690
setting_t rig_has_set_func(RIG *rig, setting_t func)
check ability of radio functions
Definition: settings.c:444
unsigned tx_vfo
Definition: rig.h:1456
int rig_get_vfo(RIG *rig, vfo_t *vfo)
get the current VFO
Definition: rig.c:2897
int rig_set_split_freq_mode(RIG *rig, vfo_t vfo, freq_t tx_freq, rmode_t tx_mode, pbwidth_t tx_width)
set the split frequency and mode
Definition: rig.c:4599
uint64_t rmode_t
Radio mode.
Definition: rig.h:1191
int rig_set_vfo_callback(RIG *rig, vfo_cb_t cb, rig_ptr_t arg)
set the callback for vfo events
Definition: event.c:607
shortfreq_t pbwidth_t
Definition: rig.h:559
int data_level_min
Definition: rig.h:1671
int rig_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
set a radio level setting
Definition: settings.c:71
int rig_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
get the current RIT offset
Definition: rig.c:5142
int rig_cleanup(RIG *rig)
release a rig handle and free associated memory
Definition: rig.c:1307
rig_type_t
Rig type flags.
Definition: rig.h:293
const char * tooltip
Definition: rig.h:742
struct confparams::@0::@2 c
value_t max
Definition: rig.h:1552
unsigned tx_freq
Definition: rig.h:1451
tone_t dcs_code
Definition: rig.h:1424
setting_t funcs
Definition: rig.h:1420
int rig_get_mem(RIG *rig, vfo_t vfo, int *ch)
get the current memory channel number
Definition: mem.c:135
int rig_set_mem_all(RIG *rig, vfo_t vfo, const channel_t chans[], const struct confparams cfgps[], const value_t vals[])
set all channel and non-channel data
Definition: mem.c:1463
enum rig_port_e rig_port_t
Port type.
struct ext_list * ext_levels
Definition: rig.h:1429
unsigned mode
Definition: rig.h:1448
split_t
Split mode.
Definition: rig.h:357
int rig_get_vfo_list(RIG *rig, char *buf, int buflen)
get list of available vfos
Definition: rig.c:6991
unsigned dcs_code
Definition: rig.h:1466
float val
Definition: rig.h:1599
rptr_shift_t
Repeater shift type.
Definition: rig.h:347
const char * rig_license()
get the Hamlib license
Definition: rig.c:7045
int rig_set_mem_all_cb(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, confval_cb_t parm_cb, rig_ptr_t arg)
set all channel and non-channel data by call-back
Definition: mem.c:1329
int rig_get_dcs_sql(RIG *rig, vfo_t vfo, tone_t *code)
get the current DCS code
Definition: tones.c:553
char * s
Definition: rig.h:878
scan_t rig_has_scan(RIG *rig, scan_t scan)
check availability of scanning functions
Definition: rig.c:6129
const char * dflt
Definition: rig.h:743
ptt_type_t
PTT type.
Definition: rig.h:605
int rig_get_clock(RIG *rig, int *year, int *month, int *day, int *hour, int *min, int *sec, double *msec, int *utc_offset)
get the rig's clock
Definition: rig.c:7025
int rig_get_mem_all_cb(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, confval_cb_t parm_cb, rig_ptr_t arg)
get all channel and non-channel data by call-back
Definition: mem.c:1397
token_t rig_token_lookup(RIG *rig, const char *name)
lookup a token id
Definition: conf.c:1144
int rig_set_ctcss_sql(RIG *rig, vfo_t vfo, tone_t tone)
set CTCSS squelch
Definition: tones.c:362
ann_t
Announce.
Definition: rig.h:763
int rig_set_dcs_code(RIG *rig, vfo_t vfo, tone_t code)
set the current encoding DCS code
Definition: tones.c:230
int rig_set_dcd_callback(RIG *rig, dcd_cb_t cb, rig_ptr_t arg)
set the callback for dcd events
Definition: event.c:667
int rig_get_ext_level(RIG *rig, vfo_t vfo, token_t token, value_t *val)
get the value of a level extra parameter
Definition: settings.c:678
int rig_get_channel(RIG *rig, vfo_t vfox, channel_t *chan, int read_only)
get channel data
Definition: mem.c:832
int rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
get the frequency of the target VFO
Definition: rig.c:2092
int low_power
Definition: rig.h:1287
int rig_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
activate/de-activate functions of radio
Definition: settings.c:475
int spectrum_data_length
Definition: rig.h:1684
int rig_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
get the status of the PTT
Definition: rig.c:3268
float min
Definition: rig.h:747
int rig_get_chan_all_cb(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, rig_ptr_t arg)
get all channel data, by callback
Definition: mem.c:1129
int rig_mW2power(RIG *rig, float *power, unsigned int mwpower, freq_t freq, rmode_t mode)
conversion utility from absolute in mW to relative range
Definition: rig.c:5746
int rig_set_bank(RIG *rig, vfo_t vfo, int bank)
set the current memory bank
Definition: mem.c:198
unsigned rit
Definition: rig.h:1460
int rig_ext_func_foreach(RIG *rig, int(*cfunc)(RIG *, const struct confparams *, rig_ptr_t), rig_ptr_t data)
Executes cfunc on all the elements stored in the extfuncs table.
Definition: ext.c:86
const char * rig_version()
get the Hamlib version
Definition: rig.c:7055
int id
Definition: rig.h:1669
unsigned dcs_sql
Definition: rig.h:1467
unsigned rptr_offs
Definition: rig.h:1458
float f
Definition: rig.h:877
int rig_get_ctcss_sql(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS squelch
Definition: tones.c:429
FILE * rig_set_debug_file(FILE *stream)
Change the output stream from stderr a different stream.
Definition: debug.c:328
int rig_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
get the current XIT offset
Definition: rig.c:5290
enum rig_spectrum_mode_e spectrum_mode
Definition: rig.h:1676
tone_t ctcss_sql
Definition: rig.h:1423
int rig_set_spectrum_callback(RIG *rig, spectrum_cb_t cb, rig_ptr_t arg)
set the callback for spectrum line reception events
Definition: event.c:729
int rig_get_parm(RIG *rig, setting_t parm, value_t *val)
get the value of a parameter
Definition: settings.c:262
value_t step
Definition: rig.h:1553
int rig_get_trn(RIG *rig, int *trn)
get the current transceive mode
Definition: event.c:907
double signal_strength_max
Definition: rig.h:1674
int rig_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t rptr_offs)
set the repeater offset
Definition: rig.c:3813
int rig_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS sub-tone frequency
Definition: tones.c:167
unsigned bank_num
Definition: rig.h:1444
int rig_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
set a radio function extra parameter
Definition: settings.c:743
setting_t rig_has_set_level(RIG *rig, setting_t level)
check settable ability of level settings
Definition: settings.c:326
setting_t levels
Definition: rig.h:1463
rig_parm_e
Rig Parameters.
Definition: rig.h:986
int rig_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
set the antenna
Definition: rig.c:5519
char * label
Definition: rig.h:1291
unsigned width
Definition: rig.h:1449
void rig_set_debug_time_stamp(int flag)
Enable or disable the time stamp on debugging output.
Definition: debug.c:184
shortfreq_t xit
Definition: rig.h:1419
freq_t center_freq
Definition: rig.h:1678
shortfreq_t rig_get_resolution(RIG *rig, rmode_t mode)
get the best frequency resolution of the rig
Definition: rig.c:5802
int rig_get_vfo_info(RIG *rig, vfo_t vfo, freq_t *freq, rmode_t *mode, pbwidth_t *width, split_t *split, int *satmode)
get freq/mode/width for requested VFO
Definition: rig.c:6924
pbwidth_t rig_passband_wide(RIG *rig, rmode_t mode)
get the wide passband of a mode
Definition: rig.c:2700
int hl_usleep(rig_useconds_t usec)
provide sleep and usleep replacements
Definition: sleep.c:53
token_t token
Definition: rig.h:739
uint64_t setting_t
Setting.
Definition: rig.h:1036
int bank_num
Definition: rig.h:1401
powerstat_t
Radio power state.
Definition: rig.h:621
freq_t span_freq
Definition: rig.h:1679
pbwidth_t width
Definition: rig.h:1406
multicast_item_e
Multicast data items 3 different data item can be included in the multicast JSON.
Definition: rig.h:1016
struct cal_table::@3 table[HAMLIB_MAX_CAL_LENGTH]
setting_t rig_has_get_func(RIG *rig, setting_t func)
check ability of radio functions
Definition: settings.c:414
int rig_set_uplink(RIG *rig, int val)
For GPredict to avoid reading frequency on uplink VFO.
Definition: rig.c:1376
unsigned rptr_shift
Definition: rig.h:1457
enum dcd_e dcd_t
DCD status.
int rig_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status)
get the status of functions of the radio
Definition: settings.c:548
chan_type_t type
Definition: rig.h:1518
double signal_strength_min
Definition: rig.h:1673
int rig_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
set the split frequencies
Definition: rig.c:3958
int rig_probe_all(hamlib_port_t *port, rig_probe_func_t cfunc, rig_ptr_t data)
try to guess rigs
Definition: rig.c:5995
rig_errcode_e
Hamlib error codes Error code definition that can be returned by the Hamlib functions....
Definition: rig.h:132
unsigned tx_width
Definition: rig.h:1453
int rig_ext_parm_foreach(RIG *rig, int(*cfunc)(RIG *, const struct confparams *, rig_ptr_t), rig_ptr_t data)
Executes cfunc on all the elements stored in the extparms table.
Definition: ext.c:186
rig_conf_e
parameter types
Definition: rig.h:721
freq_t freq
Definition: rig.h:1404
struct cal_table_float::@4 table[HAMLIB_MAX_CAL_LENGTH]
pbwidth_t width
Definition: rig.h:1352
scan_t
Rig Scan operation.
Definition: rig.h:683
int rig_send_voice_mem(RIG *rig, vfo_t vfo, int ch)
send voice memory content
Definition: rig.c:6623
int rig_recv_dtmf(RIG *rig, vfo_t vfo, char *digits, int *length)
receive DTMF digits
Definition: rig.c:6308
int rig_set_mode_callback(RIG *rig, mode_cb_t cb, rig_ptr_t arg)
set the callback for mode events
Definition: event.c:577
int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
set the frequency of the target VFO
Definition: rig.c:1878
const char * cs
Definition: rig.h:879
int rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
set PTT on/off
Definition: rig.c:2980
int rig_get_conf(RIG *rig, token_t token, char *val)
get the value of a configuration parameter
Definition: conf.c:1228
int raw
Definition: rig.h:1568
float step
Definition: rig.h:749
double freq_t
Frequency type,.
Definition: rig.h:368
int rig_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch)
perform Memory/VFO operations
Definition: rig.c:6161
cookie_e
Rig Cookie enumerations.
Definition: rig.h:1006
token_t token
Definition: rig.h:1383
int rig_send_morse(RIG *rig, vfo_t vfo, const char *msg)
send morse code
Definition: rig.c:6383
const struct confparams * rig_ext_lookup_tok(RIG *rig, token_t token)
lookup ext token, return pointer to confparams struct.
Definition: ext.c:283
rptr_shift_t rptr_shift
Definition: rig.h:1415
unsigned ctcss_sql
Definition: rig.h:1465
int rig_setting2idx(setting_t s)
basically convert setting_t expressed 2^n to n
Definition: settings.c:933
int rig_get_ext_parm(RIG *rig, token_t token, value_t *val)
get the value of a parm extra parameter
Definition: settings.c:906
unsigned tx_mode
Definition: rig.h:1452
ant_t ant
Definition: rig.h:1290
int rig_mem_count(RIG *rig)
get memory channel count
Definition: mem.c:1656
ptt_t
PTT status.
Definition: rig.h:592
const chan_t * rig_lookup_mem_caps(RIG *rig, int ch)
lookup the memory type and capabilities
Definition: mem.c:1590
shortfreq_t rit
Definition: rig.h:1418
char channel_desc[HAMLIB_MAXCHANDESC]
Definition: rig.h:1428
int high_power
Definition: rig.h:1288
value_t min
Definition: rig.h:1551
RIG * rig_init(rig_model_t rig_model)
allocate a new RIG handle
Definition: rig.c:398
unsigned freq
Definition: rig.h:1447
setting_t rig_has_get_parm(RIG *rig, setting_t parm)
check retrieval ability of parameter settings
Definition: settings.c:356
int rig_ext_level_foreach(RIG *rig, int(*cfunc)(RIG *, const struct confparams *, rig_ptr_t), rig_ptr_t data)
Executes cfunc on all the elements stored in the extlevels table.
Definition: ext.c:136
int rig_set_pltune_callback(RIG *rig, pltune_cb_t cb, rig_ptr_t arg)
set the callback for pipelined tuning module
Definition: event.c:699
unsigned char * spectrum_data
Definition: rig.h:1685
rmode_t tx_mode
Definition: rig.h:1409
struct freq_range_list freq_range_t
Frequency range.
int rig_set_clock(RIG *rig, int year, int month, int day, int hour, int min, int sec, double msec, int utc_offset)
set the rig's clock
Definition: rig.c:7009
int rig_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
set CTCSS sub-tone frequency
Definition: tones.c:100
int rig_set_ext_parm(RIG *rig, token_t token, value_t val)
set a radio parm extra parameter
Definition: settings.c:874
int rig_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
set the mode of the target VFO
Definition: rig.c:2344
vfo_op_t
VFO operation.
Definition: rig.h:657
int rig_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts)
get the current Tuning Step
Definition: rig.c:5438
setting_t funcs
Definition: rig.h:1462
split_t split
Definition: rig.h:1412
signed long shortfreq_t
Short frequency type.
Definition: rig.h:390
token_t rig_ext_token_lookup(RIG *rig, const char *name)
Simple lookup returning token id associated with name.
Definition: ext.c:327
rmode_t modes
Definition: rig.h:1316
freq_t tx_freq
Definition: rig.h:1408
vprintf_cb_t rig_set_debug_callback(vprintf_cb_t cb, rig_ptr_t arg)
Set callback to handle debugging messages.
Definition: debug.c:310
unsigned ctcss_tone
Definition: rig.h:1464
const char * rig_copyright()
get the Hamlib copyright
Definition: rig.c:7065
int rig_set_conf(RIG *rig, token_t token, const char *val)
set a radio configuration parameter
Definition: conf.c:1175
int rig_need_debug(enum rig_debug_level_e debug_level)
Test if a given debug level is active.
Definition: debug.c:170
rig_port_e
Port type.
Definition: rig.h:240
int rig_wait_morse(RIG *rig, vfo_t vfo)
wait morse code
Definition: rig.c:6559
int rig_close(RIG *rig)
close the communication to the rig
Definition: rig.c:1129
pbwidth_t rig_passband_narrow(RIG *rig, rmode_t mode)
get the narrow passband of a mode
Definition: rig.c:2648
serial_handshake_e
Serial handshake.
Definition: rig.h:273
shortfreq_t ts
Definition: rig.h:1317
unsigned ext_levels
Definition: rig.h:1471
int rig_get_ext_func(RIG *rig, vfo_t vfo, token_t token, int *status)
get the value of a function extra parameter
Definition: settings.c:809
const char * rigerror(int errnum)
get string describing the error code
Definition: rig.c:308
int size
Definition: rig.h:1596
ant_t ant
Definition: rig.h:1403
agc_level_e
AGC delay settings.
Definition: rig.h:840
dcd_type_t
DCD type.
Definition: rig.h:576
unsigned vfo
Definition: rig.h:1445
int rig_get_chan_all(RIG *rig, vfo_t vfo, channel_t chans[])
get all channel data
Definition: mem.c:1213
channel_cap_t mem_caps
Definition: rig.h:1520
int rig_set_chan_all(RIG *rig, vfo_t vfo, const channel_t chans[])
set all channel data
Definition: mem.c:1170
int rig_set_vfo_opt(RIG *rig, int status)
set the vfo option for rigctld
Definition: rig.c:6728
int rig_set_ptt_callback(RIG *rig, ptt_cb_t cb, rig_ptr_t arg)
set the callback for ptt events
Definition: event.c:637
pbwidth_t rig_passband_normal(RIG *rig, rmode_t mode)
get the normal passband of a mode
Definition: rig.c:2598
rig_debug_level_e
Hamlib debug levels.
Definition: rig.h:175
const char * label
Definition: rig.h:741
#define RIG_SETTING_MAX
Maximum # of rig settings.
Definition: rig.h:1042
unsigned int flags
Definition: rig.h:1427
const struct confparams * rig_ext_lookup(RIG *rig, const char *name)
lookup ext token by its name, return pointer to confparams struct.
Definition: ext.c:236
setting_t rig_has_set_parm(RIG *rig, setting_t parm)
check settable ability of parameter settings
Definition: settings.c:385
struct s_rig RIG
Rig structure definition (see rig for details).
Definition: rig.h:196
const struct confparams * rig_confparam_lookup(RIG *rig, const char *name)
lookup a confparam struct
Definition: conf.c:1088
int rig_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
set the RIT
Definition: rig.c:5071
unsigned ant
Definition: rig.h:1446
int rig_get_twiddle(RIG *rig, int *seconds)
get the twiddle timeout value (secs)
Definition: rig.c:1402
int rig_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts)
set the Tuning Step
Definition: rig.c:5367
int rig_get_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t *option, ant_t *ant_curr, ant_t *ant_tx, ant_t *ant_rx)
get the current antenna
Definition: rig.c:5598
int rig_open(RIG *rig)
open the communication to the rig
Definition: rig.c:679
int rig_set_parm(RIG *rig, setting_t parm, value_t val)
set a radio parameter
Definition: settings.c:228
unsigned split
Definition: rig.h:1455
int data_level_max
Definition: rig.h:1672
int rig_get_dcs_code(RIG *rig, vfo_t vfo, tone_t *code)
get the current encoding DCS code
Definition: tones.c:292
int endc
Definition: rig.h:1517
vfo_t vfo
Definition: rig.h:1289
int rig_stop_morse(RIG *rig, vfo_t vfo)
stop morse code
Definition: rig.c:6455
unsigned scan_group
Definition: rig.h:1468
unsigned flags
Definition: rig.h:1469
setting_t rig_has_get_level(RIG *rig, setting_t level)
check retrieval ability of level settings
Definition: settings.c:296
uint64_t rig_level_e
Rig Level Settings.
Definition: rig.h:897
long token_t
configuration token
Definition: rig.h:699
float max
Definition: rig.h:748
int rig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
get the value of a level
Definition: settings.c:141
int rig_set_chan_all_cb(RIG *rig, vfo_t vfo, chan_cb_t chan_cb, rig_ptr_t arg)
set all channel data, by callback
Definition: mem.c:1082
int rig_set_split_mode(RIG *rig, vfo_t vfo, rmode_t tx_mode, pbwidth_t tx_width)
set the split modes
Definition: rig.c:4275
int rig_reset(RIG *rig, reset_t reset)
reset the radio
Definition: rig.c:5921
int rig_token_foreach(RIG *rig, int(*cfunc)(const struct confparams *, rig_ptr_t), rig_ptr_t data)
call a function against each configuration token of a rig
Definition: conf.c:1034
int rig_set_trn(RIG *rig, int trn)
control the transceive mode
Definition: event.c:759
vfo_op_t rig_has_vfo_op(RIG *rig, vfo_op_t op)
check retrieval ability of VFO operations
Definition: rig.c:6026
unsigned int ant_t
Antenna typedef.
Definition: rig.h:820
int rig_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift)
get the current repeater shift
Definition: rig.c:3737
int scan_group
Definition: rig.h:1426
int rig_get_split_mode(RIG *rig, vfo_t vfo, rmode_t *tx_mode, pbwidth_t *tx_width)
get the current split modes
Definition: rig.c:4463
int rig_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift)
set the repeater shift
Definition: rig.c:3666
const char * name
Definition: rig.h:740
reset_t
Reset operation.
Definition: rig.h:633
int channel_num
Definition: rig.h:1400
freq_t high_edge_freq
Definition: rig.h:1682
tone_t dcs_sql
Definition: rig.h:1425
unsigned tuning_step
Definition: rig.h:1459
int rig_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
get the current split frequencies
Definition: rig.c:4122
void rig_set_debug(enum rig_debug_level_e debug_level)
Change the current debug level.
Definition: debug.c:154
const freq_range_t * rig_get_range(const freq_range_t *range_list, freq_t freq, rmode_t mode)
find the freq_range of freq/mode
Definition: rig.c:6692
unsigned xit
Definition: rig.h:1461
int rig_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
perform Memory/VFO operations
Definition: rig.c:6057
rig_status_e
Development status of the backend.
Definition: rig.h:327
int rig_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit)
set the XIT
Definition: rig.c:5219
struct confparams::@0::@1 n
int raw
Definition: rig.h:1598
signed int i
Definition: rig.h:876
enum rig_conf_e type
Definition: rig.h:744
union confparams::@0 u
int size
Definition: rig.h:1566
void rig_debug(enum rig_debug_level_e debug_level, const char *fmt,...)
Print debugging messages through stderr by default.
Definition: debug.c:202
rmode_t modes
Definition: rig.h:1286
value_t val
Definition: rig.h:1384
int rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, int cookie_len)
get a cookie to grab rig control
Definition: rig.c:7104
rig_spectrum_mode_e
Spectrum scope modes.
Definition: rig.h:1639
rig_model_t rig_probe(hamlib_port_t *port)
try to guess a rig
Definition: rig.c:5965
chan_type_t
Memory channel type definition.
Definition: rig.h:1490
unsigned channel_desc
Definition: rig.h:1470
@ RIG_PARITY_MARK
Definition: rig.h:265
@ RIG_PARITY_NONE
Definition: rig.h:262
@ RIG_PARITY_EVEN
Definition: rig.h:264
@ RIG_PARITY_SPACE
Definition: rig.h:266
@ RIG_PARITY_ODD
Definition: rig.h:263
@ RIG_DCD_ON
Definition: rig.h:567
@ RIG_DCD_OFF
Definition: rig.h:566
@ RIG_SIGNAL_ON
Definition: rig.h:285
@ RIG_SIGNAL_OFF
Definition: rig.h:286
@ RIG_SIGNAL_UNSET
Definition: rig.h:284
@ RIG_FLAG_COMPUTER
Definition: rig.h:299
@ RIG_FLAG_TUNER
Definition: rig.h:304
@ RIG_FLAG_SCANNER
Definition: rig.h:296
@ RIG_FLAG_TRANSMITTER
Definition: rig.h:295
@ RIG_FLAG_MOBILE
Definition: rig.h:297
@ RIG_FLAG_TRUNKING
Definition: rig.h:300
@ RIG_FLAG_APRS
Definition: rig.h:301
@ RIG_FLAG_TNC
Definition: rig.h:302
@ RIG_FLAG_HANDHELD
Definition: rig.h:298
@ RIG_FLAG_DXCLUSTER
Definition: rig.h:303
@ RIG_FLAG_RECEIVER
Definition: rig.h:294
@ RIG_SPLIT_ON
Definition: rig.h:359
@ RIG_SPLIT_OFF
Definition: rig.h:358
@ RIG_RPT_SHIFT_PLUS
Definition: rig.h:350
@ RIG_RPT_SHIFT_MINUS
Definition: rig.h:349
@ RIG_RPT_SHIFT_NONE
Definition: rig.h:348
@ RIG_PTT_RIG
Definition: rig.h:607
@ RIG_PTT_RIG_MICDATA
Definition: rig.h:611
@ RIG_PTT_SERIAL_DTR
Definition: rig.h:608
@ RIG_PTT_NONE
Definition: rig.h:606
@ RIG_PTT_PARALLEL
Definition: rig.h:610
@ RIG_PTT_GPION
Definition: rig.h:614
@ RIG_PTT_GPIO
Definition: rig.h:613
@ RIG_PTT_CM108
Definition: rig.h:612
@ RIG_PTT_SERIAL_RTS
Definition: rig.h:609
@ RIG_ANN_RXMODE
Definition: rig.h:767
@ RIG_ANN_OFF
Definition: rig.h:765
@ RIG_ANN_ENG
Definition: rig.h:769
@ RIG_ANN_FREQ
Definition: rig.h:766
@ RIG_ANN_NONE
Definition: rig.h:764
@ RIG_ANN_CW
Definition: rig.h:768
@ RIG_ANN_JAP
Definition: rig.h:770
@ RIG_PARM_BEEP
Definition: rig.h:991
@ RIG_PARM_TIME
Definition: rig.h:992
@ RIG_PARM_SCREENSAVER
Definition: rig.h:995
@ RIG_PARM_ANN
Definition: rig.h:988
@ RIG_PARM_NONE
Definition: rig.h:987
@ RIG_PARM_BACKLIGHT
Definition: rig.h:990
@ RIG_PARM_KEYLIGHT
Definition: rig.h:994
@ RIG_PARM_BAT
Definition: rig.h:993
@ RIG_PARM_APO
Definition: rig.h:989
@ RIG_POWER_OPERATE
Definition: rig.h:625
@ RIG_POWER_UNKNOWN
Definition: rig.h:626
@ RIG_POWER_STANDBY
Definition: rig.h:624
@ RIG_POWER_OFF
Definition: rig.h:622
@ RIG_POWER_ON
Definition: rig.h:623
@ RIG_ENIMPL
Definition: rig.h:137
@ RIG_ECONF
Definition: rig.h:135
@ RIG_ENAVAIL
Definition: rig.h:144
@ RIG_OK
Definition: rig.h:133
@ RIG_EPROTO
Definition: rig.h:141
@ RIG_EINTERNAL
Definition: rig.h:140
@ RIG_EDOM
Definition: rig.h:150
@ RIG_EIO
Definition: rig.h:139
@ RIG_EVFO
Definition: rig.h:149
@ RIG_ETIMEOUT
Definition: rig.h:138
@ RIG_ENOMEM
Definition: rig.h:136
@ RIG_EARG
Definition: rig.h:148
@ RIG_ERJCTED
Definition: rig.h:142
@ RIG_BUSERROR
Definition: rig.h:146
@ RIG_BUSBUSY
Definition: rig.h:147
@ RIG_ENTARGET
Definition: rig.h:145
@ RIG_EINVAL
Definition: rig.h:134
@ RIG_ETRUNC
Definition: rig.h:143
@ RIG_CONF_STRING
Definition: rig.h:722
@ RIG_CONF_BUTTON
Definition: rig.h:726
@ RIG_CONF_CHECKBUTTON
Definition: rig.h:725
@ RIG_CONF_BINARY
Definition: rig.h:727
@ RIG_CONF_COMBO
Definition: rig.h:723
@ RIG_CONF_NUMERIC
Definition: rig.h:724
@ RIG_SCAN_DELTA
Definition: rig.h:689
@ RIG_SCAN_PLT
Definition: rig.h:691
@ RIG_SCAN_PROG
Definition: rig.h:688
@ RIG_SCAN_MEM
Definition: rig.h:685
@ RIG_SCAN_NONE
Definition: rig.h:684
@ RIG_SCAN_VFO
Definition: rig.h:690
@ RIG_SCAN_PRIO
Definition: rig.h:687
@ RIG_SCAN_SLCT
Definition: rig.h:686
@ RIG_SCAN_STOP
Definition: rig.h:692
@ RIG_COOKIE_RENEW
Definition: rig.h:1009
@ RIG_COOKIE_RELEASE
Definition: rig.h:1008
@ RIG_COOKIE_GET
Definition: rig.h:1007
@ RIG_PTT_OFF
Definition: rig.h:593
@ RIG_PTT_ON_DATA
Definition: rig.h:596
@ RIG_PTT_ON_MIC
Definition: rig.h:595
@ RIG_PTT_ON
Definition: rig.h:594
@ RIG_OP_CPY
Definition: rig.h:659
@ RIG_OP_DOWN
Definition: rig.h:665
@ RIG_OP_TO_VFO
Definition: rig.h:662
@ RIG_OP_TUNE
Definition: rig.h:670
@ RIG_OP_FROM_VFO
Definition: rig.h:661
@ RIG_OP_MCL
Definition: rig.h:663
@ RIG_OP_RIGHT
Definition: rig.h:669
@ RIG_OP_UP
Definition: rig.h:664
@ RIG_OP_TOGGLE
Definition: rig.h:671
@ RIG_OP_NONE
Definition: rig.h:658
@ RIG_OP_BAND_UP
Definition: rig.h:666
@ RIG_OP_BAND_DOWN
Definition: rig.h:667
@ RIG_OP_LEFT
Definition: rig.h:668
@ RIG_OP_XCHG
Definition: rig.h:660
@ RIG_PORT_PACKET
Definition: rig.h:245
@ RIG_PORT_UDP_NETWORK
Definition: rig.h:251
@ RIG_PORT_NONE
Definition: rig.h:241
@ RIG_PORT_CM108
Definition: rig.h:252
@ RIG_PORT_GPIO
Definition: rig.h:253
@ RIG_PORT_ULTRA
Definition: rig.h:247
@ RIG_PORT_GPION
Definition: rig.h:254
@ RIG_PORT_SERIAL
Definition: rig.h:242
@ RIG_PORT_PARALLEL
Definition: rig.h:249
@ RIG_PORT_NETWORK
Definition: rig.h:243
@ RIG_PORT_DEVICE
Definition: rig.h:244
@ RIG_PORT_RPC
Definition: rig.h:248
@ RIG_PORT_DTMF
Definition: rig.h:246
@ RIG_PORT_USB
Definition: rig.h:250
@ RIG_HANDSHAKE_HARDWARE
Definition: rig.h:276
@ RIG_HANDSHAKE_NONE
Definition: rig.h:274
@ RIG_HANDSHAKE_XONXOFF
Definition: rig.h:275
@ RIG_AGC_USER
Definition: rig.h:845
@ RIG_DCD_SERIAL_CTS
Definition: rig.h:580
@ RIG_DCD_PARALLEL
Definition: rig.h:582
@ RIG_DCD_CM108
Definition: rig.h:583
@ RIG_DCD_RIG
Definition: rig.h:578
@ RIG_DCD_GPION
Definition: rig.h:585
@ RIG_DCD_NONE
Definition: rig.h:577
@ RIG_DCD_SERIAL_DSR
Definition: rig.h:579
@ RIG_DCD_GPIO
Definition: rig.h:584
@ RIG_DCD_SERIAL_CAR
Definition: rig.h:581
@ RIG_DEBUG_ERR
Definition: rig.h:178
@ RIG_DEBUG_BUG
Definition: rig.h:177
@ RIG_DEBUG_WARN
Definition: rig.h:179
@ RIG_DEBUG_TRACE
Definition: rig.h:181
@ RIG_DEBUG_VERBOSE
Definition: rig.h:180
@ RIG_DEBUG_CACHE
Definition: rig.h:182
@ RIG_DEBUG_NONE
Definition: rig.h:176
@ RIG_RESET_MCALL
Definition: rig.h:637
@ RIG_RESET_MASTER
Definition: rig.h:638
@ RIG_RESET_NONE
Definition: rig.h:634
@ RIG_RESET_VFO
Definition: rig.h:636
@ RIG_RESET_SOFT
Definition: rig.h:635
@ RIG_STATUS_STABLE
Definition: rig.h:331
@ RIG_STATUS_BUGGY
Definition: rig.h:332
@ RIG_STATUS_UNTESTED
Definition: rig.h:329
@ RIG_STATUS_BETA
Definition: rig.h:330
@ RIG_STATUS_ALPHA
Definition: rig.h:328
@ RIG_SPECTRUM_MODE_CENTER_SCROLL
Definition: rig.h:1643
@ RIG_SPECTRUM_MODE_FIXED_SCROLL
Definition: rig.h:1644
@ RIG_SPECTRUM_MODE_FIXED
Definition: rig.h:1642
@ RIG_SPECTRUM_MODE_CENTER
Definition: rig.h:1641
@ RIG_MTYPE_PRIO
Definition: rig.h:1498
@ RIG_MTYPE_EDGE
Definition: rig.h:1493
@ RIG_MTYPE_MEM
Definition: rig.h:1492
@ RIG_MTYPE_CALL
Definition: rig.h:1494
@ RIG_MTYPE_SAT
Definition: rig.h:1496
@ RIG_MTYPE_MEMOPAD
Definition: rig.h:1495
@ RIG_MTYPE_NONE
Definition: rig.h:1491
@ RIG_MTYPE_BAND
Definition: rig.h:1497
Calibration table struct for float values.
Definition: rig.h:1595
Calibration table struct.
Definition: rig.h:1565
Memory channel list definition.
Definition: rig.h:1515
Channel capability definition.
Definition: rig.h:1443
Channel structure.
Definition: rig.h:1399
Configuration parameter structure.
Definition: rig.h:738
Extension attribute definition.
Definition: rig.h:1382
Filter definition.
Definition: rig.h:1350
Frequency range.
Definition: rig.h:1283
level/parm granularity definition
Definition: rig.h:1550
Spectrum scope averaging modes.
Definition: rig.h:1651
Represents a single line of rig spectrum scope FFT data.
Definition: rig.h:1668
Spectrum scope.
Definition: rig.h:1631
Tuning step definition.
Definition: rig.h:1315
Universal approach for passing values.
Definition: rig.h:875