Hamlib  4.0~git
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 // cppcheck-suppress *
28 #include <stdio.h>
29 // cppcheck-suppress *
30 #include <stdarg.h>
31 // cppcheck-suppress *
32 #include <inttypes.h>
33 // cppcheck-suppress *
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
65 
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
86 
88 #include <hamlib/rig_dll.h>
89 
90 #ifndef SWIGLUA
91 #define CONSTANT_64BIT_FLAG(BIT) (1ull << (BIT))
93 #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 
111 extern HAMLIB_EXPORT_VAR(const char) hamlib_version[];
112 extern HAMLIB_EXPORT_VAR(const char) hamlib_copyright[];
113 extern HAMLIB_EXPORT_VAR(const char *) hamlib_version2;
114 extern HAMLIB_EXPORT_VAR(const char *) hamlib_copyright2;
116 
124  RIG_OK = 0,
141  RIG_EDOM
142 };
143 
147 #define NETRIGCTL_RET "RPRT "
148 
149 
164 };
165 
166 
167 /* --------------- Rig capabilities -----------------*/
168 
169 /* Forward struct references */
170 
171 struct rig;
172 struct rig_state;
173 
177 typedef struct s_rig RIG;
178 
180 #define RIGNAMSIZ 30
181 #define RIGVERSIZ 8
182 #define FILPATHLEN 512
183 #define FRQRANGESIZ 30
184 #define MAXCHANDESC 30 /* describe channel eg: "WWV 5Mhz" */
185 #define TSLSTSIZ 20 /* max tuning step list size, zero ended */
186 #define FLTLSTSIZ 60 /* max mode/filter list size, zero ended */
187 #define MAXDBLSTSIZ 8 /* max preamp/att levels supported, zero ended */
188 #define CHANLSTSIZ 16 /* max mem_list size, zero ended */
189 #define MAX_CAL_LENGTH 32 /* max calibration plots in cal_table_t */
190 
192 
203 typedef unsigned int tone_t;
204 
205 
209 typedef enum rig_port_e {
225 
226 
236 };
237 
238 
246 };
247 
248 
256 };
257 
258 
262 typedef enum {
263  RIG_FLAG_RECEIVER = (1 << 1),
264  RIG_FLAG_TRANSMITTER = (1 << 2),
265  RIG_FLAG_SCANNER = (1 << 3),
266  RIG_FLAG_MOBILE = (1 << 4),
267  RIG_FLAG_HANDHELD = (1 << 5),
268  RIG_FLAG_COMPUTER = (1 << 6),
269  RIG_FLAG_TRUNKING = (1 << 7),
270  RIG_FLAG_APRS = (1 << 8),
271  RIG_FLAG_TNC = (1 << 9),
272  RIG_FLAG_DXCLUSTER = (1 << 10),
273  RIG_FLAG_TUNER = (1 << 11)
275 
277 #define RIG_FLAG_TRANSCEIVER (RIG_FLAG_RECEIVER|RIG_FLAG_TRANSMITTER)
278 #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)
279 
280 #define RIG_TYPE_OTHER 0
281 #define RIG_TYPE_TRANSCEIVER RIG_FLAG_TRANSCEIVER
282 #define RIG_TYPE_HANDHELD (RIG_FLAG_TRANSCEIVER|RIG_FLAG_HANDHELD)
283 #define RIG_TYPE_MOBILE (RIG_FLAG_TRANSCEIVER|RIG_FLAG_MOBILE)
284 #define RIG_TYPE_RECEIVER RIG_FLAG_RECEIVER
285 #define RIG_TYPE_PCRECEIVER (RIG_FLAG_COMPUTER|RIG_FLAG_RECEIVER)
286 #define RIG_TYPE_SCANNER (RIG_FLAG_SCANNER|RIG_FLAG_RECEIVER)
287 #define RIG_TYPE_TRUNKSCANNER (RIG_TYPE_SCANNER|RIG_FLAG_TRUNKING)
288 #define RIG_TYPE_COMPUTER (RIG_FLAG_TRANSCEIVER|RIG_FLAG_COMPUTER)
289 #define RIG_TYPE_TUNER RIG_FLAG_TUNER
290 
292 
302  /* RIG_STATUS_NEW * *!< Initial release of code
303  * !! Use of RIG_STATUS_NEW is deprecated. Do not use it anymore */
304 };
305 
310 #define RIG_STATUS_NEW RIG_STATUS_UNTESTED
311 
312 
316 typedef enum {
321 
322 
326 typedef enum {
328  RIG_SPLIT_ON
330 
331 
337 typedef double freq_t;
338 
342 #define PRIfreq "f"
343 
347 #define SCNfreq "lf"
348 
351 #define FREQFMT SCNfreq
352 
353 
359 typedef signed long shortfreq_t;
360 
362 #define Hz(f) ((freq_t)(f))
363 
364 #define kHz(f) ((freq_t)((f)*(freq_t)1000))
365 
366 #define MHz(f) ((freq_t)((f)*(freq_t)1000000))
367 
368 #define GHz(f) ((freq_t)((f)*(freq_t)1000000000))
369 
371 #define s_Hz(f) ((shortfreq_t)(f))
372 
373 #define s_kHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000))
374 
375 #define s_MHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000))
376 
377 #define s_GHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000000))
378 
380 #define RIG_FREQ_NONE Hz(0)
381 
382 
397 typedef unsigned int vfo_t;
398 
401 #define RIG_VFO_N(n) (1u<<(n))
402 
404 #define RIG_VFO_NONE 0
405 
407 #define RIG_VFO_A RIG_VFO_N(0)
408 
410 #define RIG_VFO_B RIG_VFO_N(1)
411 
413 #define RIG_VFO_C RIG_VFO_N(2)
414 
415 // Any addition VFOS need to go from 3-20
416 // To maintain backward compatibility these values cannot change
417 
419 #define RIG_VFO_SUB_A RIG_VFO_N(21)
420 
422 #define RIG_VFO_SUB_B RIG_VFO_N(22)
423 
425 #define RIG_VFO_MAIN_A RIG_VFO_N(23)
426 
428 #define RIG_VFO_MAIN_B RIG_VFO_N(24)
429 
431 #define RIG_VFO_SUB RIG_VFO_N(25)
432 
434 #define RIG_VFO_MAIN RIG_VFO_N(26)
435 
437 #define RIG_VFO_VFO RIG_VFO_N(27)
438 
440 #define RIG_VFO_MEM RIG_VFO_N(28)
441 
443 #define RIG_VFO_CURR RIG_VFO_N(29)
444 
446 #define RIG_VFO_TX_FLAG RIG_VFO_N(30)
447 // we and also use RIG_VFO_N(31) if needed
448 
449 // Misc VFO Macros
450 
452 #define RIG_VFO_TX_VFO(v) ((v)|RIG_VFO_TX_FLAG)
453 
455 #define RIG_VFO_TX RIG_VFO_TX_VFO(RIG_VFO_CURR)
456 
458 #define RIG_VFO_RX RIG_VFO_CURR
459 
460 
461 /*
462  * targetable bitfields, for internal use.
463  * RIG_TARGETABLE_PURE means a pure targetable radio on every command
464  */
466 #define RIG_TARGETABLE_NONE 0
467 #define RIG_TARGETABLE_FREQ (1<<0)
468 #define RIG_TARGETABLE_MODE (1<<1)
469 #define RIG_TARGETABLE_PURE (1<<2)
470 #define RIG_TARGETABLE_TONE (1<<3)
471 #define RIG_TARGETABLE_FUNC (1<<4)
472 #define RIG_TARGETABLE_ALL 0x7fffffff
473 //
475 //
476 // Newer Icoms like the 9700 and 910 have VFOA/B on both Main & Sub
477 // Compared to older rigs which have one or the other
478 // So we need to distinguish between them
480 #define VFO_HAS_A_B ((rig->state.vfo_list & (RIG_VFO_A|RIG_VFO_B)) == (RIG_VFO_A|RIG_VFO_B))
481 #define VFO_HAS_MAIN_SUB ((rig->state.vfo_list & (RIG_VFO_MAIN|RIG_VFO_SUB)) == (RIG_VFO_MAIN|RIG_VFO_SUB))
482 #define VFO_HAS_MAIN_SUB_ONLY ((!VFO_HAS_A_B) & VFO_HAS_MAIN_SUB)
483 #define VFO_HAS_MAIN_SUB_A_B_ONLY (VFO_HAS_A_B & VFO_HAS_MAIN_SUB)
484 #define VFO_HAS_A_B_ONLY (VFO_HAS_A_B & (!VFO_HAS_MAIN_SUB))
485 #define VFO_DUAL (RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
486 #define VFO_HAS_DUAL ((rig->state.vfo_list & VFO_DUAL == VFO_DUAL)
487 
493 #define RIG_PASSBAND_NORMAL s_Hz(0)
494 
497 #define RIG_PASSBAND_NOCHANGE s_Hz(-1)
498 
503 
504 
508 typedef enum dcd_e {
510  RIG_DCD_ON
512 
513 
519 typedef enum {
529 } dcd_type_t;
530 
531 
535 typedef enum {
541 
542 
548 typedef enum {
558 } ptt_type_t;
559 
560 
564 typedef enum {
566  RIG_POWER_ON = (1 << 0),
567  RIG_POWER_STANDBY = (1 << 1),
568  RIG_POWER_OPERATE = (1 << 2),
569  RIG_POWER_UNKNOWN = (1 << 3)
571 
572 
576 typedef enum {
578  RIG_RESET_SOFT = (1 << 0),
579  RIG_RESET_VFO = (1 << 1),
580  RIG_RESET_MCALL = (1 << 2),
581  RIG_RESET_MASTER = (1 << 3)
583 
584 
600 typedef enum {
602  RIG_OP_CPY = (1 << 0),
603  RIG_OP_XCHG = (1 << 1),
604  RIG_OP_FROM_VFO = (1 << 2),
605  RIG_OP_TO_VFO = (1 << 3),
606  RIG_OP_MCL = (1 << 4),
607  RIG_OP_UP = (1 << 5),
608  RIG_OP_DOWN = (1 << 6),
609  RIG_OP_BAND_UP = (1 << 7),
610  RIG_OP_BAND_DOWN = (1 << 8),
611  RIG_OP_LEFT = (1 << 9),
612  RIG_OP_RIGHT = (1 << 10),
613  RIG_OP_TUNE = (1 << 11),
614  RIG_OP_TOGGLE = (1 << 12)
616 
617 
626 typedef enum {
628  RIG_SCAN_MEM = (1 << 0),
629  RIG_SCAN_SLCT = (1 << 1),
630  RIG_SCAN_PRIO = (1 << 2),
631  RIG_SCAN_PROG = (1 << 3),
632  RIG_SCAN_DELTA = (1 << 4),
633  RIG_SCAN_VFO = (1 << 5),
634  RIG_SCAN_PLT = (1 << 6),
635  RIG_SCAN_STOP = (1 << 7)
637 
638 
642 typedef long token_t;
643 
644 
646 #define RIG_CONF_END 0
647 
649 
663 /* strongly inspired from soundmodem. Thanks Thomas! */
671 };
672 
674 #define RIG_COMBO_MAX 16
675 #define RIG_BIN_MAX 80
676 
681 struct confparams {
683  const char *name;
684  const char *label;
685  const char *tooltip;
686  const char *dflt;
687  enum rig_conf_e type;
688  union {
689  struct {
690  float min;
691  float max;
692  float step;
693  } n;
694  struct {
695  const char *combostr[RIG_COMBO_MAX];
696  } c;
697  } u;
698 };
699 
700 
706 typedef enum {
709  RIG_ANN_FREQ = (1 << 0),
710  RIG_ANN_RXMODE = (1 << 1),
711  RIG_ANN_CW = (1 << 2),
712  RIG_ANN_ENG = (1 << 3),
713  RIG_ANN_JAP = (1 << 4)
715 
716 
763 typedef unsigned int ant_t;
764 
765 #define RIG_ANT_NONE 0
766 #define RIG_ANT_N(n) ((ant_t)1<<(n))
767 #define RIG_ANT_1 RIG_ANT_N(0)
768 #define RIG_ANT_2 RIG_ANT_N(1)
769 #define RIG_ANT_3 RIG_ANT_N(2)
770 #define RIG_ANT_4 RIG_ANT_N(3)
771 #define RIG_ANT_5 RIG_ANT_N(4)
772 
773 #define RIG_ANT_UNKNOWN RIG_ANT_N(30)
774 #define RIG_ANT_CURR RIG_ANT_N(31)
775 
776 #define RIG_ANT_MAX 32
777 
778 
782 /* TODO: kill me, and replace by real AGC delay */
784  RIG_AGC_OFF = 0,
785  RIG_AGC_SUPERFAST,
786  RIG_AGC_FAST,
787  RIG_AGC_SLOW,
789  RIG_AGC_MEDIUM,
790  RIG_AGC_AUTO
791 };
792 
794 #define RIG_AGC_LAST RIG_AGC_AUTO
795 
801  RIG_METER_NONE = 0, /*< No display meter */
802  RIG_METER_SWR = (1 << 0), /*< Stationary Wave Ratio */
803  RIG_METER_COMP = (1 << 1), /*< Compression level */
804  RIG_METER_ALC = (1 << 2), /*< ALC */
805  RIG_METER_IC = (1 << 3), /*< IC */
806  RIG_METER_DB = (1 << 4), /*< DB */
807  RIG_METER_PO = (1 << 5), /*< Power Out */
808  RIG_METER_VDD = (1 << 6) /*< Final Amp Voltage */
809 };
810 
811 
817 typedef union {
818  signed int i;
819  float f;
820  char *s;
821  const char *cs;
822  struct {
824  int l;
825  unsigned char *d; /* Pointer to data buffer */
826  } b;
828 } value_t;
829 
830 
841  RIG_LEVEL_PREAMP = (1 << 0),
842  RIG_LEVEL_ATT = (1 << 1),
843  RIG_LEVEL_VOXDELAY = (1 << 2),
844  RIG_LEVEL_AF = (1 << 3),
845  RIG_LEVEL_RF = (1 << 4),
846  RIG_LEVEL_SQL = (1 << 5),
847  RIG_LEVEL_IF = (1 << 6),
848  RIG_LEVEL_APF = (1 << 7),
849  RIG_LEVEL_NR = (1 << 8),
850  RIG_LEVEL_PBT_IN = (1 << 9),
851  RIG_LEVEL_PBT_OUT = (1 << 10),
852  RIG_LEVEL_CWPITCH = (1 << 11),
853  RIG_LEVEL_RFPOWER = (1 << 12),
854  RIG_LEVEL_MICGAIN = (1 << 13),
855  RIG_LEVEL_KEYSPD = (1 << 14),
856  RIG_LEVEL_NOTCHF = (1 << 15),
857  RIG_LEVEL_COMP = (1 << 16),
858  RIG_LEVEL_AGC = (1 << 17),
859  RIG_LEVEL_BKINDL = (1 << 18),
860  RIG_LEVEL_BALANCE = (1 << 19),
861  RIG_LEVEL_METER = (1 << 20),
862  RIG_LEVEL_VOXGAIN = (1 << 21),
863  RIG_LEVEL_ANTIVOX = (1 << 22),
864  RIG_LEVEL_SLOPE_LOW = (1 << 23),
865  RIG_LEVEL_SLOPE_HIGH = (1 << 24),
866  RIG_LEVEL_BKIN_DLYMS = (1 << 25),
869  RIG_LEVEL_RAWSTR = (1 << 26),
870  RIG_LEVEL_SQLSTAT = (1 << 27),
871  RIG_LEVEL_SWR = (1 << 28),
872  RIG_LEVEL_ALC = (1 << 29),
873  RIG_LEVEL_STRENGTH = (1 << 30),
874  /* RIG_LEVEL_BWC = (1<<31) */
875  RIG_LEVEL_RFPOWER_METER = CONSTANT_64BIT_FLAG(32),
876  RIG_LEVEL_COMP_METER = CONSTANT_64BIT_FLAG(33),
877  RIG_LEVEL_VD_METER = CONSTANT_64BIT_FLAG(34),
878  RIG_LEVEL_ID_METER = CONSTANT_64BIT_FLAG(35),
880  RIG_LEVEL_NOTCHF_RAW = CONSTANT_64BIT_FLAG(36),
881  RIG_LEVEL_MONITOR_GAIN = CONSTANT_64BIT_FLAG(37),
882  RIG_LEVEL_NB = CONSTANT_64BIT_FLAG(38),
883  RIG_LEVEL_39 = CONSTANT_64BIT_FLAG(39),
884  RIG_LEVEL_40 = CONSTANT_64BIT_FLAG(40),
885  RIG_LEVEL_41 = CONSTANT_64BIT_FLAG(41),
886  RIG_LEVEL_42 = CONSTANT_64BIT_FLAG(42),
887  RIG_LEVEL_43 = CONSTANT_64BIT_FLAG(43),
888  RIG_LEVEL_44 = CONSTANT_64BIT_FLAG(44),
889  RIG_LEVEL_45 = CONSTANT_64BIT_FLAG(45),
890  RIG_LEVEL_46 = CONSTANT_64BIT_FLAG(46),
891  RIG_LEVEL_47 = CONSTANT_64BIT_FLAG(47),
892  RIG_LEVEL_48 = CONSTANT_64BIT_FLAG(48),
893  RIG_LEVEL_49 = CONSTANT_64BIT_FLAG(49),
894  RIG_LEVEL_50 = CONSTANT_64BIT_FLAG(50),
895  RIG_LEVEL_51 = CONSTANT_64BIT_FLAG(51),
896  RIG_LEVEL_52 = CONSTANT_64BIT_FLAG(52),
897  RIG_LEVEL_53 = CONSTANT_64BIT_FLAG(53),
898  RIG_LEVEL_54 = CONSTANT_64BIT_FLAG(54),
899  RIG_LEVEL_55 = CONSTANT_64BIT_FLAG(55),
900  RIG_LEVEL_56 = CONSTANT_64BIT_FLAG(56),
901  RIG_LEVEL_57 = CONSTANT_64BIT_FLAG(57),
902  RIG_LEVEL_58 = CONSTANT_64BIT_FLAG(58),
903  RIG_LEVEL_59 = CONSTANT_64BIT_FLAG(59),
904  RIG_LEVEL_60 = CONSTANT_64BIT_FLAG(60),
905  RIG_LEVEL_61 = CONSTANT_64BIT_FLAG(61),
906  RIG_LEVEL_62 = CONSTANT_64BIT_FLAG(62),
907  RIG_LEVEL_63 = CONSTANT_64BIT_FLAG(63),
908 };
909 
911 #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_COMP_METER|RIG_LEVEL_VD_METER|RIG_LEVEL_ID_METER|RIG_LEVEL_NOTCHF_RAW|RIG_LEVEL_MONITOR_GAIN|RIG_LEVEL_NB)
912 
913 #define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SQLSTAT|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)
914 
915 #define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST)
916 #define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST)
917 
919 
930  RIG_PARM_ANN = (1 << 0),
931  RIG_PARM_APO = (1 << 1),
932  RIG_PARM_BACKLIGHT = (1 << 2),
933  RIG_PARM_BEEP = (1 << 4),
934  RIG_PARM_TIME = (1 << 5),
935  RIG_PARM_BAT = (1 << 6),
936  RIG_PARM_KEYLIGHT = (1 << 7),
937  RIG_PARM_SCREENSAVER = (1 << 8)
938 };
939 
941 #define RIG_PARM_FLOAT_LIST (RIG_PARM_BACKLIGHT|RIG_PARM_BAT|RIG_PARM_KEYLIGHT)
942 #define RIG_PARM_READONLY_LIST (RIG_PARM_BAT)
943 
944 #define RIG_PARM_IS_FLOAT(l) ((l)&RIG_PARM_FLOAT_LIST)
945 #define RIG_PARM_SET(l) ((l)&~RIG_PARM_READONLY_LIST)
946 
954 typedef uint64_t setting_t;
955 
960 #define RIG_SETTING_MAX 64
961 
975 #define RIG_TRN_OFF 0
976 #define RIG_TRN_RIG 1
977 #define RIG_TRN_POLL 2
978 
979 
988 /*
989  * The C standard dictates that an enum constant is a 32 bit signed integer.
990  * Setting a constant's bit 31 created a negative value that on amd64 had the
991  * upper 32 bits set as well when assigned to the misc.c:func_str structure.
992  * This caused misc.c:rig_strfunc() to fail its comparison for RIG_FUNC_XIT
993  * on amd64 (x86_64). To use bit 31 as an unsigned long, preprocessor macros
994  * have been used instead as a 'const unsigned long' which cannot be used to
995  * initialize the func_str.func members. TNX KA6MAL, AC6SL. - N0NB
996  */
997 #define RIG_FUNC_NONE 0
998 #define RIG_FUNC_FAGC CONSTANT_64BIT_FLAG (0)
999 #define RIG_FUNC_NB CONSTANT_64BIT_FLAG (1)
1000 #define RIG_FUNC_COMP CONSTANT_64BIT_FLAG (2)
1001 #define RIG_FUNC_VOX CONSTANT_64BIT_FLAG (3)
1002 #define RIG_FUNC_TONE CONSTANT_64BIT_FLAG (4)
1003 #define RIG_FUNC_TSQL CONSTANT_64BIT_FLAG (5)
1004 #define RIG_FUNC_SBKIN CONSTANT_64BIT_FLAG (6)
1005 #define RIG_FUNC_FBKIN CONSTANT_64BIT_FLAG (7)
1006 #define RIG_FUNC_ANF CONSTANT_64BIT_FLAG (8)
1007 #define RIG_FUNC_NR CONSTANT_64BIT_FLAG (9)
1008 #define RIG_FUNC_AIP CONSTANT_64BIT_FLAG (10)
1009 #define RIG_FUNC_APF CONSTANT_64BIT_FLAG (11)
1010 #define RIG_FUNC_MON CONSTANT_64BIT_FLAG (12)
1011 #define RIG_FUNC_MN CONSTANT_64BIT_FLAG (13)
1012 #define RIG_FUNC_RF CONSTANT_64BIT_FLAG (14)
1013 #define RIG_FUNC_ARO CONSTANT_64BIT_FLAG (15)
1014 #define RIG_FUNC_LOCK CONSTANT_64BIT_FLAG (16)
1015 #define RIG_FUNC_MUTE CONSTANT_64BIT_FLAG (17)
1016 #define RIG_FUNC_VSC CONSTANT_64BIT_FLAG (18)
1017 #define RIG_FUNC_REV CONSTANT_64BIT_FLAG (19)
1018 #define RIG_FUNC_SQL CONSTANT_64BIT_FLAG (20)
1019 #define RIG_FUNC_ABM CONSTANT_64BIT_FLAG (21)
1020 #define RIG_FUNC_BC CONSTANT_64BIT_FLAG (22)
1021 #define RIG_FUNC_MBC CONSTANT_64BIT_FLAG (23)
1022 #define RIG_FUNC_RIT CONSTANT_64BIT_FLAG (24)
1023 #define RIG_FUNC_AFC CONSTANT_64BIT_FLAG (25)
1024 #define RIG_FUNC_SATMODE CONSTANT_64BIT_FLAG (26)
1025 #define RIG_FUNC_SCOPE CONSTANT_64BIT_FLAG (27)
1026 #define RIG_FUNC_RESUME CONSTANT_64BIT_FLAG (28)
1027 #define RIG_FUNC_TBURST CONSTANT_64BIT_FLAG (29)
1028 #define RIG_FUNC_TUNER CONSTANT_64BIT_FLAG (30)
1029 #define RIG_FUNC_XIT CONSTANT_64BIT_FLAG (31)
1030 #ifndef SWIGLUAHIDE
1031 /* Hide the top 32 bits from the old Lua binding as they can't be represented */
1032 #define RIG_FUNC_NB2 CONSTANT_64BIT_FLAG (32)
1033 #define RIG_FUNC_CSQL CONSTANT_64BIT_FLAG (33)
1034 #define RIG_FUNC_AFLT CONSTANT_64BIT_FLAG (34)
1035 #define RIG_FUNC_ANL CONSTANT_64BIT_FLAG (35)
1036 #define RIG_FUNC_BC2 CONSTANT_64BIT_FLAG (36)
1037 #define RIG_FUNC_DUAL_WATCH CONSTANT_64BIT_FLAG (37)
1038 #define RIG_FUNC_DIVERSITY CONSTANT_64BIT_FLAG (38)
1039 #define RIG_FUNC_DSQL CONSTANT_64BIT_FLAG (39)
1040 #define RIG_FUNC_SCEN CONSTANT_64BIT_FLAG (40)
1041 #define RIG_FUNC_BIT41 CONSTANT_64BIT_FLAG (41)
1042 #define RIG_FUNC_BIT42 CONSTANT_64BIT_FLAG (42)
1043 #define RIG_FUNC_BIT43 CONSTANT_64BIT_FLAG (43)
1044 #define RIG_FUNC_BIT44 CONSTANT_64BIT_FLAG (44)
1045 #define RIG_FUNC_BIT45 CONSTANT_64BIT_FLAG (45)
1046 #define RIG_FUNC_BIT46 CONSTANT_64BIT_FLAG (46)
1047 #define RIG_FUNC_BIT47 CONSTANT_64BIT_FLAG (47)
1048 #define RIG_FUNC_BIT48 CONSTANT_64BIT_FLAG (48)
1049 #define RIG_FUNC_BIT49 CONSTANT_64BIT_FLAG (49)
1050 #define RIG_FUNC_BIT50 CONSTANT_64BIT_FLAG (50)
1051 #define RIG_FUNC_BIT51 CONSTANT_64BIT_FLAG (51)
1052 #define RIG_FUNC_BIT52 CONSTANT_64BIT_FLAG (52)
1053 #define RIG_FUNC_BIT53 CONSTANT_64BIT_FLAG (53)
1054 #define RIG_FUNC_BIT54 CONSTANT_64BIT_FLAG (54)
1055 #define RIG_FUNC_BIT55 CONSTANT_64BIT_FLAG (55)
1056 #define RIG_FUNC_BIT56 CONSTANT_64BIT_FLAG (56)
1057 #define RIG_FUNC_BIT57 CONSTANT_64BIT_FLAG (57)
1058 #define RIG_FUNC_BIT58 CONSTANT_64BIT_FLAG (58)
1059 #define RIG_FUNC_BIT59 CONSTANT_64BIT_FLAG (59)
1060 #define RIG_FUNC_BIT60 CONSTANT_64BIT_FLAG (60)
1061 #define RIG_FUNC_BIT61 CONSTANT_64BIT_FLAG (61)
1062 #define RIG_FUNC_BIT62 CONSTANT_64BIT_FLAG (62)
1063 #define RIG_FUNC_BIT63 CONSTANT_64BIT_FLAG (63)
1064 /* 63 is this highest bit number that can be used */
1065 #endif
1066 
1073 #define mW(p) ((int)(p))
1081 #define Watts(p) ((int)((p)*1000))
1088 #define W(p) Watts(p)
1089 #if 0 // deprecating kW macro as this doesn't make sense
1090 
1096 #define kW(p) ((int)((p)*1000000L))
1097 #endif
1098 
1099 
1109 typedef uint64_t rmode_t;
1110 
1111 #define RIG_MODE_NONE 0
1112 #define RIG_MODE_AM CONSTANT_64BIT_FLAG (0)
1113 #define RIG_MODE_CW CONSTANT_64BIT_FLAG (1)
1114 #define RIG_MODE_USB CONSTANT_64BIT_FLAG (2)
1115 #define RIG_MODE_LSB CONSTANT_64BIT_FLAG (3)
1116 #define RIG_MODE_RTTY CONSTANT_64BIT_FLAG (4)
1117 #define RIG_MODE_FM CONSTANT_64BIT_FLAG (5)
1118 #define RIG_MODE_WFM CONSTANT_64BIT_FLAG (6)
1119 #define RIG_MODE_CWR CONSTANT_64BIT_FLAG (7)
1120 #define RIG_MODE_RTTYR CONSTANT_64BIT_FLAG (8)
1121 #define RIG_MODE_AMS CONSTANT_64BIT_FLAG (9)
1122 #define RIG_MODE_PKTLSB CONSTANT_64BIT_FLAG (10)
1123 #define RIG_MODE_PKTUSB CONSTANT_64BIT_FLAG (11)
1124 #define RIG_MODE_PKTFM CONSTANT_64BIT_FLAG (12)
1125 #define RIG_MODE_ECSSUSB CONSTANT_64BIT_FLAG (13)
1126 #define RIG_MODE_ECSSLSB CONSTANT_64BIT_FLAG (14)
1127 #define RIG_MODE_FAX CONSTANT_64BIT_FLAG (15)
1128 #define RIG_MODE_SAM CONSTANT_64BIT_FLAG (16)
1129 #define RIG_MODE_SAL CONSTANT_64BIT_FLAG (17)
1130 #define RIG_MODE_SAH CONSTANT_64BIT_FLAG (18)
1131 #define RIG_MODE_DSB CONSTANT_64BIT_FLAG (19)
1132 #define RIG_MODE_FMN CONSTANT_64BIT_FLAG (21)
1133 #define RIG_MODE_PKTAM CONSTANT_64BIT_FLAG (22)
1134 #define RIG_MODE_P25 CONSTANT_64BIT_FLAG (23)
1135 #define RIG_MODE_DSTAR CONSTANT_64BIT_FLAG (24)
1136 #define RIG_MODE_DPMR CONSTANT_64BIT_FLAG (25)
1137 #define RIG_MODE_NXDNVN CONSTANT_64BIT_FLAG (26)
1138 #define RIG_MODE_NXDN_N CONSTANT_64BIT_FLAG (27)
1139 #define RIG_MODE_DCR CONSTANT_64BIT_FLAG (28)
1140 #define RIG_MODE_AMN CONSTANT_64BIT_FLAG (29)
1141 #define RIG_MODE_PSK CONSTANT_64BIT_FLAG (30)
1142 #define RIG_MODE_PSKR CONSTANT_64BIT_FLAG (31)
1143 #ifndef SWIGLUAHIDE
1144 /* hide the top 32 bits from the Lua binding as they will not work */
1145 #define RIG_MODE_DD CONSTANT_64BIT_FLAG (32)
1146 #define RIG_MODE_C4FM CONSTANT_64BIT_FLAG (33)
1147 #define RIG_MODE_BIT34 CONSTANT_64BIT_FLAG (34)
1148 #define RIG_MODE_BIT35 CONSTANT_64BIT_FLAG (35)
1149 #define RIG_MODE_BIT36 CONSTANT_64BIT_FLAG (36)
1150 #define RIG_MODE_BIT37 CONSTANT_64BIT_FLAG (37)
1151 #define RIG_MODE_BIT38 CONSTANT_64BIT_FLAG (38)
1152 #define RIG_MODE_BIT39 CONSTANT_64BIT_FLAG (39)
1153 #define RIG_MODE_BIT40 CONSTANT_64BIT_FLAG (40)
1154 #define RIG_MODE_BIT41 CONSTANT_64BIT_FLAG (41)
1155 #define RIG_MODE_BIT42 CONSTANT_64BIT_FLAG (42)
1156 #define RIG_MODE_BIT43 CONSTANT_64BIT_FLAG (43)
1157 #define RIG_MODE_BIT44 CONSTANT_64BIT_FLAG (44)
1158 #define RIG_MODE_BIT45 CONSTANT_64BIT_FLAG (45)
1159 #define RIG_MODE_BIT46 CONSTANT_64BIT_FLAG (46)
1160 #define RIG_MODE_BIT47 CONSTANT_64BIT_FLAG (47)
1161 #define RIG_MODE_BIT48 CONSTANT_64BIT_FLAG (48)
1162 #define RIG_MODE_BIT49 CONSTANT_64BIT_FLAG (49)
1163 #define RIG_MODE_BIT50 CONSTANT_64BIT_FLAG (50)
1164 #define RIG_MODE_BIT51 CONSTANT_64BIT_FLAG (51)
1165 #define RIG_MODE_BIT52 CONSTANT_64BIT_FLAG (52)
1166 #define RIG_MODE_BIT53 CONSTANT_64BIT_FLAG (53)
1167 #define RIG_MODE_BIT54 CONSTANT_64BIT_FLAG (54)
1168 #define RIG_MODE_BIT55 CONSTANT_64BIT_FLAG (55)
1169 #define RIG_MODE_BIT56 CONSTANT_64BIT_FLAG (56)
1170 #define RIG_MODE_BIT57 CONSTANT_64BIT_FLAG (57)
1171 #define RIG_MODE_BIT58 CONSTANT_64BIT_FLAG (58)
1172 #define RIG_MODE_BIT59 CONSTANT_64BIT_FLAG (59)
1173 #define RIG_MODE_BIT60 CONSTANT_64BIT_FLAG (60)
1174 #define RIG_MODE_BIT61 CONSTANT_64BIT_FLAG (61)
1175 #define RIG_MODE_BIT62 CONSTANT_64BIT_FLAG (62)
1176 #define RIG_MODE_TESTS_MAX CONSTANT_64BIT_FLAG (63)
1177 #endif
1178 
1182 #define RIG_MODE_SSB (RIG_MODE_USB|RIG_MODE_LSB)
1187 #define RIG_MODE_ECSS (RIG_MODE_ECSSUSB|RIG_MODE_ECSSLSB)
1190 #define RIG_DBLST_END 0 /* end marker in a preamp/att level list */
1191 #define RIG_IS_DBLST_END(d) ((d)==0)
1192 
1194 
1201 typedef struct freq_range_list {
1209  char *label;
1211 
1213 #define RIG_FRNG_END {Hz(0),Hz(0),RIG_MODE_NONE,0,0,RIG_VFO_NONE}
1214 #define RIG_IS_FRNG_END(r) ((r).startf == Hz(0) && (r).endf == Hz(0))
1215 
1236 };
1237 
1239 #define RIG_TS_ANY 0
1240 #define RIG_TS_END {RIG_MODE_NONE, 0}
1241 #define RIG_IS_TS_END(t) ((t).modes == RIG_MODE_NONE && (t).ts == 0)
1242 
1244 
1268 struct filter_list {
1271 };
1273 #define RIG_FLT_ANY 0
1274 #define RIG_FLT_END {RIG_MODE_NONE, 0}
1275 #define RIG_IS_FLT_END(f) ((f).modes == RIG_MODE_NONE)
1276 
1278 
1282 #define RIG_CHFLAG_NONE 0
1286 #define RIG_CHFLAG_SKIP (1<<0)
1290 #define RIG_CHFLAG_DATA (1<<1)
1294 #define RIG_CHFLAG_PSKIP (1<<2)
1300 struct ext_list {
1303 };
1304 
1306 #define RIG_EXT_END {0, {.i=0}}
1307 #define RIG_IS_EXT_END(x) ((x).token == 0)
1308 
1317 struct channel {
1319  int bank_num;
1345  unsigned int flags;
1346  char channel_desc[MAXCHANDESC];
1347  struct ext_list
1349 };
1350 
1354 typedef struct channel channel_t;
1355 
1361 struct channel_cap {
1362  unsigned bank_num: 1;
1363  unsigned vfo: 1;
1364  unsigned ant: 1;
1365  unsigned freq: 1;
1366  unsigned mode: 1;
1367  unsigned width: 1;
1369  unsigned tx_freq: 1;
1370  unsigned tx_mode: 1;
1371  unsigned tx_width: 1;
1373  unsigned split: 1;
1374  unsigned tx_vfo: 1;
1375  unsigned rptr_shift: 1;
1376  unsigned rptr_offs: 1;
1377  unsigned tuning_step: 1;
1378  unsigned rit: 1;
1379  unsigned xit: 1;
1382  unsigned ctcss_tone: 1;
1383  unsigned ctcss_sql: 1;
1384  unsigned dcs_code: 1;
1385  unsigned dcs_sql: 1;
1386  unsigned scan_group: 1;
1387  unsigned flags: 1;
1388  unsigned channel_desc: 1;
1389  unsigned ext_levels: 1;
1390 };
1391 
1395 typedef struct channel_cap channel_cap_t;
1396 
1397 
1408 typedef enum {
1418 
1419 
1433 struct chan_list {
1434  int startc;
1435  int endc;
1439 };
1440 
1442 #define RIG_CHAN_END {0,0,RIG_MTYPE_NONE}
1443 #define RIG_IS_CHAN_END(c) ((c).type == RIG_MTYPE_NONE)
1444 
1449 #define RIG_MEM_CAPS_ALL -1
1454 typedef struct chan_list chan_t;
1455 
1456 
1468 struct gran {
1472 };
1473 
1477 typedef struct gran gran_t;
1478 
1479 
1483 struct cal_table {
1484  int size;
1485  struct {
1486  int raw;
1487  int val;
1488  } table[MAX_CAL_LENGTH];
1489 };
1490 
1503 typedef struct cal_table cal_table_t;
1504 
1506 #define EMPTY_STR_CAL { 0, { { 0, 0 }, } }
1509 
1514  int size;
1515  struct {
1516  int raw;
1517  float val;
1518  } table[MAX_CAL_LENGTH];
1519 };
1520 
1533 typedef struct cal_table_float cal_table_float_t;
1534 
1536 #define EMPTY_FLOAT_CAL { 0, { { 0, 0f }, } }
1537 
1538 typedef int (* chan_cb_t)(RIG *, channel_t **, int, const chan_t *, rig_ptr_t);
1539 typedef int (* confval_cb_t)(RIG *,
1540  const struct confparams *,
1541  value_t *,
1542  rig_ptr_t);
1544 
1545 
1565 #define RIG_MODEL(arg) .rig_model=arg,.macro_name=#arg
1567 struct rig_caps {
1568  rig_model_t rig_model;
1569  const char *model_name;
1570  const char *mfg_name;
1571  const char *version;
1572  const char *copyright;
1573  enum rig_status_e status;
1575  int rig_type;
1576  ptt_type_t ptt_type;
1577  dcd_type_t dcd_type;
1578  rig_port_t port_type;
1580  int serial_rate_min;
1581  int serial_rate_max;
1582  int serial_data_bits;
1583  int serial_stop_bits;
1584  enum serial_parity_e serial_parity;
1585  enum serial_handshake_e serial_handshake;
1587  int write_delay;
1588  int post_write_delay;
1589  int timeout;
1590  int retry;
1592  setting_t has_get_func;
1593  setting_t has_set_func;
1594  setting_t has_get_level;
1595  setting_t has_set_level;
1596  setting_t has_get_parm;
1597  setting_t has_set_parm;
1599  gran_t level_gran[RIG_SETTING_MAX];
1600  gran_t parm_gran[RIG_SETTING_MAX];
1602  const struct confparams *extparms;
1603  const struct confparams *extlevels;
1604  const struct confparams *extfuncs;
1605  int *ext_tokens;
1607  const tone_t *ctcss_list;
1608  const tone_t *dcs_list;
1610  int preamp[MAXDBLSTSIZ];
1611  int attenuator[MAXDBLSTSIZ];
1612  shortfreq_t max_rit;
1613  shortfreq_t max_xit;
1614  shortfreq_t max_ifshift;
1616  ann_t announces;
1618  vfo_op_t vfo_ops;
1619  scan_t scan_ops;
1620  int targetable_vfo;
1621  int transceive;
1623  int bank_qty;
1624  int chan_desc_sz;
1626  chan_t chan_list[CHANLSTSIZ];
1628  // As of 2020-02-12 we know of 5 models from Icom USA, EUR, ITR, TPE, KOR for the IC-9700
1629  // So we currently have 5 ranges we need to deal with
1630  // The backend for the model should fill in the label field to explain what model it is
1631  // The the IC-9700 in ic7300.c for an example
1632  freq_range_t rx_range_list1[FRQRANGESIZ];
1633  freq_range_t tx_range_list1[FRQRANGESIZ];
1634  freq_range_t rx_range_list2[FRQRANGESIZ];
1635  freq_range_t tx_range_list2[FRQRANGESIZ];
1636  freq_range_t rx_range_list3[FRQRANGESIZ];
1637  freq_range_t tx_range_list3[FRQRANGESIZ];
1638  freq_range_t rx_range_list4[FRQRANGESIZ];
1639  freq_range_t tx_range_list4[FRQRANGESIZ];
1640  freq_range_t rx_range_list5[FRQRANGESIZ];
1641  freq_range_t tx_range_list5[FRQRANGESIZ];
1643  struct tuning_step_list tuning_steps[TSLSTSIZ];
1644  struct filter_list filters[FLTLSTSIZ];
1646  cal_table_t str_cal;
1647  cal_table_float_t swr_cal;
1648  cal_table_float_t alc_cal;
1649  cal_table_float_t rfpower_meter_cal;
1650  cal_table_float_t comp_meter_cal;
1651  cal_table_float_t vd_meter_cal;
1652  cal_table_float_t id_meter_cal;
1654  const struct confparams *cfgparams;
1655  const rig_ptr_t priv;
1657  /*
1658  * Rig API
1659  *
1660  */
1661 
1662  int (*rig_init)(RIG *rig);
1663  int (*rig_cleanup)(RIG *rig);
1664  int (*rig_open)(RIG *rig);
1665  int (*rig_close)(RIG *rig);
1666 
1667  /*
1668  * General API commands, from most primitive to least.. :()
1669  * List Set/Get functions pairs
1670  */
1671 
1672  int (*set_freq)(RIG *rig, vfo_t vfo, freq_t freq);
1673  int (*get_freq)(RIG *rig, vfo_t vfo, freq_t *freq);
1674 
1675  int (*set_mode)(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
1676  int (*get_mode)(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
1677 
1678  int (*set_vfo)(RIG *rig, vfo_t vfo);
1679  int (*get_vfo)(RIG *rig, vfo_t *vfo);
1680 
1681  int (*set_ptt)(RIG *rig, vfo_t vfo, ptt_t ptt);
1682  int (*get_ptt)(RIG *rig, vfo_t vfo, ptt_t *ptt);
1683 
1684  int (*get_dcd)(RIG *rig, vfo_t vfo, dcd_t *dcd);
1685 
1686  int (*set_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift);
1687  int (*get_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift);
1688 
1689  int (*set_rptr_offs)(RIG *rig, vfo_t vfo, shortfreq_t offs);
1690  int (*get_rptr_offs)(RIG *rig, vfo_t vfo, shortfreq_t *offs);
1691 
1692  int (*set_split_freq)(RIG *rig, vfo_t vfo, freq_t tx_freq);
1693  int (*get_split_freq)(RIG *rig, vfo_t vfo, freq_t *tx_freq);
1694 
1695  int (*set_split_mode)(RIG *rig,
1696  vfo_t vfo,
1697  rmode_t tx_mode,
1698  pbwidth_t tx_width);
1699  int (*get_split_mode)(RIG *rig,
1700  vfo_t vfo,
1701  rmode_t *tx_mode,
1702  pbwidth_t *tx_width);
1703 
1704  int (*set_split_freq_mode)(RIG *rig,
1705  vfo_t vfo,
1706  freq_t tx_freq,
1707  rmode_t tx_mode,
1708  pbwidth_t tx_width);
1709  int (*get_split_freq_mode)(RIG *rig,
1710  vfo_t vfo,
1711  freq_t *tx_freq,
1712  rmode_t *tx_mode,
1713  pbwidth_t *tx_width);
1714 
1715  int (*set_split_vfo)(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
1716  int (*get_split_vfo)(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo);
1717 
1718  int (*set_rit)(RIG *rig, vfo_t vfo, shortfreq_t rit);
1719  int (*get_rit)(RIG *rig, vfo_t vfo, shortfreq_t *rit);
1720 
1721  int (*set_xit)(RIG *rig, vfo_t vfo, shortfreq_t xit);
1722  int (*get_xit)(RIG *rig, vfo_t vfo, shortfreq_t *xit);
1723 
1724  int (*set_ts)(RIG *rig, vfo_t vfo, shortfreq_t ts);
1725  int (*get_ts)(RIG *rig, vfo_t vfo, shortfreq_t *ts);
1726 
1727  int (*set_dcs_code)(RIG *rig, vfo_t vfo, tone_t code);
1728  int (*get_dcs_code)(RIG *rig, vfo_t vfo, tone_t *code);
1729 
1730  int (*set_tone)(RIG *rig, vfo_t vfo, tone_t tone);
1731  int (*get_tone)(RIG *rig, vfo_t vfo, tone_t *tone);
1732 
1733  int (*set_ctcss_tone)(RIG *rig, vfo_t vfo, tone_t tone);
1734  int (*get_ctcss_tone)(RIG *rig, vfo_t vfo, tone_t *tone);
1735 
1736  int (*set_dcs_sql)(RIG *rig, vfo_t vfo, tone_t code);
1737  int (*get_dcs_sql)(RIG *rig, vfo_t vfo, tone_t *code);
1738 
1739  int (*set_tone_sql)(RIG *rig, vfo_t vfo, tone_t tone);
1740  int (*get_tone_sql)(RIG *rig, vfo_t vfo, tone_t *tone);
1741 
1742  int (*set_ctcss_sql)(RIG *rig, vfo_t vfo, tone_t tone);
1743  int (*get_ctcss_sql)(RIG *rig, vfo_t vfo, tone_t *tone);
1744 
1745  int (*power2mW)(RIG *rig,
1746  unsigned int *mwpower,
1747  float power,
1748  freq_t freq,
1749  rmode_t mode);
1750  int (*mW2power)(RIG *rig,
1751  float *power,
1752  unsigned int mwpower,
1753  freq_t freq,
1754  rmode_t mode);
1755 
1756  int (*set_powerstat)(RIG *rig, powerstat_t status);
1757  int (*get_powerstat)(RIG *rig, powerstat_t *status);
1758 
1759  int (*reset)(RIG *rig, reset_t reset);
1760 
1761  int (*set_ant)(RIG *rig, vfo_t vfo, ant_t ant, value_t option);
1762  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);
1763 
1764  int (*set_level)(RIG *rig, vfo_t vfo, setting_t level, value_t val);
1765  int (*get_level)(RIG *rig, vfo_t vfo, setting_t level, value_t *val);
1766 
1767  int (*set_func)(RIG *rig, vfo_t vfo, setting_t func, int status);
1768  int (*get_func)(RIG *rig, vfo_t vfo, setting_t func, int *status);
1769 
1770  int (*set_parm)(RIG *rig, setting_t parm, value_t val);
1771  int (*get_parm)(RIG *rig, setting_t parm, value_t *val);
1772 
1773  int (*set_ext_level)(RIG *rig, vfo_t vfo, token_t token, value_t val);
1774  int (*get_ext_level)(RIG *rig, vfo_t vfo, token_t token, value_t *val);
1775 
1776  int (*set_ext_func)(RIG *rig, vfo_t vfo, token_t token, int status);
1777  int (*get_ext_func)(RIG *rig, vfo_t vfo, token_t token, int *status);
1778 
1779  int (*set_ext_parm)(RIG *rig, token_t token, value_t val);
1780  int (*get_ext_parm)(RIG *rig, token_t token, value_t *val);
1781 
1782  int (*set_conf)(RIG *rig, token_t token, const char *val);
1783  int (*get_conf)(RIG *rig, token_t token, char *val);
1784 
1785  int (*send_dtmf)(RIG *rig, vfo_t vfo, const char *digits);
1786  int (*recv_dtmf)(RIG *rig, vfo_t vfo, char *digits, int *length);
1787 
1788  int (*send_morse)(RIG *rig, vfo_t vfo, const char *msg);
1789 
1790  int (*send_voice_mem)(RIG *rig, vfo_t vfo, int ch);
1791 
1792  int (*set_bank)(RIG *rig, vfo_t vfo, int bank);
1793 
1794  int (*set_mem)(RIG *rig, vfo_t vfo, int ch);
1795  int (*get_mem)(RIG *rig, vfo_t vfo, int *ch);
1796 
1797  int (*vfo_op)(RIG *rig, vfo_t vfo, vfo_op_t op);
1798 
1799  int (*scan)(RIG *rig, vfo_t vfo, scan_t scan, int ch);
1800 
1801  int (*set_trn)(RIG *rig, int trn);
1802  int (*get_trn)(RIG *rig, int *trn);
1803 
1804  int (*decode_event)(RIG *rig);
1805 
1806  int (*set_channel)(RIG *rig, const channel_t *chan);
1807  int (*get_channel)(RIG *rig, channel_t *chan, int read_only);
1808 
1809  const char * (*get_info)(RIG *rig);
1810 
1811  int (*set_chan_all_cb)(RIG *rig, chan_cb_t chan_cb, rig_ptr_t);
1812  int (*get_chan_all_cb)(RIG *rig, chan_cb_t chan_cb, rig_ptr_t);
1813 
1814  int (*set_mem_all_cb)(RIG *rig,
1815  chan_cb_t chan_cb,
1816  confval_cb_t parm_cb,
1817  rig_ptr_t);
1818  int (*get_mem_all_cb)(RIG *rig,
1819  chan_cb_t chan_cb,
1820  confval_cb_t parm_cb,
1821  rig_ptr_t);
1822 
1823  int (*set_vfo_opt)(RIG *rig, int status); // only for Net Rigctl device
1824 
1825  const char *clone_combo_set;
1826  const char *clone_combo_get;
1827  const char *macro_name;
1828 };
1830 
1831 
1837 typedef struct hamlib_port {
1839  union {
1840  rig_port_t rig;
1841  ptt_type_t ptt;
1842  dcd_type_t dcd;
1843  } type;
1844 
1845  int fd;
1846  void *handle;
1848  int write_delay;
1849  int post_write_delay;
1851  struct {
1852  int tv_sec, tv_usec;
1853  } post_write_date;
1855  int timeout;
1856  int retry;
1858  char pathname[FILPATHLEN];
1860  union {
1861  struct {
1862  int rate;
1863  int data_bits;
1864  int stop_bits;
1865  enum serial_parity_e parity;
1866  enum serial_handshake_e handshake;
1867  enum serial_control_state_e rts_state;
1868  enum serial_control_state_e dtr_state;
1869  } serial;
1871  struct {
1872  int pin;
1873  } parallel;
1875  struct {
1876  int ptt_bitnum;
1877  } cm108;
1879  struct {
1880  int vid;
1881  int pid;
1882  int conf;
1883  int iface;
1884  int alt;
1885  char *vendor_name;
1886  char *product;
1887  } usb;
1889  struct {
1890  int on_value;
1891  int value;
1892  } gpio;
1893  } parm;
1894 } hamlib_port_t;
1896 
1897 #if !defined(__APPLE__) || !defined(__cplusplus)
1898 typedef hamlib_port_t port_t;
1899 #endif
1900 
1901 #define ELAPSED_GET 0
1902 #define ELAPSED_SET 1
1903 #define ELAPSED_INVALIDATE 2
1904 
1905 typedef enum {
1906  CACHE_ALL, // to set all cache timeouts at once
1907  CACHE_VFO,
1908  CACHE_FREQ,
1909  CACHE_MODE,
1910  CACHE_PTT,
1911  CACHE_SPLIT
1912 } cache_t;
1913 
1919 struct rig_cache {
1920  int timeout_ms; // the cache timeout for invalidating itself
1921  vfo_t vfo;
1922  freq_t freq; // to be deprecated
1923  // othe abstraction here is based on dual vfo rigs and mapped to all others
1924  // So we have four possible states of rig
1925  // MainA, MainB, SubA, SubB
1926  // Main is the Main VFO and Sub is for the 2nd VFO
1927  // Most rigs have MainA and MainB
1928  // Dual VFO rigs can have SubA and SubB too
1929  // For dual VFO rigs simplex opeations are all done on MainA/MainB -- ergo this abstraction
1930  freq_t freqMainA; // VFO_A, VFO_MAIN, and VFO_MAINA
1931  freq_t freqMainB; // VFO_B, VFO_SUB, and VFO_MAINB
1932  freq_t freqSubA; // VFO_SUBA
1933  freq_t freqSubB; // VFO_SUBB
1934  rmode_t mode;
1935  pbwidth_t width;
1936  ptt_t ptt;
1937  split_t split;
1938  vfo_t split_vfo; // split caches two values
1939  struct timespec time_freq;
1940  struct timespec time_freqMainA;
1941  struct timespec time_freqMainB;
1942  struct timespec time_freqSubA;
1943  struct timespec time_freqSubB;
1944  struct timespec time_vfo;
1945  struct timespec time_mode;
1946  struct timespec time_ptt;
1947  struct timespec time_split;
1948  vfo_t vfo_freq; // last vfo cached
1949  vfo_t vfo_mode; // last vfo cached
1950  int satmode; // if rig is in satellite mode
1951 };
1952 
1953 
1963 struct rig_state {
1964  /*
1965  * overridable fields
1966  */
1967  hamlib_port_t rigport;
1968  hamlib_port_t pttport;
1969  hamlib_port_t dcdport;
1971  double vfo_comp;
1977  struct tuning_step_list tuning_steps[TSLSTSIZ];
1979  struct filter_list filters[FLTLSTSIZ];
1983  chan_t chan_list[CHANLSTSIZ];
1991  int preamp[MAXDBLSTSIZ];
1992  int attenuator[MAXDBLSTSIZ];
2005  /*
2006  * non overridable fields, internal use
2007  */
2008 
2011  int vfo_list;
2013  rig_ptr_t priv;
2014  rig_ptr_t obj;
2023  int transmit;
2027  time_t twiddle_time;
2029  struct rig_cache cache;
2030  int vfo_opt;
2031 };
2032 
2034 typedef int (*vprintf_cb_t)(enum rig_debug_level_e,
2035  rig_ptr_t,
2036  const char *,
2037  va_list);
2038 
2039 typedef int (*freq_cb_t)(RIG *, vfo_t, freq_t, rig_ptr_t);
2040 typedef int (*mode_cb_t)(RIG *, vfo_t, rmode_t, pbwidth_t, rig_ptr_t);
2041 typedef int (*vfo_cb_t)(RIG *, vfo_t, rig_ptr_t);
2042 typedef int (*ptt_cb_t)(RIG *, vfo_t, ptt_t, rig_ptr_t);
2043 typedef int (*dcd_cb_t)(RIG *, vfo_t, dcd_t, rig_ptr_t);
2044 typedef int (*pltune_cb_t)(RIG *,
2045  vfo_t, freq_t *,
2046  rmode_t *,
2047  pbwidth_t *,
2048  rig_ptr_t);
2049 
2051 
2070  freq_cb_t freq_event;
2071  rig_ptr_t freq_arg;
2072  mode_cb_t mode_event;
2073  rig_ptr_t mode_arg;
2074  vfo_cb_t vfo_event;
2075  rig_ptr_t vfo_arg;
2076  ptt_cb_t ptt_event;
2077  rig_ptr_t ptt_arg;
2078  dcd_cb_t dcd_event;
2079  rig_ptr_t dcd_arg;
2080  pltune_cb_t pltune;
2081  rig_ptr_t pltune_arg;
2082  /* etc.. */
2083 };
2084 
2085 
2095 struct s_rig {
2096  struct rig_caps *caps;
2097  struct rig_state state;
2098  struct rig_callbacks callbacks;
2099 };
2100 
2101 
2102 
2103 /* --------------- API function prototypes -----------------*/
2104 
2106 
2107 extern HAMLIB_EXPORT(RIG *) rig_init HAMLIB_PARAMS((rig_model_t rig_model));
2108 extern HAMLIB_EXPORT(int) rig_open HAMLIB_PARAMS((RIG *rig));
2109 
2110 /*
2111  * General API commands, from most primitive to least.. :()
2112  * List Set/Get functions pairs
2113  */
2114 
2115 extern HAMLIB_EXPORT(int)
2116 rig_set_freq HAMLIB_PARAMS((RIG *rig,
2117  vfo_t vfo,
2118  freq_t freq));
2119 extern HAMLIB_EXPORT(int)
2120 rig_get_freq HAMLIB_PARAMS((RIG *rig,
2121  vfo_t vfo,
2122  freq_t *freq));
2123 
2124 extern HAMLIB_EXPORT(int)
2125 rig_set_mode HAMLIB_PARAMS((RIG *rig,
2126  vfo_t vfo,
2127  rmode_t mode,
2128  pbwidth_t width));
2129 extern HAMLIB_EXPORT(int)
2130 rig_get_mode HAMLIB_PARAMS((RIG *rig,
2131  vfo_t vfo,
2132  rmode_t *mode,
2133  pbwidth_t *width));
2134 
2135 extern HAMLIB_EXPORT(int)
2136 rig_set_vfo HAMLIB_PARAMS((RIG *rig,
2137  vfo_t vfo));
2138 extern HAMLIB_EXPORT(int)
2139 rig_get_vfo HAMLIB_PARAMS((RIG *rig,
2140  vfo_t *vfo));
2141 
2142 extern HAMLIB_EXPORT(int)
2143 netrigctl_get_vfo_mode HAMLIB_PARAMS((RIG *rig));
2144 
2145 extern HAMLIB_EXPORT(int)
2146 rig_set_ptt HAMLIB_PARAMS((RIG *rig,
2147  vfo_t vfo,
2148  ptt_t ptt));
2149 extern HAMLIB_EXPORT(int)
2150 rig_get_ptt HAMLIB_PARAMS((RIG *rig,
2151  vfo_t vfo,
2152  ptt_t *ptt));
2153 
2154 extern HAMLIB_EXPORT(int)
2155 rig_get_dcd HAMLIB_PARAMS((RIG *rig,
2156  vfo_t vfo,
2157  dcd_t *dcd));
2158 
2159 extern HAMLIB_EXPORT(int)
2160 rig_set_rptr_shift HAMLIB_PARAMS((RIG *rig,
2161  vfo_t vfo,
2162  rptr_shift_t rptr_shift));
2163 extern HAMLIB_EXPORT(int)
2164 rig_get_rptr_shift HAMLIB_PARAMS((RIG *rig,
2165  vfo_t vfo,
2166  rptr_shift_t *rptr_shift));
2167 
2168 extern HAMLIB_EXPORT(int)
2169 rig_set_rptr_offs HAMLIB_PARAMS((RIG *rig,
2170  vfo_t vfo,
2171  shortfreq_t rptr_offs));
2172 extern HAMLIB_EXPORT(int)
2173 rig_get_rptr_offs HAMLIB_PARAMS((RIG *rig,
2174  vfo_t vfo,
2175  shortfreq_t *rptr_offs));
2176 
2177 extern HAMLIB_EXPORT(int)
2178 rig_set_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2179  vfo_t vfo,
2180  tone_t tone));
2181 extern HAMLIB_EXPORT(int)
2182 rig_get_ctcss_tone HAMLIB_PARAMS((RIG *rig,
2183  vfo_t vfo,
2184  tone_t *tone));
2185 
2186 extern HAMLIB_EXPORT(int)
2187 rig_set_dcs_code HAMLIB_PARAMS((RIG *rig,
2188  vfo_t vfo,
2189  tone_t code));
2190 extern HAMLIB_EXPORT(int)
2191 rig_get_dcs_code HAMLIB_PARAMS((RIG *rig,
2192  vfo_t vfo,
2193  tone_t *code));
2194 
2195 extern HAMLIB_EXPORT(int)
2196 rig_set_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2197  vfo_t vfo,
2198  tone_t tone));
2199 extern HAMLIB_EXPORT(int)
2200 rig_get_ctcss_sql HAMLIB_PARAMS((RIG *rig,
2201  vfo_t vfo,
2202  tone_t *tone));
2203 
2204 extern HAMLIB_EXPORT(int)
2205 rig_set_dcs_sql HAMLIB_PARAMS((RIG *rig,
2206  vfo_t vfo,
2207  tone_t code));
2208 extern HAMLIB_EXPORT(int)
2209 rig_get_dcs_sql HAMLIB_PARAMS((RIG *rig,
2210  vfo_t vfo,
2211  tone_t *code));
2212 
2213 extern HAMLIB_EXPORT(int)
2214 rig_set_split_freq HAMLIB_PARAMS((RIG *rig,
2215  vfo_t vfo,
2216  freq_t tx_freq));
2217 extern HAMLIB_EXPORT(int)
2218 rig_get_split_freq HAMLIB_PARAMS((RIG *rig,
2219  vfo_t vfo,
2220  freq_t *tx_freq));
2221 
2222 extern HAMLIB_EXPORT(int)
2223 rig_set_split_mode HAMLIB_PARAMS((RIG *rig,
2224  vfo_t vfo,
2225  rmode_t tx_mode,
2226  pbwidth_t tx_width));
2227 extern HAMLIB_EXPORT(int)
2228 rig_get_split_mode HAMLIB_PARAMS((RIG *rig,
2229  vfo_t vfo,
2230  rmode_t *tx_mode,
2231  pbwidth_t *tx_width));
2232 
2233 extern HAMLIB_EXPORT(int)
2234 rig_set_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2235  vfo_t vfo,
2236  freq_t tx_freq,
2237  rmode_t tx_mode,
2238  pbwidth_t tx_width));
2239 extern HAMLIB_EXPORT(int)
2240 rig_get_split_freq_mode HAMLIB_PARAMS((RIG *rig,
2241  vfo_t vfo,
2242  freq_t *tx_freq,
2243  rmode_t *tx_mode,
2244  pbwidth_t *tx_width));
2245 
2246 extern HAMLIB_EXPORT(int)
2247 rig_set_split_vfo HAMLIB_PARAMS((RIG *,
2248  vfo_t rx_vfo,
2249  split_t split,
2250  vfo_t tx_vfo));
2251 extern HAMLIB_EXPORT(int)
2252 rig_get_split_vfo HAMLIB_PARAMS((RIG *,
2253  vfo_t rx_vfo,
2254  split_t *split,
2255  vfo_t *tx_vfo));
2256 
2257 #define rig_set_split(r,v,s) rig_set_split_vfo((r),(v),(s),RIG_VFO_CURR)
2258 #define rig_get_split(r,v,s) ({ vfo_t _tx_vfo; rig_get_split_vfo((r),(v),(s),&_tx_vfo); })
2259 
2260 extern HAMLIB_EXPORT(int)
2261 rig_set_rit HAMLIB_PARAMS((RIG *rig,
2262  vfo_t vfo,
2263  shortfreq_t rit));
2264 extern HAMLIB_EXPORT(int)
2265 rig_get_rit HAMLIB_PARAMS((RIG *rig,
2266  vfo_t vfo,
2267  shortfreq_t *rit));
2268 
2269 extern HAMLIB_EXPORT(int)
2270 rig_set_xit HAMLIB_PARAMS((RIG *rig,
2271  vfo_t vfo,
2272  shortfreq_t xit));
2273 extern HAMLIB_EXPORT(int)
2274 rig_get_xit HAMLIB_PARAMS((RIG *rig,
2275  vfo_t vfo,
2276  shortfreq_t *xit));
2277 
2278 extern HAMLIB_EXPORT(int)
2279 rig_set_ts HAMLIB_PARAMS((RIG *rig,
2280  vfo_t vfo,
2281  shortfreq_t ts));
2282 extern HAMLIB_EXPORT(int)
2283 rig_get_ts HAMLIB_PARAMS((RIG *rig,
2284  vfo_t vfo,
2285  shortfreq_t *ts));
2286 
2287 extern HAMLIB_EXPORT(int)
2288 rig_power2mW HAMLIB_PARAMS((RIG *rig,
2289  unsigned int *mwpower,
2290  float power,
2291  freq_t freq,
2292  rmode_t mode));
2293 extern HAMLIB_EXPORT(int)
2294 rig_mW2power HAMLIB_PARAMS((RIG *rig,
2295  float *power,
2296  unsigned int mwpower,
2297  freq_t freq,
2298  rmode_t mode));
2299 
2300 extern HAMLIB_EXPORT(shortfreq_t)
2301 rig_get_resolution HAMLIB_PARAMS((RIG *rig,
2302  rmode_t mode));
2303 
2304 extern HAMLIB_EXPORT(int)
2305 rig_set_level HAMLIB_PARAMS((RIG *rig,
2306  vfo_t vfo,
2307  setting_t level,
2308  value_t val));
2309 extern HAMLIB_EXPORT(int)
2310 rig_get_level HAMLIB_PARAMS((RIG *rig,
2311  vfo_t vfo,
2312  setting_t level,
2313  value_t *val));
2314 
2315 #define rig_get_strength(r,v,s) rig_get_level((r),(v),RIG_LEVEL_STRENGTH, (value_t*)(s))
2316 
2317 extern HAMLIB_EXPORT(int)
2318 rig_set_parm HAMLIB_PARAMS((RIG *rig,
2319  setting_t parm,
2320  value_t val));
2321 extern HAMLIB_EXPORT(int)
2322 rig_get_parm HAMLIB_PARAMS((RIG *rig,
2323  setting_t parm,
2324  value_t *val));
2325 
2326 extern HAMLIB_EXPORT(int)
2327 rig_set_conf HAMLIB_PARAMS((RIG *rig,
2328  token_t token,
2329  const char *val));
2330 extern HAMLIB_EXPORT(int)
2331 rig_get_conf HAMLIB_PARAMS((RIG *rig,
2332  token_t token,
2333  char *val));
2334 
2335 extern HAMLIB_EXPORT(int)
2336 rig_set_powerstat HAMLIB_PARAMS((RIG *rig,
2337  powerstat_t status));
2338 extern HAMLIB_EXPORT(int)
2339 rig_get_powerstat HAMLIB_PARAMS((RIG *rig,
2340  powerstat_t *status));
2341 
2342 extern HAMLIB_EXPORT(int)
2343 rig_reset HAMLIB_PARAMS((RIG *rig,
2344  reset_t reset)); /* dangerous! */
2345 
2346 extern HAMLIB_EXPORT(int)
2347 rig_set_ext_level HAMLIB_PARAMS((RIG *rig,
2348  vfo_t vfo,
2349  token_t token,
2350  value_t val));
2351 extern HAMLIB_EXPORT(int)
2352 rig_get_ext_level HAMLIB_PARAMS((RIG *rig,
2353  vfo_t vfo,
2354  token_t token,
2355  value_t *val));
2356 
2357 extern HAMLIB_EXPORT(int)
2358 rig_set_ext_func HAMLIB_PARAMS((RIG *rig,
2359  vfo_t vfo,
2360  token_t token,
2361  int status));
2362 extern HAMLIB_EXPORT(int)
2363 rig_get_ext_func HAMLIB_PARAMS((RIG *rig,
2364  vfo_t vfo,
2365  token_t token,
2366  int *status));
2367 
2368 extern HAMLIB_EXPORT(int)
2369 rig_set_ext_parm HAMLIB_PARAMS((RIG *rig,
2370  token_t token,
2371  value_t val));
2372 extern HAMLIB_EXPORT(int)
2373 rig_get_ext_parm HAMLIB_PARAMS((RIG *rig,
2374  token_t token,
2375  value_t *val));
2376 
2377 extern HAMLIB_EXPORT(int)
2378 rig_ext_level_foreach HAMLIB_PARAMS((RIG *rig,
2379  int (*cfunc)(RIG *,
2380  const struct confparams *,
2381  rig_ptr_t),
2382  rig_ptr_t data));
2383 extern HAMLIB_EXPORT(int)
2384 rig_ext_parm_foreach HAMLIB_PARAMS((RIG *rig,
2385  int (*cfunc)(RIG *,
2386  const struct confparams *,
2387  rig_ptr_t),
2388  rig_ptr_t data));
2389 
2390 extern HAMLIB_EXPORT(const struct confparams *)
2391 rig_ext_lookup HAMLIB_PARAMS((RIG *rig,
2392  const char *name));
2393 
2394 extern HAMLIB_EXPORT(const struct confparams *)
2395 rig_ext_lookup_tok HAMLIB_PARAMS((RIG *rig,
2396  token_t token));
2397 extern HAMLIB_EXPORT(token_t)
2398 rig_ext_token_lookup HAMLIB_PARAMS((RIG *rig,
2399  const char *name));
2400 
2401 
2402 extern HAMLIB_EXPORT(int)
2403 rig_token_foreach HAMLIB_PARAMS((RIG *rig,
2404  int (*cfunc)(const struct confparams *,
2405  rig_ptr_t),
2406  rig_ptr_t data));
2407 
2408 extern HAMLIB_EXPORT(const struct confparams *)
2409 rig_confparam_lookup HAMLIB_PARAMS((RIG *rig,
2410  const char *name));
2411 extern HAMLIB_EXPORT(token_t)
2412 rig_token_lookup HAMLIB_PARAMS((RIG *rig,
2413  const char *name));
2414 
2415 extern HAMLIB_EXPORT(int)
2416 rig_close HAMLIB_PARAMS((RIG *rig));
2417 
2418 extern HAMLIB_EXPORT(int)
2419 rig_cleanup HAMLIB_PARAMS((RIG *rig));
2420 
2421 extern HAMLIB_EXPORT(int)
2422 rig_set_ant HAMLIB_PARAMS((RIG *rig,
2423  vfo_t vfo,
2424  ant_t ant, /* antenna */
2425  value_t option)); /* optional ant info */
2426 extern HAMLIB_EXPORT(int)
2427 rig_get_ant HAMLIB_PARAMS((RIG *rig,
2428  vfo_t vfo,
2429  ant_t ant,
2430  value_t *option,
2431  ant_t *ant_curr,
2432  ant_t *ant_tx,
2433  ant_t *ant_rx));
2434 
2435 extern HAMLIB_EXPORT(setting_t)
2436 rig_has_get_level HAMLIB_PARAMS((RIG *rig,
2437  setting_t level));
2438 extern HAMLIB_EXPORT(setting_t)
2439 rig_has_set_level HAMLIB_PARAMS((RIG *rig,
2440  setting_t level));
2441 
2442 extern HAMLIB_EXPORT(setting_t)
2443 rig_has_get_parm HAMLIB_PARAMS((RIG *rig,
2444  setting_t parm));
2445 extern HAMLIB_EXPORT(setting_t)
2446 rig_has_set_parm HAMLIB_PARAMS((RIG *rig,
2447  setting_t parm));
2448 
2449 extern HAMLIB_EXPORT(setting_t)
2450 rig_has_get_func HAMLIB_PARAMS((RIG *rig,
2451  setting_t func));
2452 extern HAMLIB_EXPORT(setting_t)
2453 rig_has_set_func HAMLIB_PARAMS((RIG *rig,
2454  setting_t func));
2455 
2456 extern HAMLIB_EXPORT(int)
2457 rig_set_func HAMLIB_PARAMS((RIG *rig,
2458  vfo_t vfo,
2459  setting_t func,
2460  int status));
2461 extern HAMLIB_EXPORT(int)
2462 rig_get_func HAMLIB_PARAMS((RIG *rig,
2463  vfo_t vfo,
2464  setting_t func,
2465  int *status));
2466 
2467 extern HAMLIB_EXPORT(int)
2468 rig_send_dtmf HAMLIB_PARAMS((RIG *rig,
2469  vfo_t vfo,
2470  const char *digits));
2471 extern HAMLIB_EXPORT(int)
2472 rig_recv_dtmf HAMLIB_PARAMS((RIG *rig,
2473  vfo_t vfo,
2474  char *digits,
2475  int *length));
2476 
2477 extern HAMLIB_EXPORT(int)
2478 rig_send_morse HAMLIB_PARAMS((RIG *rig,
2479  vfo_t vfo,
2480  const char *msg));
2481 
2482 extern HAMLIB_EXPORT(int)
2483 rig_send_voice_mem HAMLIB_PARAMS((RIG *rig,
2484  vfo_t vfo,
2485  int ch));
2486 
2487 extern HAMLIB_EXPORT(int)
2488 rig_set_bank HAMLIB_PARAMS((RIG *rig,
2489  vfo_t vfo,
2490  int bank));
2491 
2492 extern HAMLIB_EXPORT(int)
2493 rig_set_mem HAMLIB_PARAMS((RIG *rig,
2494  vfo_t vfo,
2495  int ch));
2496 extern HAMLIB_EXPORT(int)
2497 rig_get_mem HAMLIB_PARAMS((RIG *rig,
2498  vfo_t vfo,
2499  int *ch));
2500 
2501 extern HAMLIB_EXPORT(int)
2502 rig_vfo_op HAMLIB_PARAMS((RIG *rig,
2503  vfo_t vfo,
2504  vfo_op_t op));
2505 
2506 extern HAMLIB_EXPORT(vfo_op_t)
2507 rig_has_vfo_op HAMLIB_PARAMS((RIG *rig,
2508  vfo_op_t op));
2509 
2510 extern HAMLIB_EXPORT(int)
2511 rig_scan HAMLIB_PARAMS((RIG *rig,
2512  vfo_t vfo,
2513  scan_t scan,
2514  int ch));
2515 
2516 extern HAMLIB_EXPORT(scan_t)
2517 rig_has_scan HAMLIB_PARAMS((RIG *rig,
2518  scan_t scan));
2519 
2520 extern HAMLIB_EXPORT(int)
2521 rig_set_channel HAMLIB_PARAMS((RIG *rig,
2522  const channel_t *chan)); /* mem */
2523 extern HAMLIB_EXPORT(int)
2524 rig_get_channel HAMLIB_PARAMS((RIG *rig,
2525  channel_t *chan, int read_only));
2526 
2527 extern HAMLIB_EXPORT(int)
2528 rig_set_chan_all HAMLIB_PARAMS((RIG *rig,
2529  const channel_t chans[]));
2530 extern HAMLIB_EXPORT(int)
2531 rig_get_chan_all HAMLIB_PARAMS((RIG *rig,
2532  channel_t chans[]));
2533 
2534 extern HAMLIB_EXPORT(int)
2535 rig_set_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2536  chan_cb_t chan_cb,
2537  rig_ptr_t));
2538 extern HAMLIB_EXPORT(int)
2539 rig_get_chan_all_cb HAMLIB_PARAMS((RIG *rig,
2540  chan_cb_t chan_cb,
2541  rig_ptr_t));
2542 
2543 extern HAMLIB_EXPORT(int)
2544 rig_set_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2545  chan_cb_t chan_cb,
2546  confval_cb_t parm_cb,
2547  rig_ptr_t));
2548 extern HAMLIB_EXPORT(int)
2549 rig_get_mem_all_cb HAMLIB_PARAMS((RIG *rig,
2550  chan_cb_t chan_cb,
2551  confval_cb_t parm_cb,
2552  rig_ptr_t));
2553 
2554 extern HAMLIB_EXPORT(int)
2555 rig_set_mem_all HAMLIB_PARAMS((RIG *rig,
2556  const channel_t *chan,
2557  const struct confparams *,
2558  const value_t *));
2559 extern HAMLIB_EXPORT(int)
2560 rig_get_mem_all HAMLIB_PARAMS((RIG *rig,
2561  channel_t *chan,
2562  const struct confparams *,
2563  value_t *));
2564 
2565 extern HAMLIB_EXPORT(const chan_t *)
2566 rig_lookup_mem_caps HAMLIB_PARAMS((RIG *rig,
2567  int ch));
2568 
2569 extern HAMLIB_EXPORT(int)
2570 rig_mem_count HAMLIB_PARAMS((RIG *rig));
2571 
2572 extern HAMLIB_EXPORT(int)
2573 rig_set_trn HAMLIB_PARAMS((RIG *rig,
2574  int trn));
2575 extern HAMLIB_EXPORT(int)
2576 rig_get_trn HAMLIB_PARAMS((RIG *rig,
2577  int *trn));
2578 
2579 extern HAMLIB_EXPORT(int)
2580 rig_set_freq_callback HAMLIB_PARAMS((RIG *,
2581  freq_cb_t,
2582  rig_ptr_t));
2583 
2584 extern HAMLIB_EXPORT(int)
2585 rig_set_mode_callback HAMLIB_PARAMS((RIG *,
2586  mode_cb_t,
2587  rig_ptr_t));
2588 extern HAMLIB_EXPORT(int)
2589 rig_set_vfo_callback HAMLIB_PARAMS((RIG *,
2590  vfo_cb_t,
2591  rig_ptr_t));
2592 
2593 extern HAMLIB_EXPORT(int)
2594 rig_set_ptt_callback HAMLIB_PARAMS((RIG *,
2595  ptt_cb_t,
2596  rig_ptr_t));
2597 
2598 extern HAMLIB_EXPORT(int)
2599 rig_set_dcd_callback HAMLIB_PARAMS((RIG *,
2600  dcd_cb_t,
2601  rig_ptr_t));
2602 
2603 extern HAMLIB_EXPORT(int)
2604 rig_set_pltune_callback HAMLIB_PARAMS((RIG *,
2605  pltune_cb_t,
2606  rig_ptr_t));
2607 
2608 extern HAMLIB_EXPORT(int)
2609 rig_set_twiddle HAMLIB_PARAMS((RIG *rig,
2610  int seconds));
2611 
2612 extern HAMLIB_EXPORT(int)
2613 rig_get_twiddle HAMLIB_PARAMS((RIG *rig,
2614  int *seconds));
2615 
2616 extern HAMLIB_EXPORT(const char *)
2617 rig_get_info HAMLIB_PARAMS((RIG *rig));
2618 
2619 extern HAMLIB_EXPORT(const struct rig_caps *)
2620 rig_get_caps HAMLIB_PARAMS((rig_model_t rig_model));
2621 
2622 extern HAMLIB_EXPORT(const freq_range_t *)
2623 rig_get_range HAMLIB_PARAMS((const freq_range_t *range_list,
2624  freq_t freq,
2625  rmode_t mode));
2626 
2627 extern HAMLIB_EXPORT(pbwidth_t)
2628 rig_passband_normal HAMLIB_PARAMS((RIG *rig,
2629  rmode_t mode));
2630 extern HAMLIB_EXPORT(pbwidth_t)
2631 rig_passband_narrow HAMLIB_PARAMS((RIG *rig,
2632  rmode_t mode));
2633 extern HAMLIB_EXPORT(pbwidth_t)
2634 rig_passband_wide HAMLIB_PARAMS((RIG *rig,
2635  rmode_t mode));
2636 
2637 extern HAMLIB_EXPORT(const char *)
2638 rigerror HAMLIB_PARAMS((int errnum));
2639 
2640 extern HAMLIB_EXPORT(int)
2641 rig_setting2idx HAMLIB_PARAMS((setting_t s));
2642 
2643 extern HAMLIB_EXPORT(setting_t)
2644 rig_idx2setting(int i);
2645 /*
2646  * Even if these functions are prefixed with "rig_", they are not rig specific
2647  * Maybe "hamlib_" would have been better. Let me know. --SF
2648  */
2649 extern HAMLIB_EXPORT(void)
2650 rig_set_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
2651 
2652 extern HAMLIB_EXPORT(void)
2653 rig_set_debug_time_stamp HAMLIB_PARAMS((int flag));
2654 
2655 #define rig_set_debug_level(level) rig_set_debug(level)
2656 
2657 extern HAMLIB_EXPORT(int)
2658 rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
2659 
2660 
2661 
2662 #ifndef __cplusplus
2663 #ifdef __GNUC__
2664 // doing the debug macro with a dummy sprintf allows gcc to check the format string
2665 #define rig_debug(debug_level,fmt,...) { char xxxbuf[16384]="";snprintf(xxxbuf,sizeof(xxxbuf),fmt,__VA_ARGS__);rig_debug(debug_level,fmt,##__VA_ARGS__); }
2666 #endif
2667 #endif
2668 extern HAMLIB_EXPORT(void)
2669 rig_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level,
2670  const char *fmt, ...));
2671 
2672 extern HAMLIB_EXPORT(vprintf_cb_t)
2673 rig_set_debug_callback HAMLIB_PARAMS((vprintf_cb_t cb,
2674  rig_ptr_t arg));
2675 
2676 extern HAMLIB_EXPORT(FILE *)
2677 rig_set_debug_file HAMLIB_PARAMS((FILE *stream));
2678 
2679 extern HAMLIB_EXPORT(int)
2680 rig_register HAMLIB_PARAMS((const struct rig_caps *caps));
2681 
2682 extern HAMLIB_EXPORT(int)
2683 rig_unregister HAMLIB_PARAMS((rig_model_t rig_model));
2684 
2685 extern HAMLIB_EXPORT(int)
2686 rig_list_foreach HAMLIB_PARAMS((int (*cfunc)(const struct rig_caps *, rig_ptr_t),
2687  rig_ptr_t data));
2688 
2689 extern HAMLIB_EXPORT(int)
2690 rig_load_backend HAMLIB_PARAMS((const char *be_name));
2691 
2692 extern HAMLIB_EXPORT(int)
2693 rig_check_backend HAMLIB_PARAMS((rig_model_t rig_model));
2694 
2695 extern HAMLIB_EXPORT(int)
2696 rig_load_all_backends HAMLIB_PARAMS((void));
2697 
2698 typedef int (*rig_probe_func_t)(const hamlib_port_t *, rig_model_t, rig_ptr_t);
2699 
2700 extern HAMLIB_EXPORT(int)
2701 rig_probe_all HAMLIB_PARAMS((hamlib_port_t *p,
2702  rig_probe_func_t,
2703  rig_ptr_t));
2704 
2705 extern HAMLIB_EXPORT(rig_model_t)
2706 rig_probe HAMLIB_PARAMS((hamlib_port_t *p));
2707 
2708 
2709 /* Misc calls */
2710 extern HAMLIB_EXPORT(const char *) rig_strrmode(rmode_t mode);
2711 extern HAMLIB_EXPORT(int) rig_strrmodes(rmode_t modes, char *buf, int buflen);
2712 extern HAMLIB_EXPORT(const char *) rig_strvfo(vfo_t vfo);
2713 extern HAMLIB_EXPORT(const char *) rig_strfunc(setting_t);
2714 extern HAMLIB_EXPORT(const char *) rig_strlevel(setting_t);
2715 extern HAMLIB_EXPORT(const char *) rig_strparm(setting_t);
2716 extern HAMLIB_EXPORT(const char *) rig_strptrshift(rptr_shift_t);
2717 extern HAMLIB_EXPORT(const char *) rig_strvfop(vfo_op_t op);
2718 extern HAMLIB_EXPORT(const char *) rig_strscan(scan_t scan);
2719 extern HAMLIB_EXPORT(const char *) rig_strstatus(enum rig_status_e status);
2720 extern HAMLIB_EXPORT(const char *) rig_strmtype(chan_type_t mtype);
2721 
2722 extern HAMLIB_EXPORT(rmode_t) rig_parse_mode(const char *s);
2723 extern HAMLIB_EXPORT(vfo_t) rig_parse_vfo(const char *s);
2724 extern HAMLIB_EXPORT(setting_t) rig_parse_func(const char *s);
2725 extern HAMLIB_EXPORT(setting_t) rig_parse_level(const char *s);
2726 extern HAMLIB_EXPORT(setting_t) amp_parse_level(const char *s);
2727 extern HAMLIB_EXPORT(setting_t) rig_parse_parm(const char *s);
2728 extern HAMLIB_EXPORT(vfo_op_t) rig_parse_vfo_op(const char *s);
2729 extern HAMLIB_EXPORT(scan_t) rig_parse_scan(const char *s);
2730 extern HAMLIB_EXPORT(rptr_shift_t) rig_parse_rptr_shift(const char *s);
2731 extern HAMLIB_EXPORT(chan_type_t) rig_parse_mtype(const char *s);
2732 
2733 extern HAMLIB_EXPORT(const char *) rig_license HAMLIB_PARAMS(());
2734 extern HAMLIB_EXPORT(const char *) rig_version HAMLIB_PARAMS(());
2735 extern HAMLIB_EXPORT(const char *) rig_copyright HAMLIB_PARAMS(());
2736 
2737 extern HAMLIB_EXPORT(void) rig_no_restore_ai();
2738 
2739 extern HAMLIB_EXPORT(int) rig_get_cache_timeout_ms(RIG *rig, cache_t selection);
2740 extern HAMLIB_EXPORT(int) rig_set_cache_timeout_ms(RIG *rig, cache_t selection, int ms);
2741 
2742 extern HAMLIB_EXPORT(int) rig_set_vfo_opt(RIG *rig, int status);
2743 
2744 
2745 // cppcheck-suppress *
2746 typedef unsigned long rig_useconds_t;
2747 extern HAMLIB_EXPORT(int) hl_usleep(rig_useconds_t msec);
2748 
2750 
2751 __END_DECLS
2752 
2753 #endif /* _RIG_H */
2754 
RIG_EARG
@ RIG_EARG
Definition: rig.h:139
RIG_LEVEL_39
@ RIG_LEVEL_39
Definition: rig.h:883
RIG_LEVEL_NB
@ RIG_LEVEL_NB
Definition: rig.h:882
rig_get_ext_level
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:707
rig_port_e
rig_port_e
Port type.
Definition: rig.h:209
RIG_LEVEL_RAWSTR
@ RIG_LEVEL_RAWSTR
Definition: rig.h:869
tuning_step_list::ts
shortfreq_t ts
Definition: rig.h:1235
RIG_PARM_BACKLIGHT
@ RIG_PARM_BACKLIGHT
Definition: rig.h:932
channel::bank_num
int bank_num
Definition: rig.h:1319
rig_get_func
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:577
cal_table::raw
int raw
Definition: rig.h:1486
RIG_EVFO
@ RIG_EVFO
Definition: rig.h:140
RIG_RESET_MASTER
@ RIG_RESET_MASTER
Definition: rig.h:581
rig_get_split_mode
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:3239
rig_get_resolution
shortfreq_t rig_get_resolution(RIG *rig, rmode_t mode)
get the best frequency resolution of the rig
Definition: rig.c:4347
rig_get_powerstat
int rig_get_powerstat(RIG *rig, powerstat_t *status)
get the on/off status of the radio
Definition: rig.c:4421
RIG_FLAG_MOBILE
@ RIG_FLAG_MOBILE
Definition: rig.h:266
channel::ctcss_tone
tone_t ctcss_tone
Definition: rig.h:1340
rig_get_ext_func
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:838
s_rig
The Rig structure.
Definition: rig.h:2095
channel_cap::ctcss_tone
unsigned ctcss_tone
Definition: rig.h:1382
RIG_DCD_CM108
@ RIG_DCD_CM108
Definition: rig.h:526
ptt_t
ptt_t
PTT status.
Definition: rig.h:535
RIG_RESET_MCALL
@ RIG_RESET_MCALL
Definition: rig.h:580
rig_set_split_mode
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:3127
gran::max
value_t max
Definition: rig.h:1470
channel::mode
rmode_t mode
Definition: rig.h:1323
RIG_RPT_SHIFT_NONE
@ RIG_RPT_SHIFT_NONE
Definition: rig.h:317
channel_cap::rptr_offs
unsigned rptr_offs
Definition: rig.h:1376
RIG_LEVEL_MONITOR_GAIN
@ RIG_LEVEL_MONITOR_GAIN
Definition: rig.h:881
rig_state::level_gran
gran_t level_gran[64]
Definition: rig.h:2001
RIG_MTYPE_MEM
@ RIG_MTYPE_MEM
Definition: rig.h:1410
RIG_CONF_NUMERIC
@ RIG_CONF_NUMERIC
Definition: rig.h:667
RIG_DCD_NONE
@ RIG_DCD_NONE
Definition: rig.h:520
RIG_CONF_COMBO
@ RIG_CONF_COMBO
Definition: rig.h:666
rig_parse_func
setting_t rig_parse_func(const char *s)
Convert alpha string to enum RIG_FUNC_...
Definition: misc.c:592
RIG_PTT_CM108
@ RIG_PTT_CM108
Definition: rig.h:555
RIG_PTT_ON_MIC
@ RIG_PTT_ON_MIC
Definition: rig.h:538
rig_get_rit
int rig_get_rit(RIG *rig, vfo_t vfo, shortfreq_t *rit)
get the current RIT offset
Definition: rig.c:3739
confparams::dflt
const char * dflt
Definition: rig.h:686
rig_mem_count
int rig_mem_count(RIG *rig)
get memory channel count
Definition: mem.c:1642
RIG_LEVEL_SQLSTAT
@ RIG_LEVEL_SQLSTAT
Definition: rig.h:870
RIG_PORT_DEVICE
@ RIG_PORT_DEVICE
Definition: rig.h:213
rig_get_ts
int rig_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts)
get the current Tuning Step
Definition: rig.c:4011
rig_strptrshift
const char * rig_strptrshift(rptr_shift_t shift)
convert enum RIG_RPT_SHIFT_... to printable character
Definition: misc.c:1047
RIG_RESET_VFO
@ RIG_RESET_VFO
Definition: rig.h:579
RIG_ANN_RXMODE
@ RIG_ANN_RXMODE
Definition: rig.h:710
rig_get_mem_all
int rig_get_mem_all(RIG *rig, channel_t chans[], const struct confparams cfgps[], value_t vals[])
get all channel and non-channel data
Definition: mem.c:1519
rptr_shift_t
rptr_shift_t
Repeater shift type.
Definition: rig.h:316
cal_table::val
int val
Definition: rig.h:1487
channel_cap::freq
unsigned freq
Definition: rig.h:1365
RIG_LEVEL_RFPOWER
@ RIG_LEVEL_RFPOWER
Definition: rig.h:853
filter_list::width
pbwidth_t width
Definition: rig.h:1270
gran::min
value_t min
Definition: rig.h:1469
channel::flags
unsigned int flags
Definition: rig.h:1345
rig_set_pltune_callback
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:678
rig_status_e
rig_status_e
Development status of the backend.
Definition: rig.h:296
rig_set_vfo_opt
int rig_set_vfo_opt(RIG *rig, int status)
set the vfo option for rigctld
Definition: rig.c:5058
channel_cap::vfo
unsigned vfo
Definition: rig.h:1363
rig_set_ptt
int rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt)
set PTT on/off
Definition: rig.c:2076
RIG_AGC_USER
@ RIG_AGC_USER
Definition: rig.h:788
RIG_LEVEL_NR
@ RIG_LEVEL_NR
Definition: rig.h:849
channel::funcs
setting_t funcs
Definition: rig.h:1338
RIG_LEVEL_BALANCE
@ RIG_LEVEL_BALANCE
Definition: rig.h:860
RIG_PTT_NONE
@ RIG_PTT_NONE
Definition: rig.h:549
rig_state::announces
ann_t announces
Definition: rig.h:1989
chan_list::mem_caps
channel_cap_t mem_caps
Definition: rig.h:1438
dcd_type_t
dcd_type_t
DCD type.
Definition: rig.h:519
rig_state::comm_state
int comm_state
Definition: rig.h:2012
rig_set_vfo
int rig_set_vfo(RIG *rig, vfo_t vfo)
set the current VFO
Definition: rig.c:1915
RIG_LEVEL_VOXDELAY
@ RIG_LEVEL_VOXDELAY
Definition: rig.h:843
RIG_DCD_SERIAL_DSR
@ RIG_DCD_SERIAL_DSR
Definition: rig.h:522
channel_cap::ext_levels
unsigned ext_levels
Definition: rig.h:1389
rig_state::has_get_parm
setting_t has_get_parm
Definition: rig.h:1998
cal_table::size
int size
Definition: rig.h:1484
chan_list::startc
int startc
Definition: rig.h:1434
rig_scan
int rig_scan(RIG *rig, vfo_t vfo, scan_t scan, int ch)
perform Memory/VFO operations
Definition: rig.c:4682
RIG_MTYPE_NONE
@ RIG_MTYPE_NONE
Definition: rig.h:1409
RIG_CONF_BUTTON
@ RIG_CONF_BUTTON
Definition: rig.h:669
channel_cap::tx_freq
unsigned tx_freq
Definition: rig.h:1369
RIG_LEVEL_KEYSPD
@ RIG_LEVEL_KEYSPD
Definition: rig.h:855
rig_state::priv
rig_ptr_t priv
Definition: rig.h:2013
RIG_OP_UP
@ RIG_OP_UP
Definition: rig.h:607
rig_callbacks::ptt_arg
rig_ptr_t ptt_arg
Definition: rig.h:2077
ext_list::val
value_t val
Definition: rig.h:1302
rig_callbacks::freq_event
freq_cb_t freq_event
Definition: rig.h:2070
rig_has_vfo_op
vfo_op_t rig_has_vfo_op(RIG *rig, vfo_op_t op)
check retrieval ability of VFO operations
Definition: rig.c:4555
RIG_LEVEL_46
@ RIG_LEVEL_46
Definition: rig.h:890
RIG_LEVEL_52
@ RIG_LEVEL_52
Definition: rig.h:896
rig_cleanup
int rig_cleanup(RIG *rig)
release a rig handle and free associated memory
Definition: rig.c:1110
RIG_PTT_GPIO
@ RIG_PTT_GPIO
Definition: rig.h:556
RIG_LEVEL_SLOPE_HIGH
@ RIG_LEVEL_SLOPE_HIGH
Definition: rig.h:865
rig_set_ext_level
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:641
freq_range_list::label
char * label
Definition: rig.h:1209
filter_list
Filter definition.
Definition: rig.h:1268
RIG_OP_TOGGLE
@ RIG_OP_TOGGLE
Definition: rig.h:614
RIG_ENTARGET
@ RIG_ENTARGET
Definition: rig.h:136
RIG_MTYPE_MEMOPAD
@ RIG_MTYPE_MEMOPAD
Definition: rig.h:1413
rig_set_debug_time_stamp
void rig_set_debug_time_stamp(int flag)
Enbable/disable time stamp on debug output.
Definition: debug.c:142
scan_t
scan_t
Rig Scan operation.
Definition: rig.h:626
rig_reset
int rig_reset(RIG *rig, reset_t reset)
reset the radio
Definition: rig.c:4453
RIG_LEVEL_NOTCHF
@ RIG_LEVEL_NOTCHF
Definition: rig.h:856
confparams
Configuration parameter structure.
Definition: rig.h:681
rig_ext_lookup
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:153
rig_get_info
const char * rig_get_info(RIG *rig)
get general information from the radio
Definition: rig.c:5081
RIG_LEVEL_55
@ RIG_LEVEL_55
Definition: rig.h:899
channel_cap
Channel capability definition.
Definition: rig.h:1361
chan_type_t
chan_type_t
Memory channel type definition.
Definition: rig.h:1408
channel_cap::dcs_code
unsigned dcs_code
Definition: rig.h:1384
RIG_DCD_RIG
@ RIG_DCD_RIG
Definition: rig.h:521
ext_list
Extension attribute definition.
Definition: rig.h:1300
rig_state::current_freq
freq_t current_freq
Definition: rig.h:2018
rig_state::has_set_parm
setting_t has_set_parm
Definition: rig.h:1999
rig_set_chan_all_cb
int rig_set_chan_all_cb(RIG *rig, chan_cb_t chan_cb, rig_ptr_t arg)
set all channel data, by callback
Definition: mem.c:1079
RIG_LEVEL_45
@ RIG_LEVEL_45
Definition: rig.h:889
RIG_ANN_NONE
@ RIG_ANN_NONE
Definition: rig.h:707
rig_passband_narrow
pbwidth_t rig_passband_narrow(RIG *rig, rmode_t mode)
get the narrow passband of a mode
Definition: rig.c:1810
rig_mW2power
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:4289
RIG_LEVEL_ANTIVOX
@ RIG_LEVEL_ANTIVOX
Definition: rig.h:863
chan_list
Memory channel list definition.
Definition: rig.h:1433
rig_parse_mode
rmode_t rig_parse_mode(const char *s)
Convert alpha string to enum RIG_MODE.
Definition: misc.c:359
powerstat_t
powerstat_t
Radio power state.
Definition: rig.h:564
RIG_LEVEL_43
@ RIG_LEVEL_43
Definition: rig.h:887
RIG_LEVEL_SQL
@ RIG_LEVEL_SQL
Definition: rig.h:846
rig_strvfop
const char * rig_strvfop(vfo_op_t op)
Convert enum RIG_OP_... to alpha string.
Definition: misc.c:948
RIG_LEVEL_VD_METER
@ RIG_LEVEL_VD_METER
Definition: rig.h:877
RIG_PORT_RPC
@ RIG_PORT_RPC
Definition: rig.h:217
RIG_DEBUG_NONE
@ RIG_DEBUG_NONE
Definition: rig.h:158
RIG_RPT_SHIFT_PLUS
@ RIG_RPT_SHIFT_PLUS
Definition: rig.h:319
ptt_type_t
ptt_type_t
PTT type.
Definition: rig.h:548
RIG_LEVEL_MICGAIN
@ RIG_LEVEL_MICGAIN
Definition: rig.h:854
shortfreq_t
signed long shortfreq_t
Short frequency type.
Definition: rig.h:359
value_t::s
char * s
Definition: rig.h:820
rig_state::max_ifshift
shortfreq_t max_ifshift
Definition: rig.h:1987
freq_t
double freq_t
Frequency type,.
Definition: rig.h:337
rig_state::current_width
pbwidth_t current_width
Definition: rig.h:2020
RIG_PORT_SERIAL
@ RIG_PORT_SERIAL
Definition: rig.h:211
RIG_OP_BAND_DOWN
@ RIG_OP_BAND_DOWN
Definition: rig.h:610
rigerror
const char * rigerror(int errnum)
get string describing the error code
Definition: rig.c:291
rig_set_func
int rig_set_func(RIG *rig, vfo_t vfo, setting_t func, int status)
activate/de-activate functions of radio
Definition: settings.c:510
rig_recv_dtmf
int rig_recv_dtmf(RIG *rig, vfo_t vfo, char *digits, int *length)
receive DTMF digits
Definition: rig.c:4820
rig_get_ext_parm
int rig_get_ext_parm(RIG *rig, token_t token, value_t *val)
get the value of a parm extra parameter
Definition: settings.c:935
rig_state::has_get_func
setting_t has_get_func
Definition: rig.h:1994
rig_state::max_rit
shortfreq_t max_rit
Definition: rig.h:1985
rig_send_morse
int rig_send_morse(RIG *rig, vfo_t vfo, const char *msg)
send morse code
Definition: rig.c:4888
rig_state::vfo_list
int vfo_list
Definition: rig.h:2011
rig_set_mem_all
int rig_set_mem_all(RIG *rig, const channel_t chans[], const struct confparams cfgps[], const value_t vals[])
set all channel and non-channel data
Definition: mem.c:1452
RIG_BUSBUSY
@ RIG_BUSBUSY
Definition: rig.h:138
channel::rptr_shift
rptr_shift_t rptr_shift
Definition: rig.h:1333
rig_strstatus
const char * rig_strstatus(enum rig_status_e status)
Convert enum RIG_STATUS_... to printable string.
Definition: misc.c:286
pbwidth_t
shortfreq_t pbwidth_t
Definition: rig.h:502
RIG_LEVEL_59
@ RIG_LEVEL_59
Definition: rig.h:903
confparams::n
struct confparams::@12::@13 n
rig_callbacks::mode_event
mode_cb_t mode_event
Definition: rig.h:2072
RIG_POWER_ON
@ RIG_POWER_ON
Definition: rig.h:566
RIG_FLAG_DXCLUSTER
@ RIG_FLAG_DXCLUSTER
Definition: rig.h:272
cal_table::table
struct cal_table::@15 table[MAX_CAL_LENGTH]
channel_cap::ant
unsigned ant
Definition: rig.h:1364
RIG_FLAG_TUNER
@ RIG_FLAG_TUNER
Definition: rig.h:273
rig_license
const char * rig_license()
get the Hamlib license
Definition: rig.c:5103
rig_set_twiddle
int rig_set_twiddle(RIG *rig, int seconds)
timeout (secs) to stop rigctld when VFO is manually changed
Definition: rig.c:1154
RIG_ETRUNC
@ RIG_ETRUNC
Definition: rig.h:134
freq_range_t
struct freq_range_list freq_range_t
Frequency range.
value_t::f
float f
Definition: rig.h:819
RIG_LEVEL_54
@ RIG_LEVEL_54
Definition: rig.h:898
rig_get_split_freq_mode
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:3418
RIG_LEVEL_ATT
@ RIG_LEVEL_ATT
Definition: rig.h:842
serial_handshake_e
serial_handshake_e
Serial handshake.
Definition: rig.h:242
rig_get_rptr_shift
int rig_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift)
get the current repeater shift
Definition: rig.c:2692
RIG_DEBUG_BUG
@ RIG_DEBUG_BUG
Definition: rig.h:159
rig_has_set_func
setting_t rig_has_set_func(RIG *rig, setting_t func)
check ability of radio functions
Definition: settings.c:479
value_t
Universal approach for passing values.
Definition: rig.h:817
RIG_SCAN_PROG
@ RIG_SCAN_PROG
Definition: rig.h:631
RIG_CONF_STRING
@ RIG_CONF_STRING
Definition: rig.h:665
channel::ext_levels
struct ext_list * ext_levels
Definition: rig.h:1347
RIG_PARM_NONE
@ RIG_PARM_NONE
Definition: rig.h:929
rig_has_scan
scan_t rig_has_scan(RIG *rig, scan_t scan)
check availability of scanning functions
Definition: rig.c:4653
RIG_STATUS_ALPHA
@ RIG_STATUS_ALPHA
Definition: rig.h:297
amp_parse_level
setting_t amp_parse_level(const char *s)
Convert alpha string to enum AMP_LEVEL_...
Definition: misc.c:737
cal_table_float::table
struct cal_table_float::@16 table[MAX_CAL_LENGTH]
RIG_OP_MCL
@ RIG_OP_MCL
Definition: rig.h:606
channel_cap::tx_width
unsigned tx_width
Definition: rig.h:1371
confparams::u
union confparams::@12 u
RIG_ANN_ENG
@ RIG_ANN_ENG
Definition: rig.h:712
rig_set_ctcss_sql
int rig_set_ctcss_sql(RIG *rig, vfo_t vfo, tone_t tone)
set CTCSS squelch
Definition: tones.c:362
channel::tx_vfo
vfo_t tx_vfo
Definition: rig.h:1331
rig_get_split_vfo
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:3560
rig_state::tuning_steps
struct tuning_step_list tuning_steps[TSLSTSIZ]
Definition: rig.h:1977
RIG_MTYPE_EDGE
@ RIG_MTYPE_EDGE
Definition: rig.h:1411
rig_state::preamp
int preamp[MAXDBLSTSIZ]
Definition: rig.h:1991
rig_parse_rptr_shift
rptr_shift_t rig_parse_rptr_shift(const char *s)
Convert alpha char to enum RIG_RPT_SHIFT_...
Definition: misc.c:1072
rig_state::rx_range_list
freq_range_t rx_range_list[FRQRANGESIZ]
Definition: rig.h:1974
RIG_ANN_FREQ
@ RIG_ANN_FREQ
Definition: rig.h:709
rig_callbacks::mode_arg
rig_ptr_t mode_arg
Definition: rig.h:2073
RIG_ENAVAIL
@ RIG_ENAVAIL
Definition: rig.h:135
rig_strmtype
const char * rig_strmtype(chan_type_t mtype)
Convert enum RIG_MTYPE_... to alpha string.
Definition: misc.c:1140
RIG_EPROTO
@ RIG_EPROTO
Definition: rig.h:132
channel_cap::scan_group
unsigned scan_group
Definition: rig.h:1386
RIG_LEVEL_42
@ RIG_LEVEL_42
Definition: rig.h:886
channel::dcs_sql
tone_t dcs_sql
Definition: rig.h:1343
RIG_FLAG_HANDHELD
@ RIG_FLAG_HANDHELD
Definition: rig.h:267
rig_errcode_e
rig_errcode_e
Hamlib error codes Error code definition that can be returned by the Hamlib functions....
Definition: rig.h:123
RIG_PARM_TIME
@ RIG_PARM_TIME
Definition: rig.h:934
channel_cap::ctcss_sql
unsigned ctcss_sql
Definition: rig.h:1383
RIG_RESET_SOFT
@ RIG_RESET_SOFT
Definition: rig.h:578
RIG_LEVEL_44
@ RIG_LEVEL_44
Definition: rig.h:888
rig_get_mem_all_cb
int rig_get_mem_all_cb(RIG *rig, 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:1387
channel::channel_desc
char channel_desc[MAXCHANDESC]
Definition: rig.h:1346
channel::scan_group
int scan_group
Definition: rig.h:1344
RIG_HANDSHAKE_HARDWARE
@ RIG_HANDSHAKE_HARDWARE
Definition: rig.h:245
RIG_LEVEL_METER
@ RIG_LEVEL_METER
Definition: rig.h:861
channel::split
split_t split
Definition: rig.h:1330
RIG_HANDSHAKE_XONXOFF
@ RIG_HANDSHAKE_XONXOFF
Definition: rig.h:244
RIG_STATUS_STABLE
@ RIG_STATUS_STABLE
Definition: rig.h:300
rig_state::current_vfo
vfo_t current_vfo
Definition: rig.h:2010
RIG_PARM_KEYLIGHT
@ RIG_PARM_KEYLIGHT
Definition: rig.h:936
RIG_PTT_OFF
@ RIG_PTT_OFF
Definition: rig.h:536
rig_strrmode
const char * rig_strrmode(rmode_t mode)
Convert enum RIG_MODE to alpha string.
Definition: misc.c:384
RIG_LEVEL_NONE
@ RIG_LEVEL_NONE
Definition: rig.h:840
RIG_STATUS_UNTESTED
@ RIG_STATUS_UNTESTED
Definition: rig.h:298
rig_type_t
rig_type_t
Rig type flags.
Definition: rig.h:262
RIG_EDOM
@ RIG_EDOM
Definition: rig.h:141
rig_state::transmit
int transmit
Definition: rig.h:2023
RIG_PORT_PACKET
@ RIG_PORT_PACKET
Definition: rig.h:214
rig_set_mode
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:1576
RIG_PARITY_ODD
@ RIG_PARITY_ODD
Definition: rig.h:232
RIG_PTT_ON_DATA
@ RIG_PTT_ON_DATA
Definition: rig.h:539
rig_callbacks::freq_arg
rig_ptr_t freq_arg
Definition: rig.h:2071
rig_get_trn
int rig_get_trn(RIG *rig, int *trn)
get the current transceive mode
Definition: event.c:855
RIG_DCD_SERIAL_CTS
@ RIG_DCD_SERIAL_CTS
Definition: rig.h:523
cal_table_float
Calibration table struct for float values.
Definition: rig.h:1513
freq_range_list::vfo
vfo_t vfo
Definition: rig.h:1207
filter_list::modes
rmode_t modes
Definition: rig.h:1269
rig_set_dcs_code
int rig_set_dcs_code(RIG *rig, vfo_t vfo, tone_t code)
set the current encoding DCS code
Definition: tones.c:230
channel_cap::rptr_shift
unsigned rptr_shift
Definition: rig.h:1375
rig_token_lookup
token_t rig_token_lookup(RIG *rig, const char *name)
lookup a token id
Definition: conf.c:999
rig_conf_e
rig_conf_e
parameter types
Definition: rig.h:664
rig_callbacks::dcd_arg
rig_ptr_t dcd_arg
Definition: rig.h:2079
channel_cap::mode
unsigned mode
Definition: rig.h:1366
RIG_PARM_ANN
@ RIG_PARM_ANN
Definition: rig.h:930
rig_state::mode_list
rmode_t mode_list
Definition: rig.h:2022
RIG_ENIMPL
@ RIG_ENIMPL
Definition: rig.h:128
channel::tx_freq
freq_t tx_freq
Definition: rig.h:1326
rig_power2mW
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:4233
rig_has_set_parm
setting_t rig_has_set_parm(RIG *rig, setting_t parm)
check settable ability of parameter settings
Definition: settings.c:420
RIG_MTYPE_SAT
@ RIG_MTYPE_SAT
Definition: rig.h:1414
rig_strrmodes
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:416
channel::tx_width
pbwidth_t tx_width
Definition: rig.h:1328
rig_parse_mtype
chan_type_t rig_parse_mtype(const char *s)
Convert alpha string to enum RIG_MTYPE_...
Definition: misc.c:1115
RIG_SIGNAL_UNSET
@ RIG_SIGNAL_UNSET
Definition: rig.h:253
RIG_SIGNAL_ON
@ RIG_SIGNAL_ON
Definition: rig.h:254
rig_open
int rig_open(RIG *rig)
open the communication to the rig
Definition: rig.c:553
RIG_SIGNAL_OFF
@ RIG_SIGNAL_OFF
Definition: rig.h:255
RIG_POWER_STANDBY
@ RIG_POWER_STANDBY
Definition: rig.h:567
rig_state::transceive
int transceive
Definition: rig.h:2016
rig_confparam_lookup
const struct confparams * rig_confparam_lookup(RIG *rig, const char *name)
lookup a confparam struct
Definition: conf.c:943
rig_set_xit
int rig_set_xit(RIG *rig, vfo_t vfo, shortfreq_t xit)
set the XIT
Definition: rig.c:3807
rig_get_ptt
int rig_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt)
get the status of the PTT
Definition: rig.c:2282
RIG_OP_RIGHT
@ RIG_OP_RIGHT
Definition: rig.h:612
RIG_LEVEL_40
@ RIG_LEVEL_40
Definition: rig.h:884
rig_state::poll_interval
int poll_interval
Definition: rig.h:2017
rig_set_conf
int rig_set_conf(RIG *rig, token_t token, const char *val)
set a radio configuration parameter
Definition: conf.c:1030
rig_callbacks::ptt_event
ptt_cb_t ptt_event
Definition: rig.h:2076
RIG_PORT_GPION
@ RIG_PORT_GPION
Definition: rig.h:223
RIG_PTT_SERIAL_RTS
@ RIG_PTT_SERIAL_RTS
Definition: rig.h:552
RIG_SCAN_NONE
@ RIG_SCAN_NONE
Definition: rig.h:627
rig_state::parm_gran
gran_t parm_gran[64]
Definition: rig.h:2002
confparams::name
const char * name
Definition: rig.h:683
RIG_LEVEL_APF
@ RIG_LEVEL_APF
Definition: rig.h:848
RIG_ANN_CW
@ RIG_ANN_CW
Definition: rig.h:711
rig_state::vfo_opt
int vfo_opt
Definition: rig.h:2030
rig_parse_vfo
vfo_t rig_parse_vfo(const char *s)
Convert alpha string to enum RIG_VFO_...
Definition: misc.c:480
rig_set_debug_file
FILE * rig_set_debug_file(FILE *stream)
change stderr to some different output
Definition: debug.c:295
rig_callbacks::pltune
pltune_cb_t pltune
Definition: rig.h:2080
dcd_t
enum dcd_e dcd_t
DCD status.
RIG_DEBUG_TRACE
@ RIG_DEBUG_TRACE
Definition: rig.h:163
channel_cap::width
unsigned width
Definition: rig.h:1367
RIG_DEBUG_VERBOSE
@ RIG_DEBUG_VERBOSE
Definition: rig.h:162
RIG_LEVEL_60
@ RIG_LEVEL_60
Definition: rig.h:904
rig_state::rigport
hamlib_port_t rigport
Definition: rig.h:1967
rig_state::has_get_level
setting_t has_get_level
Definition: rig.h:1996
cal_table
Calibration table struct.
Definition: rig.h:1483
rig_get_xit
int rig_get_xit(RIG *rig, vfo_t vfo, shortfreq_t *xit)
get the current XIT offset
Definition: rig.c:3875
rig_state::itu_region
int itu_region
Definition: rig.h:1973
channel::ant
ant_t ant
Definition: rig.h:1321
RIG_ANN_JAP
@ RIG_ANN_JAP
Definition: rig.h:713
rig_copyright
const char * rig_copyright()
get the Hamlib copyright
Definition: rig.c:5123
channel::vfo
vfo_t vfo
Definition: rig.h:1320
rig_init
RIG * rig_init(rig_model_t rig_model)
allocate a new RIG handle
Definition: rig.c:316
channel::ctcss_sql
tone_t ctcss_sql
Definition: rig.h:1341
rig_set_chan_all
int rig_set_chan_all(RIG *rig, const channel_t chans[])
set all channel data
Definition: mem.c:1165
RIG_SCAN_PLT
@ RIG_SCAN_PLT
Definition: rig.h:634
rig_state::pttport
hamlib_port_t pttport
Definition: rig.h:1968
freq_range_list::low_power
int low_power
Definition: rig.h:1205
channel_cap::bank_num
unsigned bank_num
Definition: rig.h:1362
RIG_PTT_PARALLEL
@ RIG_PTT_PARALLEL
Definition: rig.h:553
RIG_CONF_BINARY
@ RIG_CONF_BINARY
Definition: rig.h:670
rig_debug
void rig_debug(enum rig_debug_level_e debug_level, const char *fmt,...)
Default is debugging messages are done through stderr.
Definition: debug.c:171
RIG_FLAG_SCANNER
@ RIG_FLAG_SCANNER
Definition: rig.h:265
rig_set_ext_func
int rig_set_ext_func(RIG *rig, vfo_t vfo, token_t token, int status)
set a radio function extra parameter
Definition: settings.c:772
confparams::tooltip
const char * tooltip
Definition: rig.h:685
rig_set_rptr_shift
int rig_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift)
set the repeater shift
Definition: rig.c:2624
RIG_LEVEL_CWPITCH
@ RIG_LEVEL_CWPITCH
Definition: rig.h:852
RIG_LEVEL_NOTCHF_RAW
@ RIG_LEVEL_NOTCHF_RAW
Definition: rig.h:880
RIG_POWER_UNKNOWN
@ RIG_POWER_UNKNOWN
Definition: rig.h:569
RIG_FLAG_COMPUTER
@ RIG_FLAG_COMPUTER
Definition: rig.h:268
rig_state
Rig state containing live data and customized fields.
Definition: rig.h:1963
RIG_SCAN_SLCT
@ RIG_SCAN_SLCT
Definition: rig.h:629
rig_set_ptt_callback
int rig_set_ptt_callback(RIG *rig, ptt_cb_t cb, rig_ptr_t arg)
set the callback for ptt events
Definition: event.c:616
rig_get_ant
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:4156
rig_state::hold_decode
int hold_decode
Definition: rig.h:2009
hl_usleep
int hl_usleep(rig_useconds_t usec)
provide sleep and usleep replacements
Definition: sleep.c:53
rig_callbacks::pltune_arg
rig_ptr_t pltune_arg
Definition: rig.h:2081
RIG_FLAG_TRUNKING
@ RIG_FLAG_TRUNKING
Definition: rig.h:269
s_rig::caps
struct rig_caps * caps
Definition: rig.h:2096
rig_send_voice_mem
int rig_send_voice_mem(RIG *rig, vfo_t vfo, int ch)
send voice memory content
Definition: rig.c:4956
rig_port_t
enum rig_port_e rig_port_t
Port type.
channel_cap::channel_desc
unsigned channel_desc
Definition: rig.h:1388
rig_state::has_set_level
setting_t has_set_level
Definition: rig.h:1997
freq_range_list::ant
ant_t ant
Definition: rig.h:1208
RIG_PARM_BAT
@ RIG_PARM_BAT
Definition: rig.h:935
rig_ext_lookup_tok
const struct confparams * rig_ext_lookup_tok(RIG *rig, token_t token)
lookup ext token, return pointer to confparams struct.
Definition: ext.c:200
rig_state::twiddle_time
time_t twiddle_time
Definition: rig.h:2027
RIG_LEVEL_VOXGAIN
@ RIG_LEVEL_VOXGAIN
Definition: rig.h:862
tuning_step_list
Tuning step definition.
Definition: rig.h:1233
RIG_LEVEL_PBT_OUT
@ RIG_LEVEL_PBT_OUT
Definition: rig.h:851
rig_get_twiddle
int rig_get_twiddle(RIG *rig, int *seconds)
get the twiddle timeout value (secs)
Definition: rig.c:1179
channel_cap::funcs
setting_t funcs
Definition: rig.h:1380
RIG_DCD_GPION
@ RIG_DCD_GPION
Definition: rig.h:528
channel::levels
value_t levels[64]
Definition: rig.h:1339
rig_get_mode
int rig_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width)
get the mode of the target VFO
Definition: rig.c:1664
RIG_LEVEL_COMP
@ RIG_LEVEL_COMP
Definition: rig.h:857
rig_vfo_op
int rig_vfo_op(RIG *rig, vfo_t vfo, vfo_op_t op)
perform Memory/VFO operations
Definition: rig.c:4583
RIG_BUSERROR
@ RIG_BUSERROR
Definition: rig.h:137
RIG_OP_XCHG
@ RIG_OP_XCHG
Definition: rig.h:603
RIG_SCAN_PRIO
@ RIG_SCAN_PRIO
Definition: rig.h:630
channel::xit
shortfreq_t xit
Definition: rig.h:1337
rig_strscan
const char * rig_strscan(scan_t rscan)
Convert enum RIG_SCAN_... to alpha string.
Definition: misc.c:1018
RIG_DCD_OFF
@ RIG_DCD_OFF
Definition: rig.h:509
RIG_LEVEL_ID_METER
@ RIG_LEVEL_ID_METER
Definition: rig.h:878
rig_get_dcs_code
int rig_get_dcs_code(RIG *rig, vfo_t vfo, tone_t *code)
get the current encoding DCS code
Definition: tones.c:292
meter_level_e
meter_level_e
Level display meters.
Definition: rig.h:800
RIG_DCD_SERIAL_CAR
@ RIG_DCD_SERIAL_CAR
Definition: rig.h:524
RIG_SPLIT_ON
@ RIG_SPLIT_ON
Definition: rig.h:328
rig_set_dcs_sql
int rig_set_dcs_sql(RIG *rig, vfo_t vfo, tone_t code)
set the current DCS code
Definition: tones.c:491
RIG_OP_LEFT
@ RIG_OP_LEFT
Definition: rig.h:611
value_t::i
signed int i
Definition: rig.h:818
rig_get_rptr_offs
int rig_get_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t *rptr_offs)
get the current repeater offset
Definition: rig.c:2828
RIG_ANN_OFF
@ RIG_ANN_OFF
Definition: rig.h:708
RIG_PORT_USB
@ RIG_PORT_USB
Definition: rig.h:219
RIG_LEVEL_SLOPE_LOW
@ RIG_LEVEL_SLOPE_LOW
Definition: rig.h:864
rig_cache
Rig cache data.
Definition: rig.h:1919
channel_cap::dcs_sql
unsigned dcs_sql
Definition: rig.h:1385
RIG_LEVEL_62
@ RIG_LEVEL_62
Definition: rig.h:906
freq_range_list::startf
freq_t startf
Definition: rig.h:1202
rig_set_rit
int rig_set_rit(RIG *rig, vfo_t vfo, shortfreq_t rit)
set the RIT
Definition: rig.c:3671
RIG_OP_NONE
@ RIG_OP_NONE
Definition: rig.h:601
RIG_LEVEL_COMP_METER
@ RIG_LEVEL_COMP_METER
Definition: rig.h:876
RIG_FLAG_TNC
@ RIG_FLAG_TNC
Definition: rig.h:271
RIG_PORT_PARALLEL
@ RIG_PORT_PARALLEL
Definition: rig.h:218
RIG_OP_TO_VFO
@ RIG_OP_TO_VFO
Definition: rig.h:605
RIG_PTT_ON
@ RIG_PTT_ON
Definition: rig.h:537
RIG_SCAN_DELTA
@ RIG_SCAN_DELTA
Definition: rig.h:632
rig_set_debug
void rig_set_debug(enum rig_debug_level_e debug_level)
Change the current debug level.
Definition: debug.c:123
RIG_PARM_BEEP
@ RIG_PARM_BEEP
Definition: rig.h:933
vfo_op_t
vfo_op_t
VFO operation.
Definition: rig.h:600
ant_t
unsigned int ant_t
Antenna typedef.
Definition: rig.h:763
RIG_RESET_NONE
@ RIG_RESET_NONE
Definition: rig.h:577
rig_set_mode_callback
int rig_set_mode_callback(RIG *rig, mode_cb_t cb, rig_ptr_t arg)
set the callback for mode events
Definition: event.c:556
cal_table_float::val
float val
Definition: rig.h:1517
rig_get_range
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:5023
dcd_e
dcd_e
DCD status.
Definition: rig.h:508
rig_callbacks::vfo_event
vfo_cb_t vfo_event
Definition: rig.h:2074
RIG_PORT_UDP_NETWORK
@ RIG_PORT_UDP_NETWORK
Definition: rig.h:220
rig_set_split_freq_mode
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:3359
rig_get_dcs_sql
int rig_get_dcs_sql(RIG *rig, vfo_t vfo, tone_t *code)
get the current DCS code
Definition: tones.c:553
RIG_POWER_OFF
@ RIG_POWER_OFF
Definition: rig.h:565
RIG_ENOMEM
@ RIG_ENOMEM
Definition: rig.h:127
RIG_LEVEL_57
@ RIG_LEVEL_57
Definition: rig.h:901
RIG_MTYPE_BAND
@ RIG_MTYPE_BAND
Definition: rig.h:1415
rig_level_e
rig_level_e
Rig Level Settings.
Definition: rig.h:839
RIG_STATUS_BUGGY
@ RIG_STATUS_BUGGY
Definition: rig.h:301
RIG_PORT_NONE
@ RIG_PORT_NONE
Definition: rig.h:210
channel::freq
freq_t freq
Definition: rig.h:1322
RIG_EIO
@ RIG_EIO
Definition: rig.h:130
chan_list::endc
int endc
Definition: rig.h:1435
rig_state::str_cal
cal_table_t str_cal
Definition: rig.h:1981
rig_has_get_parm
setting_t rig_has_get_parm(RIG *rig, setting_t parm)
check retrieval ability of parameter settings
Definition: settings.c:391
RIG_PARITY_SPACE
@ RIG_PARITY_SPACE
Definition: rig.h:235
rig_state::twiddle_timeout
int twiddle_timeout
Definition: rig.h:2028
s_rig::state
struct rig_state state
Definition: rig.h:2097
RIG_MTYPE_CALL
@ RIG_MTYPE_CALL
Definition: rig.h:1412
cal_table_float::size
int size
Definition: rig.h:1514
RIG_SPLIT_OFF
@ RIG_SPLIT_OFF
Definition: rig.h:327
freq_range_list::high_power
int high_power
Definition: rig.h:1206
RIG_PARM_SCREENSAVER
@ RIG_PARM_SCREENSAVER
Definition: rig.h:937
confparams::min
float min
Definition: rig.h:690
RIG_LEVEL_PBT_IN
@ RIG_LEVEL_PBT_IN
Definition: rig.h:850
rig_get_conf
int rig_get_conf(RIG *rig, token_t token, char *val)
get the value of a configuration parameter
Definition: conf.c:1083
rig_get_mem
int rig_get_mem(RIG *rig, vfo_t vfo, int *ch)
get the current memory channel number
Definition: mem.c:135
channel::tuning_step
shortfreq_t tuning_step
Definition: rig.h:1335
RIG_FLAG_TRANSMITTER
@ RIG_FLAG_TRANSMITTER
Definition: rig.h:264
RIG_ECONF
@ RIG_ECONF
Definition: rig.h:126
rig_set_parm
int rig_set_parm(RIG *rig, setting_t parm, value_t val)
set a radio parameter
Definition: settings.c:234
rig_parse_vfo_op
vfo_op_t rig_parse_vfo_op(const char *s)
Convert alpha string to enum RIG_OP_...
Definition: misc.c:923
ann_t
ann_t
Announce.
Definition: rig.h:706
agc_level_e
agc_level_e
AGC delay settings.
Definition: rig.h:783
cal_table_float::raw
int raw
Definition: rig.h:1516
rig_strparm
const char * rig_strparm(setting_t parm)
Convert enum RIG_PARM_... to alpha string.
Definition: misc.c:870
rig_strvfo
const char * rig_strvfo(vfo_t vfo)
Convert enum RIG_VFO_... to alpha string.
Definition: misc.c:505
freq_range_list::endf
freq_t endf
Definition: rig.h:1203
rig_set_rptr_offs
int rig_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t rptr_offs)
set the repeater offset
Definition: rig.c:2760
rig_get_level
int rig_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
get the value of a level
Definition: settings.c:147
serial_parity_e
serial_parity_e
Serial parity.
Definition: rig.h:230
rig_get_channel
int rig_get_channel(RIG *rig, channel_t *chan, int read_only)
get channel data
Definition: mem.c:832
rig_close
int rig_close(RIG *rig)
close the communication to the rig
Definition: rig.c:955
confparams::token
token_t token
Definition: rig.h:682
RIG_LEVEL_41
@ RIG_LEVEL_41
Definition: rig.h:885
rig_set_level
int rig_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
set a radio level setting
Definition: settings.c:77
RIG_LEVEL_49
@ RIG_LEVEL_49
Definition: rig.h:893
channel::width
pbwidth_t width
Definition: rig.h:1324
channel_cap::tuning_step
unsigned tuning_step
Definition: rig.h:1377
chan_list::type
chan_type_t type
Definition: rig.h:1436
split_t
split_t
Split mode.
Definition: rig.h:326
RIG_POWER_OPERATE
@ RIG_POWER_OPERATE
Definition: rig.h:568
rig_ext_level_foreach
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:63
rig_set_ctcss_tone
int rig_set_ctcss_tone(RIG *rig, vfo_t vfo, tone_t tone)
set CTCSS sub-tone frequency
Definition: tones.c:100
RIG_SCAN_MEM
@ RIG_SCAN_MEM
Definition: rig.h:628
rig_callbacks
Callback functions and args for rig event.
Definition: rig.h:2069
rig_set_freq
int rig_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
set the frequency of the target VFO
Definition: rig.c:1254
RIG_FLAG_RECEIVER
@ RIG_FLAG_RECEIVER
Definition: rig.h:263
rig_get_ctcss_sql
int rig_get_ctcss_sql(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS squelch
Definition: tones.c:429
RIG_DEBUG_WARN
@ RIG_DEBUG_WARN
Definition: rig.h:161
rig_has_get_func
setting_t rig_has_get_func(RIG *rig, setting_t func)
check ability of radio functions
Definition: settings.c:449
channel_cap::levels
setting_t levels
Definition: rig.h:1381
reset_t
reset_t
Reset operation.
Definition: rig.h:576
rig_strlevel
const char * rig_strlevel(setting_t level)
Convert enum RIG_LEVEL_... to alpha string.
Definition: misc.c:768
RIG_PARITY_MARK
@ RIG_PARITY_MARK
Definition: rig.h:234
vfo_t
unsigned int vfo_t
VFO definition.
Definition: rig.h:397
rig_set_ext_parm
int rig_set_ext_parm(RIG *rig, token_t token, value_t val)
set a radio parm extra parameter
Definition: settings.c:903
RIG_LEVEL_58
@ RIG_LEVEL_58
Definition: rig.h:902
channel::channel_num
int channel_num
Definition: rig.h:1318
rig_get_freq
int rig_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
get the frequency of the target VFO
Definition: rig.c:1377
channel_cap::xit
unsigned xit
Definition: rig.h:1379
RIG_LEVEL_AGC
@ RIG_LEVEL_AGC
Definition: rig.h:858
RIG_FLAG_APRS
@ RIG_FLAG_APRS
Definition: rig.h:270
rig_set_channel
int rig_set_channel(RIG *rig, const channel_t *chan)
set channel data
Definition: mem.c:688
rig_ext_token_lookup
token_t rig_ext_token_lookup(RIG *rig, const char *name)
Simple lookup returning token id assicated with name.
Definition: ext.c:236
RIG_LEVEL_63
@ RIG_LEVEL_63
Definition: rig.h:907
rig_has_get_level
setting_t rig_has_get_level(RIG *rig, setting_t level)
check retrieval ability of level settings
Definition: settings.c:302
hamlib_copyright2
const char * hamlib_copyright2
Hamlib copyright notice.
Definition: rig.c:94
RIG_LEVEL_SWR
@ RIG_LEVEL_SWR
Definition: rig.h:871
RIG_LEVEL_STRENGTH
@ RIG_LEVEL_STRENGTH
Definition: rig.h:873
RIG_OK
@ RIG_OK
Definition: rig.h:124
rig_parse_parm
setting_t rig_parse_parm(const char *s)
Convert alpha string to RIG_PARM_...
Definition: misc.c:845
RIG_RPT_SHIFT_MINUS
@ RIG_RPT_SHIFT_MINUS
Definition: rig.h:318
RIG_LEVEL_48
@ RIG_LEVEL_48
Definition: rig.h:892
rig_parse_scan
scan_t rig_parse_scan(const char *s)
Convert alpha string to enum RIG_SCAN_...
Definition: misc.c:993
rig_ext_parm_foreach
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:108
rig_set_split_freq
int rig_set_split_freq(RIG *rig, vfo_t vfo, freq_t tx_freq)
set the split frequencies
Definition: rig.c:2896
rig_set_trn
int rig_set_trn(RIG *rig, int trn)
control the transceive mode
Definition: event.c:707
RIG_ERJCTED
@ RIG_ERJCTED
Definition: rig.h:133
rig_set_mem
int rig_set_mem(RIG *rig, vfo_t vfo, int ch)
set the current memory channel number
Definition: mem.c:72
rig_passband_wide
pbwidth_t rig_passband_wide(RIG *rig, rmode_t mode)
get the wide passband of a mode
Definition: rig.c:1862
channel_cap::rit
unsigned rit
Definition: rig.h:1378
token_t
long token_t
configuration token
Definition: rig.h:642
rig_parse_level
setting_t rig_parse_level(const char *s)
Convert alpha string to enum RIG_LEVEL_...
Definition: misc.c:713
RIG_LEVEL_IF
@ RIG_LEVEL_IF
Definition: rig.h:847
RIG_DCD_GPIO
@ RIG_DCD_GPIO
Definition: rig.h:527
RIG_LEVEL_PREAMP
@ RIG_LEVEL_PREAMP
Definition: rig.h:841
RIG_PORT_ULTRA
@ RIG_PORT_ULTRA
Definition: rig.h:216
rig_state::obj
rig_ptr_t obj
Definition: rig.h:2014
rig_set_bank
int rig_set_bank(RIG *rig, vfo_t vfo, int bank)
set the current memory bank
Definition: mem.c:198
tuning_step_list::modes
rmode_t modes
Definition: rig.h:1234
rig_set_powerstat
int rig_set_powerstat(RIG *rig, powerstat_t status)
turn on/off the radio
Definition: rig.c:4388
freq_range_list
Frequency range.
Definition: rig.h:1201
RIG_PTT_RIG
@ RIG_PTT_RIG
Definition: rig.h:550
RIG_PARITY_EVEN
@ RIG_PARITY_EVEN
Definition: rig.h:233
rig_passband_normal
pbwidth_t rig_passband_normal(RIG *rig, rmode_t mode)
get the normal passband of a mode
Definition: rig.c:1770
rig_set_mem_all_cb
int rig_set_mem_all_cb(RIG *rig, 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:1320
rig_lookup_mem_caps
const chan_t * rig_lookup_mem_caps(RIG *rig, int ch)
lookup the memory type and capabilities
Definition: mem.c:1577
rig_get_chan_all_cb
int rig_get_chan_all_cb(RIG *rig, chan_cb_t chan_cb, rig_ptr_t arg)
get all channel data, by callback
Definition: mem.c:1125
RIG_ETIMEOUT
@ RIG_ETIMEOUT
Definition: rig.h:129
setting_t
uint64_t setting_t
Setting.
Definition: rig.h:954
rig_state::lo_freq
freq_t lo_freq
Definition: rig.h:2026
channel::rit
shortfreq_t rit
Definition: rig.h:1336
confparams::combostr
const char * combostr[RIG_COMBO_MAX]
Definition: rig.h:695
RIG_LEVEL_BKIN_DLYMS
@ RIG_LEVEL_BKIN_DLYMS
Definition: rig.h:866
rig_debug_level_e
rig_debug_level_e
Hamlib debug levels.
Definition: rig.h:157
rig_token_foreach
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:889
confparams::type
enum rig_conf_e type
Definition: rig.h:687
RIG_LEVEL_56
@ RIG_LEVEL_56
Definition: rig.h:900
rig_state::tx_range_list
freq_range_t tx_range_list[FRQRANGESIZ]
Definition: rig.h:1975
channel::tx_mode
rmode_t tx_mode
Definition: rig.h:1327
RIG_OP_BAND_UP
@ RIG_OP_BAND_UP
Definition: rig.h:609
RIG_LEVEL_BKINDL
@ RIG_LEVEL_BKINDL
Definition: rig.h:859
serial_control_state_e
serial_control_state_e
Serial control state.
Definition: rig.h:252
RIG_SCAN_STOP
@ RIG_SCAN_STOP
Definition: rig.h:635
RIG_CONF_CHECKBUTTON
@ RIG_CONF_CHECKBUTTON
Definition: rig.h:668
s_rig::callbacks
struct rig_callbacks callbacks
Definition: rig.h:2098
RIG_LEVEL_RF
@ RIG_LEVEL_RF
Definition: rig.h:845
rig_probe_all
int rig_probe_all(hamlib_port_t *port, rig_probe_func_t cfunc, rig_ptr_t data)
try to guess rigs
Definition: rig.c:4524
RIG_LEVEL_AF
@ RIG_LEVEL_AF
Definition: rig.h:844
channel_cap::split
unsigned split
Definition: rig.h:1373
rig_get_parm
int rig_get_parm(RIG *rig, setting_t parm, value_t *val)
get the value of a parameter
Definition: settings.c:268
rig_get_chan_all
int rig_get_chan_all(RIG *rig, channel_t chans[])
get all channel data
Definition: mem.c:1207
RIG_LEVEL_53
@ RIG_LEVEL_53
Definition: rig.h:897
rig_state::attenuator
int attenuator[MAXDBLSTSIZ]
Definition: rig.h:1992
RIG_LEVEL_47
@ RIG_LEVEL_47
Definition: rig.h:891
RIG_PARM_APO
@ RIG_PARM_APO
Definition: rig.h:931
confparams::max
float max
Definition: rig.h:691
RIG_SETTING_MAX
#define RIG_SETTING_MAX
Maximum # of rig settings.
Definition: rig.h:960
RIG_EINVAL
@ RIG_EINVAL
Definition: rig.h:125
rig_set_debug_callback
vprintf_cb_t rig_set_debug_callback(vprintf_cb_t cb, rig_ptr_t arg)
set callback to handle debug messages
Definition: debug.c:280
RIG_LEVEL_50
@ RIG_LEVEL_50
Definition: rig.h:894
RIG_OP_TUNE
@ RIG_OP_TUNE
Definition: rig.h:613
channel::rptr_offs
shortfreq_t rptr_offs
Definition: rig.h:1334
RIG_PORT_DTMF
@ RIG_PORT_DTMF
Definition: rig.h:215
rig_get_split_freq
int rig_get_split_freq(RIG *rig, vfo_t vfo, freq_t *tx_freq)
get the current split frequencies
Definition: rig.c:3004
RIG_PTT_RIG_MICDATA
@ RIG_PTT_RIG_MICDATA
Definition: rig.h:554
rig_state::tx_vfo
vfo_t tx_vfo
Definition: rig.h:2021
channel_cap::flags
unsigned flags
Definition: rig.h:1387
RIG_PORT_GPIO
@ RIG_PORT_GPIO
Definition: rig.h:222
rig_set_freq_callback
int rig_set_freq_callback(RIG *rig, freq_cb_t cb, rig_ptr_t arg)
set the callback for freq events
Definition: event.c:526
channel::dcs_code
tone_t dcs_code
Definition: rig.h:1342
channel_cap::tx_mode
unsigned tx_mode
Definition: rig.h:1370
RIG_OP_FROM_VFO
@ RIG_OP_FROM_VFO
Definition: rig.h:604
rig_get_vfo
int rig_get_vfo(RIG *rig, vfo_t *vfo)
get the current VFO
Definition: rig.c:2011
RIG_LEVEL_61
@ RIG_LEVEL_61
Definition: rig.h:905
rig_set_vfo_callback
int rig_set_vfo_callback(RIG *rig, vfo_cb_t cb, rig_ptr_t arg)
set the callback for vfo events
Definition: event.c:586
channel
Channel structure.
Definition: rig.h:1317
RIG_DCD_PARALLEL
@ RIG_DCD_PARALLEL
Definition: rig.h:525
rig_set_ant
int rig_set_ant(RIG *rig, vfo_t vfo, ant_t ant, value_t option)
set the antenna
Definition: rig.c:4084
confparams::c
struct confparams::@12::@14 c
RIG_PORT_CM108
@ RIG_PORT_CM108
Definition: rig.h:221
rig_callbacks::dcd_event
dcd_cb_t dcd_event
Definition: rig.h:2078
rig_set_split_vfo
int rig_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo)
set the split mode
Definition: rig.c:3467
gran
level/parm granularity definition
Definition: rig.h:1468
RIG_LEVEL_51
@ RIG_LEVEL_51
Definition: rig.h:895
rig_callbacks::vfo_arg
rig_ptr_t vfo_arg
Definition: rig.h:2075
RIG_LEVEL_ALC
@ RIG_LEVEL_ALC
Definition: rig.h:872
rig_state::filters
struct filter_list filters[FLTLSTSIZ]
Definition: rig.h:1979
rig_set_ts
int rig_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts)
set the Tuning Step
Definition: rig.c:3943
RIG_OP_DOWN
@ RIG_OP_DOWN
Definition: rig.h:608
rig_state::current_mode
rmode_t current_mode
Definition: rig.h:2019
ext_list::token
token_t token
Definition: rig.h:1301
rig_state::vfo_comp
double vfo_comp
Definition: rig.h:1971
rig_set_dcd_callback
int rig_set_dcd_callback(RIG *rig, dcd_cb_t cb, rig_ptr_t arg)
set the callback for dcd events
Definition: event.c:646
rig_has_set_level
setting_t rig_has_set_level(RIG *rig, setting_t level)
check settable ability of level settings
Definition: settings.c:361
rig_strfunc
const char * rig_strfunc(setting_t func)
Convert enum RIG_FUNC_... to alpha string.
Definition: misc.c:617
freq_range_list::modes
rmode_t modes
Definition: rig.h:1204
RIG_DCD_ON
@ RIG_DCD_ON
Definition: rig.h:510
RIG_SCAN_VFO
@ RIG_SCAN_VFO
Definition: rig.h:633
rig_state::max_xit
shortfreq_t max_xit
Definition: rig.h:1986
rig_idx2setting
uint64_t rig_idx2setting(int i)
Definition: misc.c:580
port_t
hamlib_port_t port_t
Rig data structure.
Definition: rig.h:1898
channel_cap::tx_vfo
unsigned tx_vfo
Definition: rig.h:1374
value_t::cs
const char * cs
Definition: rig.h:821
RIG_DEBUG_ERR
@ RIG_DEBUG_ERR
Definition: rig.h:160
RIG_STATUS_BETA
@ RIG_STATUS_BETA
Definition: rig.h:299
rig_need_debug
int rig_need_debug(enum rig_debug_level_e debug_level)
Useful for dump_hex, etc.
Definition: debug.c:133
RIG_PARITY_NONE
@ RIG_PARITY_NONE
Definition: rig.h:231
rig_state::has_set_func
setting_t has_set_func
Definition: rig.h:1995
rig_probe
rig_model_t rig_probe(hamlib_port_t *port)
try to guess a rig
Definition: rig.c:4494
tone_t
unsigned int tone_t
CTCSS and DCS type definition.
Definition: rig.h:203
rmode_t
uint64_t rmode_t
Radio mode.
Definition: rig.h:1109
rig_parm_e
rig_parm_e
Rig Parameters.
Definition: rig.h:928
rig_state::dcdport
hamlib_port_t dcdport
Definition: rig.h:1969
gran::step
value_t step
Definition: rig.h:1471
rig_setting2idx
int rig_setting2idx(setting_t s)
basically convert setting_t expressed 2^n to n
Definition: settings.c:962
RIG_MTYPE_PRIO
@ RIG_MTYPE_PRIO
Definition: rig.h:1416
RIG_LEVEL_RFPOWER_METER
@ RIG_LEVEL_RFPOWER_METER
Definition: rig.h:875
rig_version
const char * rig_version()
get the Hamlib version
Definition: rig.c:5113
RIG_PTT_GPION
@ RIG_PTT_GPION
Definition: rig.h:557
rig_send_dtmf
int rig_send_dtmf(RIG *rig, vfo_t vfo, const char *digits)
send DTMF digits
Definition: rig.c:4751
RIG_PORT_NETWORK
@ RIG_PORT_NETWORK
Definition: rig.h:212
rig_get_ctcss_tone
int rig_get_ctcss_tone(RIG *rig, vfo_t vfo, tone_t *tone)
get the current CTCSS sub-tone frequency
Definition: tones.c:167
RIG_OP_CPY
@ RIG_OP_CPY
Definition: rig.h:602
RIG_PTT_SERIAL_DTR
@ RIG_PTT_SERIAL_DTR
Definition: rig.h:551
rig_get_dcd
int rig_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd)
get the status of the DCD
Definition: rig.c:2519
confparams::step
float step
Definition: rig.h:692
RIG_HANDSHAKE_NONE
@ RIG_HANDSHAKE_NONE
Definition: rig.h:243
confparams::label
const char * label
Definition: rig.h:684
RIG_EINTERNAL
@ RIG_EINTERNAL
Definition: rig.h:131

Generated by doxygen 1.8.18

Hamlib documentation for version 4.0~git -- Tue Jul 28 2020 00:00:00
Project page: http://www.hamlib.org