Hamlib  4.3.1
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 
36 /* Rig list is in a separate file so as not to mess up w/ this one */
37 #include <hamlib/riglist.h>
38 
52 /* __BEGIN_DECLS should be used at the beginning of your declarations,
53  * so that C++ compilers don't mangle their names. Use __END_DECLS at
54  * the end of C declarations. */
56 #undef __BEGIN_DECLS
57 #undef __END_DECLS
58 #ifdef __cplusplus
59 # define __BEGIN_DECLS extern "C" {
60 # define __END_DECLS }
61 #else
62 # define __BEGIN_DECLS /* empty */
63 # define __END_DECLS /* empty */
64 #endif
66 
67 /* HAMLIB_PARAMS is a macro used to wrap function prototypes, so that compilers
68  * that don't understand ANSI C prototypes still work, and ANSI C
69  * compilers can issue warnings about type mismatches. */
71 #undef HAMLIB_PARAMS
72 #if defined (__STDC__) \
73  || defined (_AIX) \
74  || (defined (__mips) && defined (_SYSTYPE_SVR4)) \
75  || defined(__CYGWIN__) \
76  || defined(_WIN32) \
77  || defined(__cplusplus)
78 # define HAMLIB_PARAMS(protos) protos
79 # define rig_ptr_t void *
80 # define amp_ptr_t void *
81 #else
82 # define HAMLIB_PARAMS(protos) ()
83 # define rig_ptr_t char *
84 # define amp_ptr_t char *
85 #endif
87 
88 #include <hamlib/rig_dll.h>
89 
90 #ifndef SWIGLUA
92 #define CONSTANT_64BIT_FLAG(BIT) (1ull << (BIT))
94 #else
95 /* SWIG's older Lua generator doesn't grok ull due to Lua using a
96  double-precision floating point type internally for number
97  representations (max 53 bits of precision) so makes a string
98  constant from a constant number literal using ull */
99 // #define CONSTANT_64BIT_FLAG(BIT) (1 << (BIT))
100 // #define SWIGLUAHIDE
101 /* But this appears to have been fixed so we'll use the correct one now
102  If you have the older version of SWIG comment out this line and use
103  the two above */
104 // This 1ul definition works on swig 4.0.1 and lua 5.3.5
105 #define CONSTANT_64BIT_FLAG(BIT) (1ul << (BIT))
106 #endif
107 
108 __BEGIN_DECLS
109 
114 // cookie is 26-char time code plus 10-char (2^31-1) random number
115 #define HAMLIB_COOKIE_SIZE 37
116 extern int cookie_use; // this is global as once one client requests it everybody needs to honor it
117 
119 extern HAMLIB_EXPORT_VAR(const char) hamlib_version[];
120 extern HAMLIB_EXPORT_VAR(const char) hamlib_copyright[];
121 extern HAMLIB_EXPORT_VAR(const char *) hamlib_version2;
122 extern HAMLIB_EXPORT_VAR(const char *) hamlib_copyright2;
124 
132  RIG_OK = 0,
149  RIG_EDOM
150 };
151 
157 #define RIG_IS_SOFT_ERRCODE(errcode) (errcode == RIG_EINVAL || errcode == RIG_ENIMPL || errcode == RIG_ERJCTED \
158  || errcode == RIG_ETRUNC || errcode == RIG_ENAVAIL || errcode == RIG_ENTARGET \
159  || errcode == RIG_EVFO || errcode == RIG_EDOM)
160 
164 #define NETRIGCTL_RET "RPRT "
165 
166 
182 };
183 
184 
185 /* --------------- Rig capabilities -----------------*/
186 
187 /* Forward struct references */
188 
189 struct rig;
190 struct rig_state;
191 
195 typedef struct s_rig RIG;
196 
198 #define HAMLIB_RIGNAMSIZ 30
199 #define HAMLIB_RIGVERSIZ 8
200 #define HAMLIB_FILPATHLEN 512
201 /* Debian: Hamlib 4.3 drops FILPATHLEN, restore until all rdeps have been updated */
202 #define FILPATHLEN HAMLIB_FILPATHLEN
203 #define HAMLIB_FRQRANGESIZ 30
204 #define HAMLIB_MAXCHANDESC 30 /* describe channel eg: "WWV 5Mhz" */
205 #define HAMLIB_TSLSTSIZ 20 /* max tuning step list size, zero ended */
206 #define HAMLIB_FLTLSTSIZ 60 /* max mode/filter list size, zero ended */
207 #define HAMLIB_MAXDBLSTSIZ 8 /* max preamp/att levels supported, zero ended */
208 /* Debian: Hamlib 4.3 drops MAXDBLSTSIZ, restore until grig (only user) has been updated */
209 #define MAXDBLSTSIZ HAMLIB_MAXDBLSTSIZ
210 #define HAMLIB_CHANLSTSIZ 16 /* max mem_list size, zero ended */
211 #define HAMLIB_MAX_AGC_LEVELS 8 /* max AGC levels supported */
212 #define HAMLIB_MAX_SPECTRUM_SCOPES 4 /* max number of spectrum scopes supported */
213 #define HAMLIB_MAX_SPECTRUM_MODES 5 /* max number of spectrum modes supported */
214 #define HAMLIB_MAX_SPECTRUM_AVG_MODES 12 /* max number of spectrum averaging modes supported */
215 #define HAMLIB_MAX_SPECTRUM_SPANS 20 /* max number of spectrum modes supported */
216 #define HAMLIB_MAX_CAL_LENGTH 32 /* max calibration plots in cal_table_t */
217 #define HAMLIB_MAX_MODES 63
218 #define HAMLIB_MAX_VFOS 31
219 #define HAMLIB_MAX_ROTORS 63
220 #define HAMLIB_MAX_VFO_OPS 31
221 #define HAMLIB_MAX_RSCANS 31
223 
224 
235 #define CTCSS_LIST_SIZE 60
236 #define DCS_LIST_SIZE 128
237 typedef unsigned int tone_t;
238 
239 
243 typedef enum rig_port_e {
259 
260 
270 };
271 
272 
280 };
281 
282 
290 };
291 
292 
296 typedef enum {
297  RIG_FLAG_RECEIVER = (1 << 1),
298  RIG_FLAG_TRANSMITTER = (1 << 2),
299  RIG_FLAG_SCANNER = (1 << 3),
300  RIG_FLAG_MOBILE = (1 << 4),
301  RIG_FLAG_HANDHELD = (1 << 5),
302  RIG_FLAG_COMPUTER = (1 << 6),
303  RIG_FLAG_TRUNKING = (1 << 7),
304  RIG_FLAG_APRS = (1 << 8),
305  RIG_FLAG_TNC = (1 << 9),
306  RIG_FLAG_DXCLUSTER = (1 << 10),
307  RIG_FLAG_TUNER = (1 << 11)
309 
311 #define RIG_FLAG_TRANSCEIVER (RIG_FLAG_RECEIVER|RIG_FLAG_TRANSMITTER)
312 #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)
313 
314 #define RIG_TYPE_OTHER 0
315 #define RIG_TYPE_TRANSCEIVER RIG_FLAG_TRANSCEIVER
316 #define RIG_TYPE_HANDHELD (RIG_FLAG_TRANSCEIVER|RIG_FLAG_HANDHELD)
317 #define RIG_TYPE_MOBILE (RIG_FLAG_TRANSCEIVER|RIG_FLAG_MOBILE)
318 #define RIG_TYPE_RECEIVER RIG_FLAG_RECEIVER
319 #define RIG_TYPE_PCRECEIVER (RIG_FLAG_COMPUTER|RIG_FLAG_RECEIVER)
320 #define RIG_TYPE_SCANNER (RIG_FLAG_SCANNER|RIG_FLAG_RECEIVER)
321 #define RIG_TYPE_TRUNKSCANNER (RIG_TYPE_SCANNER|RIG_FLAG_TRUNKING)
322 #define RIG_TYPE_COMPUTER (RIG_FLAG_TRANSCEIVER|RIG_FLAG_COMPUTER)
323 #define RIG_TYPE_TUNER RIG_FLAG_TUNER
325 
326 
336  /* RIG_STATUS_NEW * *!< Initial release of code
337  * !! Use of RIG_STATUS_NEW is deprecated. Do not use it anymore */
338 };
339 
344 #define RIG_STATUS_NEW RIG_STATUS_UNTESTED
345 
346 
350 typedef enum {
355 
356 
360 typedef enum {
362  RIG_SPLIT_ON
364 
365 
371 typedef double freq_t;
372 
376 #define PRIfreq ".0f"
377 
381 #define SCNfreq "lf"
385 #define FREQFMT SCNfreq
386 
387 
393 typedef signed long shortfreq_t;
394 
396 #define Hz(f) ((freq_t)(f))
398 #define kHz(f) ((freq_t)((f)*(freq_t)1000))
400 #define MHz(f) ((freq_t)((f)*(freq_t)1000000))
402 #define GHz(f) ((freq_t)((f)*(freq_t)1000000000))
403 
405 #define s_Hz(f) ((shortfreq_t)(f))
407 #define s_kHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000))
409 #define s_MHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000))
411 #define s_GHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000000))
412 
414 #define RIG_FREQ_NONE Hz(0)
415 
416 
431 typedef unsigned int vfo_t;
432 
435 #define RIG_VFO_N(n) (1u<<(n))
436 
438 #define RIG_VFO_NONE 0
439 
441 #define RIG_VFO_A RIG_VFO_N(0)
442 
444 #define RIG_VFO_B RIG_VFO_N(1)
445 
447 #define RIG_VFO_C RIG_VFO_N(2)
448 
449 // Any addition VFOS need to go from 3-20
450 // To maintain backward compatibility these values cannot change
451 
453 #define RIG_VFO_SUB_A RIG_VFO_N(21)
454 
456 #define RIG_VFO_SUB_B RIG_VFO_N(22)
457 
459 #define RIG_VFO_SUB_C RIG_VFO_N(3)
460 
462 #define RIG_VFO_MAIN_A RIG_VFO_N(23)
463 
465 #define RIG_VFO_MAIN_B RIG_VFO_N(24)
466 
468 #define RIG_VFO_MAIN_C RIG_VFO_N(4)
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 
565 typedef enum dcd_e {
567  RIG_DCD_ON
569 
570 
576 typedef enum {
586 } dcd_type_t;
587 
588 
592 typedef enum {
598 
599 
605 typedef enum {
615 } ptt_type_t;
616 
617 
621 typedef 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 
633 typedef 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 
657 typedef 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 
683 typedef 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 
699 typedef long token_t;
700 
701 
703 #define RIG_CONF_END 0
705 
706 
720 /* strongly inspired from soundmodem. Thanks Thomas! */
728 };
729 
731 #define RIG_COMBO_MAX 16
732 #define RIG_BIN_MAX 80
734 
738 struct confparams {
740  const char *name;
741  const char *label;
742  const char *tooltip;
743  const char *dflt;
744  enum rig_conf_e type;
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 
763 typedef 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 
820 typedef 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 
875 typedef 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 
897 typedef 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),
990  RIG_PARM_BACKLIGHT = (1 << 2),
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)
996 };
997 
1006 enum cookie_e {
1007  RIG_COOKIE_GET,
1008  RIG_COOKIE_RELEASE,
1009  RIG_COOKIE_RENEW,
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 
1036 typedef 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 
1191 typedef 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_BIT37 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 
1283 typedef 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 
1350 struct filter_list {
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 
1382 struct ext_list {
1385 };
1386 
1388 #define RIG_EXT_END {0, {.i=0}}
1389 #define RIG_IS_EXT_END(x) ((x).token == 0)
1391 
1399 struct channel {
1401  int bank_num;
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 
1436 typedef struct channel channel_t;
1437 
1443 struct channel_cap {
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 
1477 typedef struct channel_cap channel_cap_t;
1478 
1479 
1490 typedef enum {
1500 
1501 
1515 struct chan_list {
1516  int startc;
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 
1536 typedef struct chan_list chan_t;
1537 
1538 
1550 struct gran {
1554 };
1555 
1559 typedef struct gran gran_t;
1560 
1561 
1565 struct cal_table {
1566  int size;
1567  struct {
1568  int raw;
1569  int val;
1570  } table[HAMLIB_MAX_CAL_LENGTH];
1571 };
1572 
1585 typedef 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 
1615 typedef struct cal_table_float cal_table_float_t;
1616 
1618 #define EMPTY_FLOAT_CAL { 0, { { 0, 0f }, } }
1619 
1620 typedef int (* chan_cb_t)(RIG *, channel_t **, int, const chan_t *, rig_ptr_t);
1621 typedef 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
1709 struct 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 
1984  const char *clone_combo_set;
1985  const char *clone_combo_get;
1986  const char *macro_name;
1987 };
1989 
1995 // all functions enumerated for rig_get_function_ptr
1996 enum rig_function_e {
1997  RIG_FUNCTION_INIT,
1998  RIG_FUNCTION_CLEANUP,
1999  RIG_FUNCTION_OPEN,
2000  RIG_FUNCTION_CLOSE,
2001  RIG_FUNCTION_SET_FREQ,
2002  RIG_FUNCTION_GET_FREQ,
2003  RIG_FUNCTION_SET_MODE,
2004  RIG_FUNCTION_GET_MODE,
2005  RIG_FUNCTION_SET_VFO,
2006  RIG_FUNCTION_GET_VFO,
2007  RIG_FUNCTION_SET_PTT,
2008  RIG_FUNCTION_GET_PTT,
2009  RIG_FUNCTION_GET_DCD,
2010  RIG_FUNCTION_SET_RPTR_SHIFT,
2011  RIG_FUNCTION_GET_RPTR_SHIFT,
2012  RIG_FUNCTION_SET_RPTR_OFFS,
2013  RIG_FUNCTION_GET_RPTR_OFFS,
2014  RIG_FUNCTION_SET_SPLIT_FREQ,
2015  RIG_FUNCTION_GET_SPLIT_FREQ,
2016  RIG_FUNCTION_SET_SPLIT_MODE,
2017  RIG_FUNCTION_SET_SPLIT_FREQ_MODE,
2018  RIG_FUNCTION_GET_SPLIT_FREQ_MODE,
2019  RIG_FUNCTION_SET_SPLIT_VFO,
2020  RIG_FUNCTION_GET_SPLIT_VFO,
2021  RIG_FUNCTION_SET_RIT,
2022  RIG_FUNCTION_GET_RIT,
2023  RIG_FUNCTION_SET_XIT,
2024  RIG_FUNCTION_GET_XIT,
2025  RIG_FUNCTION_SET_TS,
2026  RIG_FUNCTION_GET_TS,
2027  RIG_FUNCTION_SET_DCS_CODE,
2028  RIG_FUNCTION_GET_DCS_CODE,
2029  RIG_FUNCTION_SET_TONE,
2030  RIG_FUNCTION_GET_TONE,
2031  RIG_FUNCTION_SET_CTCSS_TONE,
2032  RIG_FUNCTION_GET_CTCSS_TONE,
2033  RIG_FUNCTION_SET_DCS_SQL,
2034  RIG_FUNCTION_GET_DCS_SQL,
2035  RIG_FUNCTION_SET_TONE_SQL,
2036  RIG_FUNCTION_GET_TONE_SQL,
2037  RIG_FUNCTION_SET_CTCSS_SQL,
2038  RIG_FUNCTION_GET_CTCSS_SQL,
2039  RIG_FUNCTION_POWER2MW,
2040  RIG_FUNCTION_MW2POWER,
2041  RIG_FUNCTION_SET_POWERSTAT,
2042  RIG_FUNCTION_GET_POWERSTAT,
2043  RIG_FUNCTION_RESET,
2044  RIG_FUNCTION_SET_ANT,
2045  RIG_FUNCTION_GET_ANT,
2046  RIG_FUNCTION_SET_LEVEL,
2047  RIG_FUNCTION_GET_LEVEL,
2048  RIG_FUNCTION_SET_FUNC,
2049  RIG_FUNCTION_GET_FUNC,
2050  RIG_FUNCTION_SET_PARM,
2051  RIG_FUNCTION_GET_PARM,
2052  RIG_FUNCTION_SET_EXT_LEVEL,
2053  RIG_FUNCTION_GET_EXT_LEVEL,
2054  RIG_FUNCTION_SET_EXT_FUNC,
2055  RIG_FUNCTION_GET_EXT_FUNC,
2056  RIG_FUNCTION_SET_EXT_PARM,
2057  RIG_FUNCTION_GET_EXT_PARM,
2058  RIG_FUNCTION_SET_CONF,
2059  RIG_FUNCTION_GET_CONF,
2060  RIG_FUNCTION_SEND_DTMF,
2061  RIG_FUNCTION_SEND_MORSE,
2062  RIG_FUNCTION_STOP_MORSE,
2063  RIG_FUNCTION_WAIT_MORSE,
2064  RIG_FUNCTION_SEND_VOICE_MEM,
2065  RIG_FUNCTION_SET_BANK,
2066  RIG_FUNCTION_SET_MEM,
2067  RIG_FUNCTION_GET_MEM,
2068  RIG_FUNCTION_VFO_OP,
2069  RIG_FUNCTION_SCAN,
2070  RIG_FUNCTION_SET_TRN,
2071  RIG_FUNCTION_GET_TRN,
2072  RIG_FUNCTION_DECODE_EVENT,
2073  RIG_FUNCTION_SET_CHANNEL,
2074  RIG_FUNCTION_GET_CHANNEL,
2075  RIG_FUNCTION_GET_INFO,
2076  RIG_FUNCTION_SET_CHAN_ALL_CB,
2077  RIG_FUNCTION_GET_CHAN_ALL_CB,
2078  RIG_FUNCTION_SET_MEM_ALL_CB,
2079  RIG_FUNCTION_GET_MEM_ALL_CB,
2080  RIG_FUNCTION_SET_VFO_OPT
2081 };
2082 
2088 extern HAMLIB_EXPORT (void *) rig_get_function_ptr(rig_model_t rig_model, enum rig_function_e rig_function);
2089 
2095 // values enumerated for rig->caps values
2096 enum rig_caps_int_e {
2097  RIG_CAPS_TARGETABLE_VFO,
2098  RIG_CAPS_RIG_MODEL,
2099  RIG_CAPS_PORT_TYPE,
2100  RIG_CAPS_PTT_TYPE,
2101  RIG_CAPS_HAS_GET_LEVEL
2102 };
2103 
2104 enum rig_caps_cptr_e {
2105  RIG_CAPS_VERSION_CPTR,
2106  RIG_CAPS_MFG_NAME_CPTR,
2107  RIG_CAPS_MODEL_NAME_CPTR,
2108  RIG_CAPS_STATUS_CPTR
2109 };
2110 
2116 extern HAMLIB_EXPORT (long long) rig_get_caps_int(rig_model_t rig_model, enum rig_caps_int_e rig_caps);
2117 
2123 extern HAMLIB_EXPORT (const char *) rig_get_caps_cptr(rig_model_t rig_model, enum rig_caps_cptr_e rig_caps);
2124 
2131 typedef struct hamlib_port {
2132  union {
2133  rig_port_t rig;
2134  ptt_type_t ptt;
2135  dcd_type_t dcd;
2136  } type;
2137 
2138  int fd;
2139  void *handle;
2141  int write_delay;
2142  int post_write_delay;
2144  struct {
2145  int tv_sec, tv_usec;
2146  } post_write_date;
2148  int timeout;
2149  short retry;
2150  short flushx;
2152  char pathname[HAMLIB_FILPATHLEN];
2154  union {
2155  struct {
2156  int rate;
2157  int data_bits;
2158  int stop_bits;
2159  enum serial_parity_e parity;
2160  enum serial_handshake_e handshake;
2161  enum serial_control_state_e rts_state;
2162  enum serial_control_state_e dtr_state;
2163  } serial;
2165  struct {
2166  int pin;
2167  } parallel;
2169  struct {
2170  int ptt_bitnum;
2171  } cm108;
2173  struct {
2174  int vid;
2175  int pid;
2176  int conf;
2177  int iface;
2178  int alt;
2179  char *vendor_name;
2180  char *product;
2181  } usb;
2183  struct {
2184  int on_value;
2185  int value;
2186  } gpio;
2187  } parm;
2188  int client_port;
2189 } hamlib_port_t;
2191 
2192 #if !defined(__APPLE__) || !defined(__cplusplus)
2193 typedef hamlib_port_t port_t;
2194 #endif
2195 
2196 #define HAMLIB_ELAPSED_GET 0
2197 #define HAMLIB_ELAPSED_SET 1
2198 #define HAMLIB_ELAPSED_INVALIDATE 2
2199 
2200 typedef enum {
2201  HAMLIB_CACHE_ALL, // to set all cache timeouts at once
2202  HAMLIB_CACHE_VFO,
2203  HAMLIB_CACHE_FREQ,
2204  HAMLIB_CACHE_MODE,
2205  HAMLIB_CACHE_PTT,
2206  HAMLIB_CACHE_SPLIT,
2207  HAMLIB_CACHE_WIDTH
2208 } hamlib_cache_t;
2209 
2210 typedef enum {
2211  TWIDDLE_OFF,
2212  TWIDDLE_ON
2213 } twiddle_state_t;
2214 
2220 struct rig_cache {
2221  int timeout_ms; // the cache timeout for invalidating itself
2222  vfo_t vfo;
2223  //freq_t freq; // to be deprecated in 4.1 when full Main/Sub/A/B caching is implemented in 4.1
2224  // other abstraction here is based on dual vfo rigs and mapped to all others
2225  // So we have four possible states of rig
2226  // MainA, MainB, SubA, SubB
2227  // Main is the Main VFO and Sub is for the 2nd VFO
2228  // Most rigs have MainA and MainB
2229  // Dual VFO rigs can have SubA and SubB too
2230  // For dual VFO rigs simplex operations are all done on MainA/MainB -- ergo this abstraction
2231  freq_t freqMainA; // VFO_A, VFO_MAIN, and VFO_MAINA
2232  freq_t freqMainB; // VFO_B, VFO_SUB, and VFO_MAINB
2233  freq_t freqMainC; // VFO_C, VFO_MAINC
2234  freq_t freqSubA; // VFO_SUBA -- only for rigs with dual Sub VFOs
2235  freq_t freqSubB; // VFO_SUBB -- only for rigs with dual Sub VFOs
2236  freq_t freqSubC; // VFO_SUBC -- only for rigs with 3 Sub VFOs
2237  freq_t freqMem; // VFO_MEM -- last MEM channel
2238  rmode_t modeMainA;
2239  rmode_t modeMainB;
2240  rmode_t modeMainC;
2241  rmode_t modeSubA;
2242  rmode_t modeSubB;
2243  rmode_t modeSubC;
2244  rmode_t modeMem;
2245  pbwidth_t widthMainA; // if non-zero then rig has separate width for MainA
2246  pbwidth_t widthMainB; // if non-zero then rig has separate width for MainB
2247  pbwidth_t widthMainC; // if non-zero then rig has separate width for MainC
2248  pbwidth_t widthSubA; // if non-zero then rig has separate width for SubA
2249  pbwidth_t widthSubB; // if non-zero then rig has separate width for SubB
2250  pbwidth_t widthSubC; // if non-zero then rig has separate width for SubC
2251  pbwidth_t widthMem; // if non-zero then rig has separate width for Mem
2252  ptt_t ptt;
2253  split_t split;
2254  vfo_t split_vfo; // split caches two values
2255  struct timespec time_freqMainA;
2256  struct timespec time_freqMainB;
2257  struct timespec time_freqMainC;
2258  struct timespec time_freqSubA;
2259  struct timespec time_freqSubB;
2260  struct timespec time_freqSubC;
2261  struct timespec time_freqMem;
2262  struct timespec time_vfo;
2263  struct timespec time_modeMainA;
2264  struct timespec time_modeMainB;
2265  struct timespec time_modeMainC;
2266  struct timespec time_modeSubA;
2267  struct timespec time_modeSubB;
2268  struct timespec time_modeSubC;
2269  struct timespec time_modeMem;
2270  struct timespec time_widthMainA;
2271  struct timespec time_widthMainB;
2272  struct timespec time_widthMainC;
2273  struct timespec time_widthSubA;
2274  struct timespec time_widthSubB;
2275  struct timespec time_widthSubC;
2276  struct timespec time_widthMem;
2277  struct timespec time_ptt;
2278  struct timespec time_split;
2279  int satmode; // if rig is in satellite mode
2280 };
2281 
2282 
2293 struct rig_state {
2294  /*
2295  * overridable fields
2296  */
2297  hamlib_port_t rigport;
2298  hamlib_port_t pttport;
2299  hamlib_port_t dcdport;
2301  double vfo_comp;
2304  freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
2305  freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
2307  struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
2309  struct filter_list filters[HAMLIB_FLTLSTSIZ];
2313  chan_t chan_list[HAMLIB_CHANLSTSIZ];
2321  int preamp[HAMLIB_MAXDBLSTSIZ];
2322  int attenuator[HAMLIB_MAXDBLSTSIZ];
2335  /*
2336  * non overridable fields, internal use
2337  */
2338 
2341  int vfo_list;
2343  rig_ptr_t priv;
2344  rig_ptr_t obj;
2350  //rmode_t current_modeB; /*!< Mode currently set VFOB */
2354  // mode_list is used by some
2355  // so anything added to this structure must be below here
2356  int transmit;
2360  time_t twiddle_time;
2362  // uplink allows gpredict to behave better by no reading the uplink VFO
2363  int uplink;
2364  struct rig_cache cache;
2365  int vfo_opt;
2380 };
2381 
2383 typedef int (*vprintf_cb_t)(enum rig_debug_level_e,
2384  rig_ptr_t,
2385  const char *,
2386  va_list);
2387 
2388 typedef int (*freq_cb_t)(RIG *, vfo_t, freq_t, rig_ptr_t);
2389 typedef int (*mode_cb_t)(RIG *, vfo_t, rmode_t, pbwidth_t, rig_ptr_t);
2390 typedef int (*vfo_cb_t)(RIG *, vfo_t, rig_ptr_t);
2391 typedef int (*ptt_cb_t)(RIG *, vfo_t, ptt_t, rig_ptr_t);
2392 typedef int (*dcd_cb_t)(RIG *, vfo_t, dcd_t, rig_ptr_t);
2393 typedef int (*pltune_cb_t)(RIG *,
2394  vfo_t, freq_t *,
2395  rmode_t *,
2396  pbwidth_t *,
2397  rig_ptr_t);
2398 typedef int (*spectrum_cb_t)(RIG *,
2399  struct rig_spectrum_line *,
2400  rig_ptr_t);
2401 
2403 
2422  freq_cb_t freq_event;
2423  rig_ptr_t freq_arg;
2424  mode_cb_t mode_event;
2425  rig_ptr_t mode_arg;
2426  vfo_cb_t vfo_event;
2427  rig_ptr_t vfo_arg;
2428  ptt_cb_t ptt_event;
2429  rig_ptr_t ptt_arg;
2430  dcd_cb_t dcd_event;
2431  rig_ptr_t dcd_arg;
2432  pltune_cb_t pltune;
2433  rig_ptr_t pltune_arg;
2434  spectrum_cb_t spectrum_event;
2435  rig_ptr_t spectrum_arg;
2436  /* etc.. */
2437 };
2438 
2439 
2449 struct s_rig {
2450  struct rig_caps *caps;
2451  struct rig_state state;
2452  struct rig_callbacks callbacks;
2453 };
2454 
2455 
2456 
2457 /* --------------- API function prototypes -----------------*/
2458 
2460 
2461 extern HAMLIB_EXPORT(RIG *) rig_init HAMLIB_PARAMS((rig_model_t rig_model));
2462 extern HAMLIB_EXPORT(int) rig_open HAMLIB_PARAMS((RIG *rig));
2463 
2464 /*
2465  * General API commands, from most primitive to least.. :()
2466  * List Set/Get functions pairs
2467  */
2468 
2469 extern HAMLIB_EXPORT(int)
2470 rig_flush(hamlib_port_t *port);
2471 
2472 extern HAMLIB_EXPORT(int)
2473 rig_set_freq HAMLIB_PARAMS((RIG *rig,
2474  vfo_t vfo,
2475  freq_t freq));
2476 extern HAMLIB_EXPORT(int)
2477 rig_get_freq HAMLIB_PARAMS((RIG *rig,
2478  vfo_t vfo,
2479  freq_t *freq));
2480 
2481 extern HAMLIB_EXPORT(int)
2482 rig_set_mode HAMLIB_PARAMS((RIG *rig,
2483  vfo_t vfo,
2484  rmode_t mode,
2485  pbwidth_t width));
2486 extern HAMLIB_EXPORT(int)
2487 rig_get_mode HAMLIB_PARAMS((RIG *rig,
2488  vfo_t vfo,
2489  rmode_t *mode,
2490  pbwidth_t *width));
2491 
2492 #if 0
2493 #define rig_set_vfo(r,v) rig_set_vfo(r,v,__builtin_FUNCTION())
2494 extern HAMLIB_EXPORT(int)
2495 rig_set_vfo HAMLIB_PARAMS((RIG *rig,
2496  vfo_t vfo, const char *func));
2497 #else
2498 extern HAMLIB_EXPORT(int)
2499 rig_set_vfo HAMLIB_PARAMS((RIG *rig,
2500  vfo_t vfo));
2501 #endif
2502 extern HAMLIB_EXPORT(int)
2503 rig_get_vfo HAMLIB_PARAMS((RIG *rig,
2504  vfo_t *vfo));
2505 
2506 extern HAMLIB_EXPORT(int)
2507 rig_get_vfo_info HAMLIB_PARAMS((RIG *rig,
2508  vfo_t vfo,
2509  freq_t *freq,
2510  rmode_t *mode,
2511  pbwidth_t *width,
2512  split_t *split,
2513  int *satmode));
2514 
2515 extern HAMLIB_EXPORT(int)
2516 rig_get_vfo_list HAMLIB_PARAMS((RIG *rig, char *buf, int buflen));
2517 
2518 extern HAMLIB_EXPORT(int)
2519 netrigctl_get_vfo_mode HAMLIB_PARAMS((RIG *rig));
2520 
2521 extern HAMLIB_EXPORT(int)
2522 rig_set_ptt HAMLIB_PARAMS((RIG *rig,
2523  vfo_t vfo,
2524  ptt_t ptt));
2525 extern HAMLIB_EXPORT(int)
2526 rig_get_ptt HAMLIB_PARAMS((RIG *rig,
2527  vfo_t vfo,
2528  ptt_t *ptt));
2529 
2530 extern HAMLIB_EXPORT(int)
2531 rig_get_dcd HAMLIB_PARAMS((RIG *rig,
2532  vfo_t vfo,
2533  dcd_t *dcd));
2534 
2535 extern HAMLIB_EXPORT(int)
2536 rig_set_rptr_shift HAMLIB_PARAMS((RIG *rig,
2537  vfo_t vfo,
2538  rptr_shift_t rptr_shift));
2539 extern HAMLIB_EXPORT(int)
2540 rig_get_rptr_shift HAMLIB_PARAMS((RIG *rig,
2541  vfo_t vfo,
2542  rptr_shift_t *rptr_shift));
2543 
2544 extern HAMLIB_EXPORT(int)
2545 rig_set_rptr_offs HAMLIB_PARAMS((RIG *rig,
2546  vfo_t vfo,
2547  shortfreq_t rptr_offs));
2548 extern HAMLIB_EXPORT(int)
2549 rig_get_rptr_offs HAMLIB_PARAMS((RIG *rig,
2550  vfo_t vfo,
2551  shortfreq_t *rptr_offs));
2552 
2553 extern HAMLIB_EXPORT(int)
2554 rig_set_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2555  vfo_t vfo,
2556  tone_t tone));
2557 extern HAMLIB_EXPORT(int)
2558 rig_get_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2559  vfo_t vfo,
2560  tone_t *tone));
2561 
2562 extern HAMLIB_EXPORT(int)
2563 rig_set_dcs_code HAMLIB_PARAMS((RIG *rig,
2564  vfo_t vfo,
2565  tone_t code));
2566 extern HAMLIB_EXPORT(int)
2567 rig_get_dcs_code HAMLIB_PARAMS((RIG *rig,
2568  vfo_t vfo,
2569  tone_t *code));
2570 
2571 extern HAMLIB_EXPORT(int)
2572 rig_set_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2573  vfo_t vfo,
2574  tone_t tone));
2575 extern HAMLIB_EXPORT(int)
2576 rig_get_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2577  vfo_t vfo,
2578  tone_t *tone));
2579 
2580 extern HAMLIB_EXPORT(int)
2581 rig_set_dcs_sql HAMLIB_PARAMS((RIG *rig,
2582  vfo_t vfo,
2583  tone_t code));
2584 extern HAMLIB_EXPORT(int)
2585 rig_get_dcs_sql HAMLIB_PARAMS((RIG *rig,
2586  vfo_t vfo,
2587  tone_t *code));
2588 
2589 extern HAMLIB_EXPORT(int)
2590 rig_set_split_freq HAMLIB_PARAMS((RIG *rig,
2591  vfo_t vfo,
2592  freq_t tx_freq));
2593 extern HAMLIB_EXPORT(int)
2594 rig_get_split_freq HAMLIB_PARAMS((RIG *rig,
2595  vfo_t vfo,
2596  freq_t *tx_freq));
2597 
2598 extern HAMLIB_EXPORT(int)
2599 rig_set_split_mode HAMLIB_PARAMS((RIG *rig,
2600  vfo_t vfo,
2601  rmode_t tx_mode,
2602  pbwidth_t tx_width));
2603 extern HAMLIB_EXPORT(int)
2604 rig_get_split_mode HAMLIB_PARAMS((RIG *rig,
2605  vfo_t vfo,
2606  rmode_t *tx_mode,
2607  pbwidth_t *tx_width));
2608 
2609 extern HAMLIB_EXPORT(int)
2610 rig_set_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2611  vfo_t vfo,
2612  freq_t tx_freq,
2613  rmode_t tx_mode,
2614  pbwidth_t tx_width));
2615 extern HAMLIB_EXPORT(int)
2616 rig_get_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2617  vfo_t vfo,
2618  freq_t *tx_freq,
2619  rmode_t *tx_mode,
2620  pbwidth_t *tx_width));
2621 
2622 extern HAMLIB_EXPORT(int)
2623 rig_set_split_vfo HAMLIB_PARAMS((RIG *,
2624  vfo_t rx_vfo,
2625  split_t split,
2626  vfo_t tx_vfo));
2627 extern HAMLIB_EXPORT(int)
2628 rig_get_split_vfo HAMLIB_PARAMS((RIG *,
2629  vfo_t rx_vfo,
2630  split_t *split,
2631  vfo_t *tx_vfo));
2632 
2633 #define rig_set_split(r,v,s) rig_set_split_vfo((r),(v),(s),RIG_VFO_CURR)
2634 #define rig_get_split(r,v,s) ({ vfo_t _tx_vfo; rig_get_split_vfo((r),(v),(s),&_tx_vfo); })
2635 
2636 extern HAMLIB_EXPORT(int)
2637 rig_set_rit HAMLIB_PARAMS((RIG *rig,
2638  vfo_t vfo,
2639  shortfreq_t rit));
2640 extern HAMLIB_EXPORT(int)
2641 rig_get_rit HAMLIB_PARAMS((RIG *rig,
2642  vfo_t vfo,
2643  shortfreq_t *rit));
2644 
2645 extern HAMLIB_EXPORT(int)
2646 rig_set_xit HAMLIB_PARAMS((RIG *rig,
2647  vfo_t vfo,
2648  shortfreq_t xit));
2649 extern HAMLIB_EXPORT(int)
2650 rig_get_xit HAMLIB_PARAMS((RIG *rig,
2651  vfo_t vfo,
2652  shortfreq_t *xit));
2653 
2654 extern HAMLIB_EXPORT(int)
2655 rig_set_ts HAMLIB_PARAMS((RIG *rig,
2656  vfo_t vfo,
2657  shortfreq_t ts));
2658 extern HAMLIB_EXPORT(int)
2659 rig_get_ts HAMLIB_PARAMS((RIG *rig,
2660  vfo_t vfo,
2661  shortfreq_t *ts));
2662 
2663 extern HAMLIB_EXPORT(int)
2664 rig_power2mW HAMLIB_PARAMS((RIG *rig,
2665  unsigned int *mwpower,
2666  float power,
2667  freq_t freq,
2668  rmode_t mode));
2669 extern HAMLIB_EXPORT(int)
2670 rig_mW2power HAMLIB_PARAMS((RIG *rig,
2671  float *power,
2672  unsigned int mwpower,
2673  freq_t freq,
2674  rmode_t mode));
2675 
2676 extern HAMLIB_EXPORT(shortfreq_t)
2677 rig_get_resolution HAMLIB_PARAMS((RIG *rig,
2678  rmode_t mode));
2679 
2680 extern HAMLIB_EXPORT(int)
2681 rig_set_level HAMLIB_PARAMS((RIG *rig,
2682  vfo_t vfo,
2683  setting_t level,
2684  value_t val));
2685 extern HAMLIB_EXPORT(int)
2686 rig_get_level HAMLIB_PARAMS((RIG *rig,
2687  vfo_t vfo,
2688  setting_t level,
2689  value_t *val));
2690 
2691 #define rig_get_strength(r,v,s) rig_get_level((r),(v),RIG_LEVEL_STRENGTH, (value_t*)(s))
2692 
2693 extern HAMLIB_EXPORT(int)
2694 rig_set_parm HAMLIB_PARAMS((RIG *rig,
2695  setting_t parm,
2696  value_t val));
2697 extern HAMLIB_EXPORT(int)
2698 rig_get_parm HAMLIB_PARAMS((RIG *rig,
2699  setting_t parm,
2700  value_t *val));
2701 
2702 extern HAMLIB_EXPORT(int)
2703 rig_set_conf HAMLIB_PARAMS((RIG *rig,
2704  token_t token,
2705  const char *val));
2706 extern HAMLIB_EXPORT(int)
2707 rig_get_conf HAMLIB_PARAMS((RIG *rig,
2708  token_t token,
2709  char *val));
2710 
2711 extern HAMLIB_EXPORT(int)
2712 rig_set_powerstat HAMLIB_PARAMS((RIG *rig,
2713  powerstat_t status));
2714 extern HAMLIB_EXPORT(int)
2715 rig_get_powerstat HAMLIB_PARAMS((RIG *rig,
2716  powerstat_t *status));
2717 
2718 extern HAMLIB_EXPORT(int)
2719 rig_reset HAMLIB_PARAMS((RIG *rig,
2720  reset_t reset)); /* dangerous! */
2721 
2722 extern HAMLIB_EXPORT(int)
2723 rig_set_ext_level HAMLIB_PARAMS((RIG *rig,
2724  vfo_t vfo,
2725  token_t token,
2726  value_t val));
2727 extern HAMLIB_EXPORT(int)
2728 rig_get_ext_level HAMLIB_PARAMS((RIG *rig,
2729  vfo_t vfo,
2730  token_t token,
2731  value_t *val));
2732 
2733 extern HAMLIB_EXPORT(int)
2734 rig_set_ext_func HAMLIB_PARAMS((RIG *rig,
2735  vfo_t vfo,
2736  token_t token,
2737  int status));
2738 extern HAMLIB_EXPORT(int)
2739 rig_get_ext_func HAMLIB_PARAMS((RIG *rig,
2740  vfo_t vfo,
2741  token_t token,
2742  int *status));
2743 
2744 extern HAMLIB_EXPORT(int)
2745 rig_set_ext_parm HAMLIB_PARAMS((RIG *rig,
2746  token_t token,
2747  value_t val));
2748 extern HAMLIB_EXPORT(int)
2749 rig_get_ext_parm HAMLIB_PARAMS((RIG *rig,
2750  token_t token,
2751  value_t *val));
2752 
2753 extern HAMLIB_EXPORT(int)
2754 rig_ext_func_foreach HAMLIB_PARAMS((RIG *rig,
2755  int (*cfunc)(RIG *,
2756  const struct confparams *,
2757  rig_ptr_t),
2758  rig_ptr_t data));
2759 extern HAMLIB_EXPORT(int)
2760 rig_ext_level_foreach HAMLIB_PARAMS((RIG *rig,
2761  int (*cfunc)(RIG *,
2762  const struct confparams *,
2763  rig_ptr_t),
2764  rig_ptr_t data));
2765 extern HAMLIB_EXPORT(int)
2766 rig_ext_parm_foreach HAMLIB_PARAMS((RIG *rig,
2767  int (*cfunc)(RIG *,
2768  const struct confparams *,
2769  rig_ptr_t),
2770  rig_ptr_t data));
2771 
2772 extern HAMLIB_EXPORT(const struct confparams *)
2773 rig_ext_lookup HAMLIB_PARAMS((RIG *rig,
2774  const char *name));
2775 
2776 extern HAMLIB_EXPORT(const struct confparams *)
2777 rig_ext_lookup_tok HAMLIB_PARAMS((RIG *rig,
2778  token_t token));
2779 extern HAMLIB_EXPORT(token_t)
2780 rig_ext_token_lookup HAMLIB_PARAMS((RIG *rig,
2781  const char *name));
2782 
2783 
2784 extern HAMLIB_EXPORT(int)
2785 rig_token_foreach HAMLIB_PARAMS((RIG *rig,
2786  int (*cfunc)(const struct confparams *,
2787  rig_ptr_t),
2788  rig_ptr_t data));
2789 
2790 extern HAMLIB_EXPORT(const struct confparams *)
2791 rig_confparam_lookup HAMLIB_PARAMS((RIG *rig,
2792  const char *name));
2793 extern HAMLIB_EXPORT(token_t)
2794 rig_token_lookup HAMLIB_PARAMS((RIG *rig,
2795  const char *name));
2796 
2797 extern HAMLIB_EXPORT(int)
2798 rig_close HAMLIB_PARAMS((RIG *rig));
2799 
2800 extern HAMLIB_EXPORT(int)
2801 rig_cleanup HAMLIB_PARAMS((RIG *rig));
2802 
2803 extern HAMLIB_EXPORT(int)
2804 rig_set_ant HAMLIB_PARAMS((RIG *rig,
2805  vfo_t vfo,
2806  ant_t ant, /* antenna */
2807  value_t option)); /* optional ant info */
2808 extern HAMLIB_EXPORT(int)
2809 rig_get_ant HAMLIB_PARAMS((RIG *rig,
2810  vfo_t vfo,
2811  ant_t ant,
2812  value_t *option,
2813  ant_t *ant_curr,
2814  ant_t *ant_tx,
2815  ant_t *ant_rx));
2816 
2817 extern HAMLIB_EXPORT(setting_t)
2818 rig_has_get_level HAMLIB_PARAMS((RIG *rig,
2819  setting_t level));
2820 extern HAMLIB_EXPORT(setting_t)
2821 rig_has_set_level HAMLIB_PARAMS((RIG *rig,
2822  setting_t level));
2823 
2824 extern HAMLIB_EXPORT(setting_t)
2825 rig_has_get_parm HAMLIB_PARAMS((RIG *rig,
2826  setting_t parm));
2827 extern HAMLIB_EXPORT(setting_t)
2828 rig_has_set_parm HAMLIB_PARAMS((RIG *rig,
2829  setting_t parm));
2830 
2831 extern HAMLIB_EXPORT(setting_t)
2832 rig_has_get_func HAMLIB_PARAMS((RIG *rig,
2833  setting_t func));
2834 extern HAMLIB_EXPORT(setting_t)
2835 rig_has_set_func HAMLIB_PARAMS((RIG *rig,
2836  setting_t func));
2837 
2838 extern HAMLIB_EXPORT(int)
2839 rig_set_func HAMLIB_PARAMS((RIG *rig,
2840  vfo_t vfo,
2841  setting_t func,
2842  int status));
2843 extern HAMLIB_EXPORT(int)
2844 rig_get_func HAMLIB_PARAMS((RIG *rig,
2845  vfo_t vfo,
2846  setting_t func,
2847  int *status));
2848 
2849 extern HAMLIB_EXPORT(int)
2850 rig_send_dtmf HAMLIB_PARAMS((RIG *rig,
2851  vfo_t vfo,
2852  const char *digits));
2853 extern HAMLIB_EXPORT(int)
2854 rig_recv_dtmf HAMLIB_PARAMS((RIG *rig,
2855  vfo_t vfo,
2856  char *digits,
2857  int *length));
2858 
2859 extern HAMLIB_EXPORT(int)
2860 rig_send_morse HAMLIB_PARAMS((RIG *rig,
2861  vfo_t vfo,
2862  const char *msg));
2863 
2864 extern HAMLIB_EXPORT(int)
2865 rig_stop_morse HAMLIB_PARAMS((RIG *rig,
2866  vfo_t vfo));
2867 
2868 extern HAMLIB_EXPORT(int)
2869 rig_wait_morse HAMLIB_PARAMS((RIG *rig,
2870  vfo_t vfo));
2871 
2872 extern HAMLIB_EXPORT(int)
2873 rig_send_voice_mem HAMLIB_PARAMS((RIG *rig,
2874  vfo_t vfo,
2875  int ch));
2876 
2877 extern HAMLIB_EXPORT(int)
2878 rig_set_bank HAMLIB_PARAMS((RIG *rig,
2879  vfo_t vfo,
2880  int bank));
2881 
2882 extern HAMLIB_EXPORT(int)
2883 rig_set_mem HAMLIB_PARAMS((RIG *rig,
2884  vfo_t vfo,
2885  int ch));
2886 extern HAMLIB_EXPORT(int)
2887 rig_get_mem HAMLIB_PARAMS((RIG *rig,
2888  vfo_t vfo,
2889  int *ch));
2890 
2891 extern HAMLIB_EXPORT(int)
2892 rig_vfo_op HAMLIB_PARAMS((RIG *rig,
2893  vfo_t vfo,
2894  vfo_op_t op));
2895 
2896 extern HAMLIB_EXPORT(vfo_op_t)
2897 rig_has_vfo_op HAMLIB_PARAMS((RIG *rig,
2898  vfo_op_t op));
2899 
2900 extern HAMLIB_EXPORT(int)
2901 rig_scan HAMLIB_PARAMS((RIG *rig,
2902  vfo_t vfo,
2903  scan_t scan,
2904  int ch));
2905 
2906 extern HAMLIB_EXPORT(scan_t)
2907 rig_has_scan HAMLIB_PARAMS((RIG *rig,
2908  scan_t scan));
2909 
2910 extern HAMLIB_EXPORT(int)
2911 rig_set_channel HAMLIB_PARAMS((RIG *rig,
2912  vfo_t vfo,
2913  const channel_t *chan)); /* mem */
2914 extern HAMLIB_EXPORT(int)
2915 rig_get_channel HAMLIB_PARAMS((RIG *rig,
2916  vfo_t vfo,
2917  channel_t *chan, int read_only));
2918 
2919 extern HAMLIB_EXPORT(int)
2920 rig_set_chan_all HAMLIB_PARAMS((RIG *rig,
2921  vfo_t vfo,
2922  const channel_t chans[]));
2923 extern HAMLIB_EXPORT(int)
2924 rig_get_chan_all HAMLIB_PARAMS((RIG *rig,
2925  vfo_t vfo,
2926  channel_t chans[]));
2927 
2928 extern HAMLIB_EXPORT(int)
2929 rig_set_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2930  vfo_t vfo,
2931  chan_cb_t chan_cb,
2932  rig_ptr_t));
2933 extern HAMLIB_EXPORT(int)
2934 rig_get_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2935  vfo_t vfo,
2936  chan_cb_t chan_cb,
2937  rig_ptr_t));
2938 
2939 extern HAMLIB_EXPORT(int)
2940 rig_set_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2941  vfo_t vfo,
2942  chan_cb_t chan_cb,
2943  confval_cb_t parm_cb,
2944  rig_ptr_t));
2945 extern HAMLIB_EXPORT(int)
2946 rig_get_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2947  vfo_t vfo,
2948  chan_cb_t chan_cb,
2949  confval_cb_t parm_cb,
2950  rig_ptr_t));
2951 
2952 extern HAMLIB_EXPORT(int)
2953 rig_set_mem_all HAMLIB_PARAMS((RIG *rig,
2954  vfo_t vfo,
2955  const channel_t *chan,
2956  const struct confparams *,
2957  const value_t *));
2958 extern HAMLIB_EXPORT(int)
2959 rig_get_mem_all HAMLIB_PARAMS((RIG *rig,
2960  vfo_t vfo,
2961  channel_t *chan,
2962  const struct confparams *,
2963  value_t *));
2964 
2965 extern HAMLIB_EXPORT(const chan_t *)
2966 rig_lookup_mem_caps HAMLIB_PARAMS((RIG *rig,
2967  int ch));
2968 
2969 extern HAMLIB_EXPORT(int)
2970 rig_mem_count HAMLIB_PARAMS((RIG *rig));
2971 
2972 extern HAMLIB_EXPORT(int)
2973 rig_set_trn HAMLIB_PARAMS((RIG *rig,
2974  int trn));
2975 extern HAMLIB_EXPORT(int)
2976 rig_get_trn HAMLIB_PARAMS((RIG *rig,
2977  int *trn));
2978 
2979 extern HAMLIB_EXPORT(int)
2980 rig_set_freq_callback HAMLIB_PARAMS((RIG *,
2981  freq_cb_t,
2982  rig_ptr_t));
2983 
2984 extern HAMLIB_EXPORT(int)
2985 rig_set_mode_callback HAMLIB_PARAMS((RIG *,
2986  mode_cb_t,
2987  rig_ptr_t));
2988 extern HAMLIB_EXPORT(int)
2989 rig_set_vfo_callback HAMLIB_PARAMS((RIG *,
2990  vfo_cb_t,
2991  rig_ptr_t));
2992 
2993 extern HAMLIB_EXPORT(int)
2994 rig_set_ptt_callback HAMLIB_PARAMS((RIG *,
2995  ptt_cb_t,
2996  rig_ptr_t));
2997 
2998 extern HAMLIB_EXPORT(int)
2999 rig_set_dcd_callback HAMLIB_PARAMS((RIG *,
3000  dcd_cb_t,
3001  rig_ptr_t));
3002 
3003 extern HAMLIB_EXPORT(int)
3004 rig_set_pltune_callback HAMLIB_PARAMS((RIG *,
3005  pltune_cb_t,
3006  rig_ptr_t));
3007 
3008 extern HAMLIB_EXPORT(int)
3009 rig_set_spectrum_callback HAMLIB_PARAMS((RIG *,
3010  spectrum_cb_t,
3011  rig_ptr_t));
3012 
3013 extern HAMLIB_EXPORT(int)
3014 rig_set_twiddle HAMLIB_PARAMS((RIG *rig,
3015  int seconds));
3016 
3017 extern HAMLIB_EXPORT(int)
3018 rig_get_twiddle HAMLIB_PARAMS((RIG *rig,
3019  int *seconds));
3020 
3021 extern HAMLIB_EXPORT(int)
3022 rig_set_uplink HAMLIB_PARAMS((RIG *rig,
3023  int val));
3024 
3025 extern HAMLIB_EXPORT(const char *)
3026 rig_get_info HAMLIB_PARAMS((RIG *rig));
3027 
3028 extern HAMLIB_EXPORT(const struct rig_caps *)
3029 rig_get_caps HAMLIB_PARAMS((rig_model_t rig_model));
3030 
3031 extern HAMLIB_EXPORT(const freq_range_t *)
3032 rig_get_range HAMLIB_PARAMS((const freq_range_t *range_list,
3033  freq_t freq,
3034  rmode_t mode));
3035 
3036 extern HAMLIB_EXPORT(pbwidth_t)
3037 rig_passband_normal HAMLIB_PARAMS((RIG *rig,
3038  rmode_t mode));
3039 extern HAMLIB_EXPORT(pbwidth_t)
3040 rig_passband_narrow HAMLIB_PARAMS((RIG *rig,
3041  rmode_t mode));
3042 extern HAMLIB_EXPORT(pbwidth_t)
3043 rig_passband_wide HAMLIB_PARAMS((RIG *rig,
3044  rmode_t mode));
3045 
3046 extern HAMLIB_EXPORT(const char *)
3047 rigerror HAMLIB_PARAMS((int errnum));
3048 
3049 extern HAMLIB_EXPORT(int)
3050 rig_setting2idx HAMLIB_PARAMS((setting_t s));
3051 
3052 extern HAMLIB_EXPORT(setting_t)
3053 rig_idx2setting(int i);
3054 /*
3055  * Even if these functions are prefixed with "rig_", they are not rig specific
3056  * Maybe "hamlib_" would have been better. Let me know. --SF
3057  */
3058 extern HAMLIB_EXPORT(void)
3059 rig_set_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
3060 
3061 extern HAMLIB_EXPORT(void)
3062 rig_set_debug_time_stamp HAMLIB_PARAMS((int flag));
3063 
3064 #define rig_set_debug_level(level) rig_set_debug(level)
3065 
3066 extern HAMLIB_EXPORT(int)
3067 rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
3068 
3069 
3070 // this need to be fairly big to avoid compiler warnings
3071 #define DEBUGMSGSAVE_SIZE 24000
3072 extern HAMLIB_EXPORT_VAR(char) debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug msg
3073 extern HAMLIB_EXPORT_VAR(char) debugmsgsave2[DEBUGMSGSAVE_SIZE]; // last-1 debug msg
3074 extern HAMLIB_EXPORT_VAR(char) debugmsgsave3[DEBUGMSGSAVE_SIZE]; // last-2 debug msg
3075 #ifndef __cplusplus
3076 #ifdef __GNUC__
3077 // doing the debug macro with a dummy sprintf allows gcc to check the format string
3078 #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);
3079 #endif
3080 #endif
3081 extern HAMLIB_EXPORT(void)
3082 rig_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level,
3083  const char *fmt, ...));
3084 
3085 extern HAMLIB_EXPORT(vprintf_cb_t)
3086 rig_set_debug_callback HAMLIB_PARAMS((vprintf_cb_t cb,
3087  rig_ptr_t arg));
3088 
3089 extern HAMLIB_EXPORT(FILE *)
3090 rig_set_debug_file HAMLIB_PARAMS((FILE *stream));
3091 
3092 extern HAMLIB_EXPORT(int)
3093 rig_register HAMLIB_PARAMS((const struct rig_caps *caps));
3094 
3095 extern HAMLIB_EXPORT(int)
3096 rig_unregister HAMLIB_PARAMS((rig_model_t rig_model));
3097 
3098 extern HAMLIB_EXPORT(int)
3099 rig_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rig_caps *, rig_ptr_t),
3100  rig_ptr_t data));
3101 
3102 extern HAMLIB_EXPORT(int)
3103 rig_list_foreach_model HAMLIB_PARAMS((int (*cfunc)(const rig_model_t rig_model, rig_ptr_t),
3104  rig_ptr_t data));
3105 
3106 extern HAMLIB_EXPORT(int)
3107 rig_load_backend HAMLIB_PARAMS((const char *be_name));
3108 
3109 extern HAMLIB_EXPORT(int)
3110 rig_check_backend HAMLIB_PARAMS((rig_model_t rig_model));
3111 
3112 extern HAMLIB_EXPORT(int)
3113 rig_load_all_backends HAMLIB_PARAMS((void));
3114 
3115 typedef int (*rig_probe_func_t)(const hamlib_port_t *, rig_model_t, rig_ptr_t);
3116 
3117 extern HAMLIB_EXPORT(int)
3118 rig_probe_all HAMLIB_PARAMS((hamlib_port_t *p,
3119  rig_probe_func_t,
3120  rig_ptr_t));
3121 
3122 extern HAMLIB_EXPORT(rig_model_t)
3123 rig_probe HAMLIB_PARAMS((hamlib_port_t *p));
3124 
3125 
3126 /* Misc calls */
3127 extern HAMLIB_EXPORT(const char *) rig_strrmode(rmode_t mode);
3128 extern HAMLIB_EXPORT(int) rig_strrmodes(rmode_t modes, char *buf, int buflen);
3129 extern HAMLIB_EXPORT(const char *) rig_strvfo(vfo_t vfo);
3130 extern HAMLIB_EXPORT(const char *) rig_strfunc(setting_t);
3131 extern HAMLIB_EXPORT(const char *) rig_strlevel(setting_t);
3132 extern HAMLIB_EXPORT(const char *) rig_strparm(setting_t);
3133 extern HAMLIB_EXPORT(const char *) rig_stragclevel(enum agc_level_e level);
3134 extern HAMLIB_EXPORT(const char *) rig_strptrshift(rptr_shift_t);
3135 extern HAMLIB_EXPORT(const char *) rig_strvfop(vfo_op_t op);
3136 extern HAMLIB_EXPORT(const char *) rig_strscan(scan_t scan);
3137 extern HAMLIB_EXPORT(const char *) rig_strstatus(enum rig_status_e status);
3138 extern HAMLIB_EXPORT(const char *) rig_strmtype(chan_type_t mtype);
3139 extern HAMLIB_EXPORT(const char *) rig_strspectrummode(enum rig_spectrum_mode_e mode);
3140 
3141 extern HAMLIB_EXPORT(rmode_t) rig_parse_mode(const char *s);
3142 extern HAMLIB_EXPORT(vfo_t) rig_parse_vfo(const char *s);
3143 extern HAMLIB_EXPORT(setting_t) rig_parse_func(const char *s);
3144 extern HAMLIB_EXPORT(setting_t) rig_parse_level(const char *s);
3145 extern HAMLIB_EXPORT(setting_t) rig_parse_parm(const char *s);
3146 extern HAMLIB_EXPORT(vfo_op_t) rig_parse_vfo_op(const char *s);
3147 extern HAMLIB_EXPORT(scan_t) rig_parse_scan(const char *s);
3148 extern HAMLIB_EXPORT(rptr_shift_t) rig_parse_rptr_shift(const char *s);
3149 extern HAMLIB_EXPORT(chan_type_t) rig_parse_mtype(const char *s);
3150 
3151 extern HAMLIB_EXPORT(const char *) rig_license HAMLIB_PARAMS(());
3152 extern HAMLIB_EXPORT(const char *) rig_version HAMLIB_PARAMS(());
3153 extern HAMLIB_EXPORT(const char *) rig_copyright HAMLIB_PARAMS(());
3154 
3155 extern HAMLIB_EXPORT(void) rig_no_restore_ai();
3156 
3157 extern HAMLIB_EXPORT(int) rig_get_cache_timeout_ms(RIG *rig, hamlib_cache_t selection);
3158 extern HAMLIB_EXPORT(int) rig_set_cache_timeout_ms(RIG *rig, hamlib_cache_t selection, int ms);
3159 
3160 extern HAMLIB_EXPORT(int) rig_set_vfo_opt(RIG *rig, int status);
3161 extern 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);
3162 extern HAMLIB_EXPORT(int) rig_get_rig_info(RIG *rig, char *response, int max_response_len);
3163 extern 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);
3164 
3165 
3166 typedef unsigned long rig_useconds_t;
3167 extern HAMLIB_EXPORT(int) hl_usleep(rig_useconds_t msec);
3168 
3169 extern HAMLIB_EXPORT(int) rig_cookie(RIG *rig, enum cookie_e cookie_cmd, char *cookie, int cookie_len);
3170 
3172 
3173 __END_DECLS
3174 
3175 #endif /* _RIG_H */
3176 
setting_t rig_parse_parm(const char *s)
Convert alpha string to RIG_PARM_...
Definition: misc.c:1113
vfo_t rig_parse_vfo(const char *s)
Convert alpha string to enum RIG_VFO_...
Definition: misc.c:591
const char * rig_strparm(setting_t parm)
Convert enum RIG_PARM_... to alpha string.
Definition: misc.c:1163
const char * rig_strptrshift(rptr_shift_t shift)
convert enum RIG_RPT_SHIFT_... to printable character
Definition: misc.c:1411
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:525
rptr_shift_t rig_parse_rptr_shift(const char *s)
Convert alpha char to enum RIG_RPT_SHIFT_...
Definition: misc.c:1436
uint64_t rig_idx2setting(int i)
Definition: misc.c:704
const char * rig_strstatus(enum rig_status_e status)
Convert enum RIG_STATUS_... to printable string.
Definition: misc.c:392
chan_type_t rig_parse_mtype(const char *s)
Convert alpha string to enum RIG_MTYPE_...
Definition: misc.c:1479
const char * rig_strmtype(chan_type_t mtype)
Convert enum RIG_MTYPE_... to alpha string.
Definition: misc.c:1504
const char * rig_strspectrummode(enum rig_spectrum_mode_e mode)
Convert enum RIG_SPECTRUM_MODE_... to alpha string.
Definition: misc.c:1544
const char * rig_strrmode(rmode_t mode)
Convert enum RIG_MODE to alpha string.
Definition: misc.c:493
const char * rig_strscan(scan_t rscan)
Convert enum RIG_SCAN_... to alpha string.
Definition: misc.c:1382
setting_t rig_parse_level(const char *s)
Convert alpha string to enum RIG_LEVEL_...
Definition: misc.c:914
scan_t rig_parse_scan(const char *s)
Convert alpha string to enum RIG_SCAN_...
Definition: misc.c:1357
const char * rig_stragclevel(enum agc_level_e level)
Convert enum RIG_AGC_... to alpha string.
Definition: misc.c:1236
setting_t rig_parse_func(const char *s)
Convert alpha string to enum RIG_FUNC_...
Definition: misc.c:716
const char * rig_strvfo(vfo_t vfo)
Convert enum RIG_VFO_... to alpha string.
Definition: misc.c:616
rmode_t rig_parse_mode(const char *s)
Convert alpha string to enum RIG_MODE.
Definition: misc.c:468
const char * rig_strvfop(vfo_op_t op)
Convert enum RIG_OP_... to alpha string.
Definition: misc.c:1312
const char * rig_strlevel(setting_t level)
Convert enum RIG_LEVEL_... to alpha string.
Definition: misc.c:995
const char * rig_strfunc(setting_t func)
Convert enum RIG_FUNC_... to alpha string.
Definition: misc.c:766
vfo_op_t rig_parse_vfo_op(const char *s)
Convert alpha string to enum RIG_OP_...
Definition: misc.c:1287
int rig_set_vfo(RIG *rig, vfo_t vfo)
set the current VFO
Definition: rig.c:2609
unsigned int vfo_t
VFO definition.
Definition: rig.h:431
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:4469
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:5941
int rig_set_twiddle(RIG *rig, int seconds)
timeout (secs) to stop rigctld when VFO is manually changed
Definition: rig.c:1341
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:6517
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:1529
int rig_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
get the status of the DCD
Definition: rig.c:3383
serial_parity_e
Serial parity.
Definition: rig.h:264
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:4648
int rig_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
Definition: rig.c:2319
int rig_set_channel(RIG *rig, vfo_t vfo, const channel_t *chan)
set channel data
Definition: mem.c:688
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:4527
dcd_e
DCD status.
Definition: rig.h:565
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:3715
int rig_set_powerstat(RIG *rig, powerstat_t status)
turn on/off the radio
Definition: rig.c:5552
int rig_get_powerstat(RIG *rig, powerstat_t *status)
get the on/off status of the radio
Definition: rig.c:5589
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:286
int rig_set_mem(RIG *rig, vfo_t vfo, int ch)
set the current memory channel number
Definition: mem.c:72
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:5399
setting_t rig_has_set_func(RIG *rig, setting_t func)
check ability of radio functions
Definition: settings.c:444
int rig_get_vfo(RIG *rig, vfo_t *vfo)
get the current VFO
Definition: rig.c:2747
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:4354
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 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:4851
int rig_cleanup(RIG *rig)
release a rig handle and free associated memory
Definition: rig.c:1297
rig_type_t
Rig type flags.
Definition: rig.h:296
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:1461
enum rig_port_e rig_port_t
Port type.
split_t
Split mode.
Definition: rig.h:360
int rig_get_vfo_list(RIG *rig, char *buf, int buflen)
get list of available vfos
Definition: rig.c:6668
rptr_shift_t
Repeater shift type.
Definition: rig.h:350
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:1327
int rig_get_dcs_sql(RIG *rig, vfo_t vfo, tone_t *code)
get the current DCS code
Definition: tones.c:553
scan_t rig_has_scan(RIG *rig, scan_t scan)
check availability of scanning functions
Definition: rig.c:5838
ptt_type_t
PTT type.
Definition: rig.h:605
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:1395
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:1974
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 rig_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
get the status of the PTT
Definition: rig.c:3112
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:5455
int rig_set_bank(RIG *rig, vfo_t vfo, int bank)
set the current memory bank
Definition: mem.c:198
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
int rig_get_ctcss_sql(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS squelch
Definition: tones.c:429
int rig_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
get the current XIT offset
Definition: rig.c:4999
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
int rig_get_trn(RIG *rig, int *trn)
get the current transceive mode
Definition: event.c:907
int rig_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t rptr_offs)
set the repeater offset
Definition: rig.c:3645
int rig_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS sub-tone frequency
Definition: tones.c:167
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
const struct confparams * rig_confparam_lookup(RIG *rig, const char *name)
lookup a confparam struct
Definition: conf.c:1088
setting_t rig_has_set_level(RIG *rig, setting_t level)
check settable ability of level settings
Definition: settings.c:326
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:5228
void rig_set_debug_time_stamp(int flag)
Enable or disable the time stamp on debugging output.
Definition: debug.c:184
shortfreq_t rig_get_resolution(RIG *rig, rmode_t mode)
get the best frequency resolution of the rig
Definition: rig.c:5511
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:6603
pbwidth_t rig_passband_wide(RIG *rig, rmode_t mode)
get the wide passband of a mode
Definition: rig.c:2552
int hl_usleep(rig_useconds_t usec)
provide sleep and usleep replacements
Definition: sleep.c:53
uint64_t setting_t
Setting.
Definition: rig.h:1036
powerstat_t
Radio power state.
Definition: rig.h:621
multicast_item_e
Multicast data items 3 different data item can be included in the multicast JSON.
Definition: rig.h:1016
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:1366
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
int rig_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
set the split frequencies
Definition: rig.c:3790
int rig_probe_all(hamlib_port_t *port, rig_probe_func_t cfunc, rig_ptr_t data)
try to guess rigs
Definition: rig.c:5704
rig_errcode_e
Hamlib error codes Error code definition that can be returned by the Hamlib functions....
Definition: rig.h:131
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
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:6320
int rig_recv_dtmf(RIG *rig, vfo_t vfo, char *digits, int *length)
receive DTMF digits
Definition: rig.c:6017
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:1773
int rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
set PTT on/off
Definition: rig.c:2827
int rig_get_conf(RIG *rig, token_t token, char *val)
get the value of a configuration parameter
Definition: conf.c:1228
double freq_t
Frequency type,.
Definition: rig.h:371
int rig_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch)
perform Memory/VFO operations
Definition: rig.c:5870
cookie_e
Rig Cookie enumerations.
Definition: rig.h:1006
int rig_send_morse(RIG *rig, vfo_t vfo, const char *msg)
send morse code
Definition: rig.c:6092
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
int rig_mem_count(RIG *rig)
get memory channel count
Definition: mem.c:1654
ptt_t
PTT status.
Definition: rig.h:592
RIG * rig_init(rig_model_t rig_model)
allocate a new RIG handle
Definition: rig.c:394
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
struct freq_range_list freq_range_t
Frequency range.
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:2220
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:5147
FILE * rig_set_debug_file(FILE *stream)
Change the output stream from stderr a different stream.
Definition: debug.c:328
signed long shortfreq_t
Short frequency type.
Definition: rig.h:393
token_t rig_ext_token_lookup(RIG *rig, const char *name)
Simple lookup returning token id associated with name.
Definition: ext.c:327
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
const char * rig_version()
get the Hamlib version
Definition: rig.c:6696
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:243
int rig_wait_morse(RIG *rig, vfo_t vfo)
wait morse code
Definition: rig.c:6262
int rig_close(RIG *rig)
close the communication to the rig
Definition: rig.c:1119
pbwidth_t rig_passband_narrow(RIG *rig, rmode_t mode)
get the narrow passband of a mode
Definition: rig.c:2500
serial_handshake_e
Serial handshake.
Definition: rig.h:276
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 chan_t * rig_lookup_mem_caps(RIG *rig, int ch)
lookup the memory type and capabilities
Definition: mem.c:1588
agc_level_e
AGC delay settings.
Definition: rig.h:840
dcd_type_t
DCD type.
Definition: rig.h:576
int rig_get_chan_all(RIG *rig, vfo_t vfo, channel_t chans[])
get all channel data
Definition: mem.c:1212
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:6420
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:2450
rig_debug_level_e
Hamlib debug levels.
Definition: rig.h:174
#define RIG_SETTING_MAX
Maximum # of rig settings.
Definition: rig.h:1042
const struct confparams * rig_ext_lookup_tok(RIG *rig, token_t token)
lookup ext token, return pointer to confparams struct.
Definition: ext.c:283
setting_t rig_has_set_parm(RIG *rig, setting_t parm)
check settable ability of parameter settings
Definition: settings.c:385
const char * rig_license()
get the Hamlib license
Definition: rig.c:6686
int rig_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
set the RIT
Definition: rig.c:4780
const char * rig_copyright()
get the Hamlib copyright
Definition: rig.c:6706
int rig_get_twiddle(RIG *rig, int *seconds)
get the twiddle timeout value (secs)
Definition: rig.c:1392
char debugmsgsave[DEBUGMSGSAVE_SIZE]
get string describing the error code
Definition: rig.c:300
int rig_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts)
set the Tuning Step
Definition: rig.c:5076
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:5307
int rig_open(RIG *rig)
open the communication to the rig
Definition: rig.c:675
int rig_set_parm(RIG *rig, setting_t parm, value_t val)
set a radio parameter
Definition: settings.c:228
int rig_get_dcs_code(RIG *rig, vfo_t vfo, tone_t *code)
get the current encoding DCS code
Definition: tones.c:292
hamlib_port_t port_t
Rig data structure.
Definition: rig.h:2193
int rig_stop_morse(RIG *rig, vfo_t vfo)
stop morse code
Definition: rig.c:6164
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
const char * rig_get_info(RIG *rig)
get general information from the radio
Definition: rig.c:6447
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
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:4090
int rig_reset(RIG *rig, reset_t reset)
reset the radio
Definition: rig.c:5630
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:5735
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:3569
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:4220
int rig_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift)
set the repeater shift
Definition: rig.c:3498
reset_t
Reset operation.
Definition: rig.h:633
int rig_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
get the current split frequencies
Definition: rig.c:3941
void rig_set_debug(enum rig_debug_level_e debug_level)
Change the current debug level.
Definition: debug.c:154
int rig_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
perform Memory/VFO operations
Definition: rig.c:5766
rig_status_e
Development status of the backend.
Definition: rig.h:330
int rig_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit)
set the XIT
Definition: rig.c:4928
void rig_debug(enum rig_debug_level_e debug_level, const char *fmt,...)
Print debugging messages through stderr by default.
Definition: debug.c:202
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:6725
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:5674
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:6389
chan_type_t
Memory channel type definition.
Definition: rig.h:1490
@ RIG_PARITY_MARK
Definition: rig.h:268
@ RIG_PARITY_NONE
Definition: rig.h:265
@ RIG_PARITY_EVEN
Definition: rig.h:267
@ RIG_PARITY_SPACE
Definition: rig.h:269
@ RIG_PARITY_ODD
Definition: rig.h:266
@ RIG_DCD_ON
Definition: rig.h:567
@ RIG_DCD_OFF
Definition: rig.h:566
@ RIG_SIGNAL_ON
Definition: rig.h:288
@ RIG_SIGNAL_OFF
Definition: rig.h:289
@ RIG_SIGNAL_UNSET
Definition: rig.h:287
@ RIG_FLAG_COMPUTER
Definition: rig.h:302
@ RIG_FLAG_TUNER
Definition: rig.h:307
@ RIG_FLAG_SCANNER
Definition: rig.h:299
@ RIG_FLAG_TRANSMITTER
Definition: rig.h:298
@ RIG_FLAG_MOBILE
Definition: rig.h:300
@ RIG_FLAG_TRUNKING
Definition: rig.h:303
@ RIG_FLAG_APRS
Definition: rig.h:304
@ RIG_FLAG_TNC
Definition: rig.h:305
@ RIG_FLAG_HANDHELD
Definition: rig.h:301
@ RIG_FLAG_DXCLUSTER
Definition: rig.h:306
@ RIG_FLAG_RECEIVER
Definition: rig.h:297
@ RIG_SPLIT_ON
Definition: rig.h:362
@ RIG_SPLIT_OFF
Definition: rig.h:361
@ RIG_RPT_SHIFT_PLUS
Definition: rig.h:353
@ RIG_RPT_SHIFT_MINUS
Definition: rig.h:352
@ RIG_RPT_SHIFT_NONE
Definition: rig.h:351
@ 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:136
@ RIG_ECONF
Definition: rig.h:134
@ RIG_ENAVAIL
Definition: rig.h:143
@ RIG_OK
Definition: rig.h:132
@ RIG_EPROTO
Definition: rig.h:140
@ RIG_EINTERNAL
Definition: rig.h:139
@ RIG_EDOM
Definition: rig.h:149
@ RIG_EIO
Definition: rig.h:138
@ RIG_EVFO
Definition: rig.h:148
@ RIG_ETIMEOUT
Definition: rig.h:137
@ RIG_ENOMEM
Definition: rig.h:135
@ RIG_EARG
Definition: rig.h:147
@ RIG_ERJCTED
Definition: rig.h:141
@ RIG_BUSERROR
Definition: rig.h:145
@ RIG_BUSBUSY
Definition: rig.h:146
@ RIG_ENTARGET
Definition: rig.h:144
@ RIG_EINVAL
Definition: rig.h:133
@ RIG_ETRUNC
Definition: rig.h:142
@ 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_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:248
@ RIG_PORT_UDP_NETWORK
Definition: rig.h:254
@ RIG_PORT_NONE
Definition: rig.h:244
@ RIG_PORT_CM108
Definition: rig.h:255
@ RIG_PORT_GPIO
Definition: rig.h:256
@ RIG_PORT_ULTRA
Definition: rig.h:250
@ RIG_PORT_GPION
Definition: rig.h:257
@ RIG_PORT_SERIAL
Definition: rig.h:245
@ RIG_PORT_PARALLEL
Definition: rig.h:252
@ RIG_PORT_NETWORK
Definition: rig.h:246
@ RIG_PORT_DEVICE
Definition: rig.h:247
@ RIG_PORT_RPC
Definition: rig.h:251
@ RIG_PORT_DTMF
Definition: rig.h:249
@ RIG_PORT_USB
Definition: rig.h:253
@ RIG_HANDSHAKE_HARDWARE
Definition: rig.h:279
@ RIG_HANDSHAKE_NONE
Definition: rig.h:277
@ RIG_HANDSHAKE_XONXOFF
Definition: rig.h:278
@ 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:177
@ RIG_DEBUG_BUG
Definition: rig.h:176
@ RIG_DEBUG_WARN
Definition: rig.h:178
@ RIG_DEBUG_TRACE
Definition: rig.h:180
@ RIG_DEBUG_VERBOSE
Definition: rig.h:179
@ RIG_DEBUG_CACHE
Definition: rig.h:181
@ RIG_DEBUG_NONE
Definition: rig.h:175
@ 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:334
@ RIG_STATUS_BUGGY
Definition: rig.h:335
@ RIG_STATUS_UNTESTED
Definition: rig.h:332
@ RIG_STATUS_BETA
Definition: rig.h:333
@ RIG_STATUS_ALPHA
Definition: rig.h:331
@ 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
float val
Definition: rig.h:1599
struct cal_table_float::@4 table[HAMLIB_MAX_CAL_LENGTH]
int size
Definition: rig.h:1596
int raw
Definition: rig.h:1598
Calibration table struct.
Definition: rig.h:1565
int val
Definition: rig.h:1569
struct cal_table::@3 table[HAMLIB_MAX_CAL_LENGTH]
int raw
Definition: rig.h:1568
int size
Definition: rig.h:1566
Memory channel list definition.
Definition: rig.h:1515
int startc
Definition: rig.h:1516
chan_type_t type
Definition: rig.h:1518
channel_cap_t mem_caps
Definition: rig.h:1520
int endc
Definition: rig.h:1517
Channel capability definition.
Definition: rig.h:1443
unsigned tx_vfo
Definition: rig.h:1456
unsigned tx_freq
Definition: rig.h:1451
unsigned mode
Definition: rig.h:1448
unsigned dcs_code
Definition: rig.h:1466
unsigned rit
Definition: rig.h:1460
unsigned dcs_sql
Definition: rig.h:1467
unsigned rptr_offs
Definition: rig.h:1458
unsigned bank_num
Definition: rig.h:1444
setting_t levels
Definition: rig.h:1463
unsigned width
Definition: rig.h:1449
unsigned rptr_shift
Definition: rig.h:1457
unsigned tx_width
Definition: rig.h:1453
unsigned ctcss_sql
Definition: rig.h:1465
unsigned tx_mode
Definition: rig.h:1452
unsigned freq
Definition: rig.h:1447
setting_t funcs
Definition: rig.h:1462
unsigned ctcss_tone
Definition: rig.h:1464
unsigned ext_levels
Definition: rig.h:1471
unsigned vfo
Definition: rig.h:1445
unsigned ant
Definition: rig.h:1446
unsigned split
Definition: rig.h:1455
unsigned scan_group
Definition: rig.h:1468
unsigned flags
Definition: rig.h:1469
unsigned tuning_step
Definition: rig.h:1459
unsigned xit
Definition: rig.h:1461
unsigned channel_desc
Definition: rig.h:1470
Channel structure.
Definition: rig.h:1399
shortfreq_t tuning_step
Definition: rig.h:1417
rmode_t mode
Definition: rig.h:1405
tone_t ctcss_tone
Definition: rig.h:1422
pbwidth_t tx_width
Definition: rig.h:1410
vfo_t vfo
Definition: rig.h:1402
value_t levels[64]
Definition: rig.h:1421
shortfreq_t rptr_offs
Definition: rig.h:1416
vfo_t tx_vfo
Definition: rig.h:1413
tone_t dcs_code
Definition: rig.h:1424
setting_t funcs
Definition: rig.h:1420
struct ext_list * ext_levels
Definition: rig.h:1429
tone_t ctcss_sql
Definition: rig.h:1423
shortfreq_t xit
Definition: rig.h:1419
int bank_num
Definition: rig.h:1401
pbwidth_t width
Definition: rig.h:1406
freq_t freq
Definition: rig.h:1404
rptr_shift_t rptr_shift
Definition: rig.h:1415
shortfreq_t rit
Definition: rig.h:1418
char channel_desc[HAMLIB_MAXCHANDESC]
Definition: rig.h:1428
rmode_t tx_mode
Definition: rig.h:1409
split_t split
Definition: rig.h:1412
freq_t tx_freq
Definition: rig.h:1408
ant_t ant
Definition: rig.h:1403
unsigned int flags
Definition: rig.h:1427
int scan_group
Definition: rig.h:1426
int channel_num
Definition: rig.h:1400
tone_t dcs_sql
Definition: rig.h:1425
Configuration parameter structure.
Definition: rig.h:738
const char * combostr[RIG_COMBO_MAX]
Definition: rig.h:752
const char * tooltip
Definition: rig.h:742
struct confparams::@0::@2 c
const char * dflt
Definition: rig.h:743
float min
Definition: rig.h:747
token_t token
Definition: rig.h:739
float step
Definition: rig.h:749
const char * label
Definition: rig.h:741
float max
Definition: rig.h:748
const char * name
Definition: rig.h:740
struct confparams::@0::@1 n
enum rig_conf_e type
Definition: rig.h:744
union confparams::@0 u
Extension attribute definition.
Definition: rig.h:1382
token_t token
Definition: rig.h:1383
value_t val
Definition: rig.h:1384
Filter definition.
Definition: rig.h:1350
rmode_t modes
Definition: rig.h:1351
pbwidth_t width
Definition: rig.h:1352
Frequency range.
Definition: rig.h:1283
freq_t startf
Definition: rig.h:1284
freq_t endf
Definition: rig.h:1285
int low_power
Definition: rig.h:1287
char * label
Definition: rig.h:1291
ant_t ant
Definition: rig.h:1290
int high_power
Definition: rig.h:1288
vfo_t vfo
Definition: rig.h:1289
rmode_t modes
Definition: rig.h:1286
level/parm granularity definition
Definition: rig.h:1550
value_t max
Definition: rig.h:1552
value_t step
Definition: rig.h:1553
value_t min
Definition: rig.h:1551
Rig cache data.
Definition: rig.h:2220
Callback functions and args for rig event.
Definition: rig.h:2421
rig_ptr_t mode_arg
Definition: rig.h:2425
ptt_cb_t ptt_event
Definition: rig.h:2428
vfo_cb_t vfo_event
Definition: rig.h:2426
spectrum_cb_t spectrum_event
Definition: rig.h:2434
mode_cb_t mode_event
Definition: rig.h:2424
rig_ptr_t freq_arg
Definition: rig.h:2423
rig_ptr_t spectrum_arg
Definition: rig.h:2435
rig_ptr_t ptt_arg
Definition: rig.h:2429
rig_ptr_t dcd_arg
Definition: rig.h:2431
dcd_cb_t dcd_event
Definition: rig.h:2430
rig_ptr_t pltune_arg
Definition: rig.h:2433
pltune_cb_t pltune
Definition: rig.h:2432
rig_ptr_t vfo_arg
Definition: rig.h:2427
freq_cb_t freq_event
Definition: rig.h:2422
Spectrum scope averaging modes.
Definition: rig.h:1651
Represents a single line of rig spectrum scope FFT data.
Definition: rig.h:1668
freq_t low_edge_freq
Definition: rig.h:1681
int data_level_min
Definition: rig.h:1671
int spectrum_data_length
Definition: rig.h:1684
int id
Definition: rig.h:1669
enum rig_spectrum_mode_e spectrum_mode
Definition: rig.h:1676
double signal_strength_max
Definition: rig.h:1674
freq_t center_freq
Definition: rig.h:1678
freq_t span_freq
Definition: rig.h:1679
double signal_strength_min
Definition: rig.h:1673
unsigned char * spectrum_data
Definition: rig.h:1685
int data_level_max
Definition: rig.h:1672
freq_t high_edge_freq
Definition: rig.h:1682
Spectrum scope.
Definition: rig.h:1631
Rig state containing live data and customized fields.
Definition: rig.h:2293
int auto_power_on
Definition: rig.h:2366
int attenuator[HAMLIB_MAXDBLSTSIZ]
Definition: rig.h:2322
int vfo_opt
Definition: rig.h:2365
int twiddle_rit
Definition: rig.h:2378
setting_t has_set_parm
Definition: rig.h:2329
rmode_t mode_list
Definition: rig.h:2353
shortfreq_t max_rit
Definition: rig.h:2315
freq_t lo_freq
Definition: rig.h:2359
int power_max
Definition: rig.h:2376
gran_t parm_gran[64]
Definition: rig.h:2332
freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ]
Definition: rig.h:2304
int hold_decode
Definition: rig.h:2339
int transceive
Definition: rig.h:2346
rmode_t current_mode
Definition: rig.h:2349
setting_t has_set_func
Definition: rig.h:2325
int uplink
Definition: rig.h:2363
rig_ptr_t obj
Definition: rig.h:2344
int twiddle_state
Definition: rig.h:2379
struct filter_list filters[HAMLIB_FLTLSTSIZ]
Definition: rig.h:2309
pbwidth_t current_width
Definition: rig.h:2351
int ptt_share
Definition: rig.h:2373
rig_ptr_t priv
Definition: rig.h:2343
freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ]
Definition: rig.h:2305
freq_t current_freq
Definition: rig.h:2348
hamlib_port_t dcdport
Definition: rig.h:2299
time_t twiddle_time
Definition: rig.h:2360
vfo_t tx_vfo
Definition: rig.h:2352
int deprecated_itu_region
Definition: rig.h:2303
int power_min
Definition: rig.h:2375
double vfo_comp
Definition: rig.h:2301
setting_t has_set_level
Definition: rig.h:2327
shortfreq_t max_xit
Definition: rig.h:2316
hamlib_port_t rigport
Definition: rig.h:2297
int power_now
Definition: rig.h:2374
int twiddle_timeout
Definition: rig.h:2361
int poll_interval
Definition: rig.h:2347
unsigned char disable_yaesu_bandselect
Definition: rig.h:2377
int auto_power_off
Definition: rig.h:2368
setting_t has_get_parm
Definition: rig.h:2328
int preamp[HAMLIB_MAXDBLSTSIZ]
Definition: rig.h:2321
vfo_t current_vfo
Definition: rig.h:2340
int auto_disable_screensaver
Definition: rig.h:2370
int comm_state
Definition: rig.h:2342
int vfo_list
Definition: rig.h:2341
setting_t has_get_level
Definition: rig.h:2326
setting_t has_get_func
Definition: rig.h:2324
int transmit
Definition: rig.h:2356
ann_t announces
Definition: rig.h:2319
cal_table_t str_cal
Definition: rig.h:2311
shortfreq_t max_ifshift
Definition: rig.h:2317
gran_t level_gran[64]
Definition: rig.h:2331
hamlib_port_t pttport
Definition: rig.h:2298
struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ]
Definition: rig.h:2307
The Rig structure.
Definition: rig.h:2449
struct rig_callbacks callbacks
Definition: rig.h:2452
struct rig_state state
Definition: rig.h:2451
struct rig_caps * caps
Definition: rig.h:2450
Tuning step definition.
Definition: rig.h:1315
rmode_t modes
Definition: rig.h:1316
shortfreq_t ts
Definition: rig.h:1317
Universal approach for passing values.
Definition: rig.h:875
char * s
Definition: rig.h:878
float f
Definition: rig.h:877
const char * cs
Definition: rig.h:879
signed int i
Definition: rig.h:876