00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
#ifndef _RIG_H
00024
#define _RIG_H 1
00025
00026
#include <hamlib/riglist.h>
00027
#include <sys/time.h>
00028
00029
#if defined(__CYGWIN__) || defined(_WIN32)
00030
#include <windows.h>
00031
#endif
00032
00042
00043
00044
00045
#undef __BEGIN_DECLS
00046
#undef __END_DECLS
00047
#ifdef __cplusplus
00048
# define __BEGIN_DECLS extern "C" {
00049
# define __END_DECLS }
00050
#else
00051
# define __BEGIN_DECLS
00052
# define __END_DECLS
00053
#endif
00054
00055
00056
00057
00058
#undef HAMLIB_PARAMS
00059
#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(__CYGWIN__) || defined(_WIN32) || defined(__cplusplus)
00060
# define HAMLIB_PARAMS(protos) protos
00061
# define rig_ptr_t void*
00062
#else
00063
# define HAMLIB_PARAMS(protos) ()
00064
# define rig_ptr_t char*
00065
#endif
00066
00067
#include <hamlib/rig_dll.h>
00068
00069
00070 __BEGIN_DECLS
00071
00072 extern HAMLIB_EXPORT_VAR(
const char) hamlib_version[];
00073 extern HAMLIB_EXPORT_VAR(const
char) hamlib_copyright[];
00074
00079 enum rig_errcode_e {
00080 RIG_OK=0,
00081 RIG_EINVAL,
00082 RIG_ECONF,
00083 RIG_ENOMEM,
00084 RIG_ENIMPL,
00085 RIG_ETIMEOUT,
00086 RIG_EIO,
00087 RIG_EINTERNAL,
00088 RIG_EPROTO,
00089 RIG_ERJCTED,
00090 RIG_ETRUNC,
00091 RIG_ENAVAIL,
00092 RIG_ENTARGET,
00093 RIG_BUSERROR,
00094 RIG_BUSBUSY,
00095 RIG_EARG,
00096 RIG_EVFO,
00097 RIG_EDOM
00098 };
00099
00107 enum rig_debug_level_e {
00108 RIG_DEBUG_NONE = 0,
00109 RIG_DEBUG_BUG,
00110 RIG_DEBUG_ERR,
00111 RIG_DEBUG_WARN,
00112 RIG_DEBUG_VERBOSE,
00113 RIG_DEBUG_TRACE
00114 };
00115
00116
00117
00118
00119
00120
struct rig;
00121
struct rig_state;
00122
00126 typedef struct rig RIG;
00127
00128
#define RIGNAMSIZ 30
00129
#define RIGVERSIZ 8
00130
#define FILPATHLEN 100
00131
#define FRQRANGESIZ 30
00132
#define MAXCHANDESC 30
00133
#define TSLSTSIZ 20
00134
#define FLTLSTSIZ 42
00135
#define MAXDBLSTSIZ 8
00136
#define CHANLSTSIZ 16
00137
#define MAX_CAL_LENGTH 32
00138
00139
00150 typedef unsigned int tone_t;
00151
00155 typedef enum rig_port_e {
00156
RIG_PORT_NONE = 0,
00157
RIG_PORT_SERIAL,
00158
RIG_PORT_NETWORK,
00159
RIG_PORT_DEVICE,
00160
RIG_PORT_PACKET,
00161
RIG_PORT_DTMF,
00162
RIG_PORT_ULTRA,
00163
RIG_PORT_RPC,
00164
RIG_PORT_PARALLEL
00165 }
rig_port_t;
00166
00170 enum serial_parity_e {
00171
RIG_PARITY_NONE = 0,
00172
RIG_PARITY_ODD,
00173
RIG_PARITY_EVEN
00174 };
00175
00179 enum serial_handshake_e {
00180
RIG_HANDSHAKE_NONE = 0,
00181
RIG_HANDSHAKE_XONXOFF,
00182
RIG_HANDSHAKE_HARDWARE
00183 };
00184
00185
00189 enum serial_control_state_e {
00190
RIG_SIGNAL_UNSET = 0,
00191
RIG_SIGNAL_ON,
00192
RIG_SIGNAL_OFF
00193 };
00194
00196 typedef enum {
00197
RIG_FLAG_RECEIVER = (1<<1),
00198
RIG_FLAG_TRANSMITTER = (1<<2),
00199
RIG_FLAG_SCANNER = (1<<3),
00201
RIG_FLAG_MOBILE = (1<<4),
00202
RIG_FLAG_HANDHELD = (1<<5),
00203
RIG_FLAG_COMPUTER = (1<<6),
00204
RIG_FLAG_TRUNKING = (1<<7),
00205
RIG_FLAG_APRS = (1<<8),
00206
RIG_FLAG_TNC = (1<<9),
00207
RIG_FLAG_DXCLUSTER = (1<<10),
00208
RIG_FLAG_TUNER = (1<<11)
00209 }
rig_type_t;
00210
00211
#define RIG_FLAG_TRANSCEIVER (RIG_FLAG_RECEIVER|RIG_FLAG_TRANSMITTER)
00212
#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)
00213
00214
#define RIG_TYPE_OTHER 0
00215
#define RIG_TYPE_TRANSCEIVER RIG_FLAG_TRANSCEIVER
00216
#define RIG_TYPE_HANDHELD (RIG_FLAG_TRANSCEIVER|RIG_FLAG_HANDHELD)
00217
#define RIG_TYPE_MOBILE (RIG_FLAG_TRANSCEIVER|RIG_FLAG_MOBILE)
00218
#define RIG_TYPE_RECEIVER RIG_FLAG_RECEIVER
00219
#define RIG_TYPE_PCRECEIVER (RIG_FLAG_COMPUTER|RIG_FLAG_RECEIVER)
00220
#define RIG_TYPE_SCANNER (RIG_FLAG_SCANNER|RIG_FLAG_RECEIVER)
00221
#define RIG_TYPE_TRUNKSCANNER (RIG_TYPE_SCANNER|RIG_FLAG_TRUNKING)
00222
#define RIG_TYPE_COMPUTER (RIG_FLAG_TRANSCEIVER|RIG_FLAG_COMPUTER)
00223
#define RIG_TYPE_TUNER RIG_FLAG_TUNER
00224
00225
00229 enum rig_status_e {
00230
RIG_STATUS_ALPHA = 0,
00231
RIG_STATUS_UNTESTED,
00232
RIG_STATUS_BETA,
00233
RIG_STATUS_STABLE,
00234
RIG_STATUS_BUGGY,
00235
RIG_STATUS_NEW
00236 };
00237
00241 typedef enum {
00242
RIG_RPT_SHIFT_NONE = 0,
00243
RIG_RPT_SHIFT_MINUS,
00244
RIG_RPT_SHIFT_PLUS
00245 }
rptr_shift_t;
00246
00250 typedef enum {
00251
RIG_SPLIT_OFF = 0,
00252
RIG_SPLIT_ON
00253 }
split_t;
00254
00259 typedef double freq_t;
00260
#define FREQFMT "lf"
00261
00266 typedef signed long shortfreq_t;
00267
00268
#define Hz(f) ((freq_t)(f))
00269
#define kHz(f) ((freq_t)((f)*(freq_t)1000))
00270
#define MHz(f) ((freq_t)((f)*(freq_t)1000000))
00271
#define GHz(f) ((freq_t)((f)*(freq_t)1000000000))
00272
00273
#define s_Hz(f) ((shortfreq_t)(f))
00274
#define s_kHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000))
00275
#define s_MHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000))
00276
#define s_GHz(f) ((shortfreq_t)((f)*(shortfreq_t)1000000000))
00277
00278
#define RIG_FREQ_NONE Hz(0)
00279
00280
00295 typedef int vfo_t;
00296
00298 #define RIG_VFO_NONE 0
00299
00300
#define RIG_VFO_TX_FLAG ((vfo_t)(1<<30))
00301
00303 #define RIG_VFO_CURR ((vfo_t)(1<<29))
00304
00306 #define RIG_VFO_MEM ((vfo_t)(1<<28))
00307
00309 #define RIG_VFO_VFO ((vfo_t)(1<<27))
00310
00311
#define RIG_VFO_TX_VFO(v) ((v)|RIG_VFO_TX_FLAG)
00312
00314 #define RIG_VFO_TX RIG_VFO_TX_VFO(RIG_VFO_CURR)
00315
00317 #define RIG_VFO_RX RIG_VFO_CURR
00318
00320 #define RIG_VFO_MAIN ((vfo_t)(1<<26))
00321
00322 #define RIG_VFO_SUB ((vfo_t)(1<<25))
00323
00324
#define RIG_VFO_N(n) ((vfo_t)(1<<(n)))
00325
00327 #define RIG_VFO_A RIG_VFO_N(0)
00328
00329 #define RIG_VFO_B RIG_VFO_N(1)
00330
00331 #define RIG_VFO_C RIG_VFO_N(2)
00332
00333
00334
#define RIG_TARGETABLE_NONE 0x00
00335
#define RIG_TARGETABLE_FREQ 0x01
00336
#define RIG_TARGETABLE_MODE 0x02
00337
#define RIG_TARGETABLE_ALL 0xffffffffU
00338
00339
00340
#define RIG_PASSBAND_NORMAL s_Hz(0)
00341
00345 typedef shortfreq_t pbwidth_t;
00346
00347
00351 typedef enum dcd_e {
00352
RIG_DCD_OFF = 0,
00353
RIG_DCD_ON
00354 }
dcd_t;
00355
00360 typedef enum {
00361
RIG_DCD_NONE = 0,
00362
RIG_DCD_RIG,
00363
RIG_DCD_SERIAL_DSR,
00364
RIG_DCD_SERIAL_CTS,
00365
RIG_DCD_SERIAL_CAR,
00366
RIG_DCD_PARALLEL
00367 }
dcd_type_t;
00368
00369
00373 typedef enum {
00374
RIG_PTT_OFF = 0,
00375
RIG_PTT_ON
00376 }
ptt_t;
00377
00382 typedef enum {
00383
RIG_PTT_NONE = 0,
00384
RIG_PTT_RIG,
00385
RIG_PTT_SERIAL_DTR,
00386
RIG_PTT_SERIAL_RTS,
00387
RIG_PTT_PARALLEL
00388 }
ptt_type_t;
00389
00393 typedef enum {
00394
RIG_POWER_OFF = 0,
00395
RIG_POWER_ON = (1<<0),
00396
RIG_POWER_STANDBY = (1<<1)
00397 }
powerstat_t;
00398
00402 typedef enum {
00403
RIG_RESET_NONE = 0,
00404
RIG_RESET_SOFT = (1<<0),
00405
RIG_RESET_VFO = (1<<1),
00406
RIG_RESET_MCALL = (1<<2),
00407
RIG_RESET_MASTER = (1<<3)
00408 }
reset_t;
00409
00410
00422 typedef enum {
00423 RIG_OP_NONE = 0,
00424
RIG_OP_CPY = (1<<0),
00425
RIG_OP_XCHG = (1<<1),
00426
RIG_OP_FROM_VFO = (1<<2),
00427
RIG_OP_TO_VFO = (1<<3),
00428
RIG_OP_MCL = (1<<4),
00429
RIG_OP_UP = (1<<5),
00430
RIG_OP_DOWN = (1<<6),
00431
RIG_OP_BAND_UP = (1<<7),
00432
RIG_OP_BAND_DOWN = (1<<8),
00433
RIG_OP_LEFT = (1<<9),
00434
RIG_OP_RIGHT = (1<<10),
00435
RIG_OP_TUNE = (1<<11),
00436
RIG_OP_TOGGLE = (1<<12)
00437 }
vfo_op_t;
00438
00439
00443 typedef enum {
00444 RIG_SCAN_NONE = 0,
00445
RIG_SCAN_STOP = RIG_SCAN_NONE,
00446
RIG_SCAN_MEM = (1<<0),
00447
RIG_SCAN_SLCT = (1<<1),
00448
RIG_SCAN_PRIO = (1<<2),
00449
RIG_SCAN_PROG = (1<<3),
00450
RIG_SCAN_DELTA = (1<<4),
00451
RIG_SCAN_VFO = (1<<5),
00452
RIG_SCAN_PLT = (1<<6)
00453 }
scan_t;
00454
00458 typedef long token_t;
00459
00460
#define RIG_CONF_END 0
00461
00462
00463
00464
00465 enum rig_conf_e {
00466
RIG_CONF_STRING,
00467
RIG_CONF_COMBO,
00468
RIG_CONF_NUMERIC,
00469
RIG_CONF_CHECKBUTTON
00470 };
00471
00472
#define RIG_COMBO_MAX 8
00473
00477 struct confparams {
00478 token_t token;
00479 const char *
name;
00480 const char *
label;
00481 const char *
tooltip;
00482 const char *
dflt;
00483 enum rig_conf_e type;
00484
union {
00485
struct {
00486 float min;
00487 float max;
00488 float step;
00489 } n;
00490
struct {
00491 const char *
combostr[RIG_COMBO_MAX];
00492 } c;
00493 }
u;
00494 };
00495
00499 typedef enum {
00500
RIG_ANN_NONE = 0,
00501
RIG_ANN_OFF =
RIG_ANN_NONE,
00502
RIG_ANN_FREQ = (1<<0),
00503
RIG_ANN_RXMODE = (1<<1),
00504
RIG_ANN_CW = (1<<2),
00505
RIG_ANN_ENG = (1<<3),
00506
RIG_ANN_JAP = (1<<4)
00507 }
ann_t;
00508
00509
00510
00511
typedef int ant_t;
00512
00513
#define RIG_ANT_NONE 0
00514
#define RIG_ANT_N(n) ((ant_t)1<<(n))
00515
#define RIG_ANT_1 RIG_ANT_N(0)
00516
#define RIG_ANT_2 RIG_ANT_N(1)
00517
#define RIG_ANT_3 RIG_ANT_N(2)
00518
00519
00520
00521 enum agc_level_e {
00522 RIG_AGC_OFF = 0,
00523 RIG_AGC_SUPERFAST,
00524 RIG_AGC_FAST,
00525 RIG_AGC_SLOW,
00526
RIG_AGC_USER
00527 };
00528
00532 enum meter_level_e {
00533 RIG_METER_NONE = 0,
00534 RIG_METER_SWR = (1<<0),
00535 RIG_METER_COMP = (1<<1),
00536 RIG_METER_ALC = (1<<2),
00537 RIG_METER_IC = (1<<3),
00538 RIG_METER_DB = (1<<4)
00539 };
00540
00545 typedef union {
00546 signed int i;
00547 float f;
00548 char *s;
00549 const char *cs;
00550 }
value_t;
00551
00553 enum rig_level_e {
00554
RIG_LEVEL_NONE = 0,
00555
RIG_LEVEL_PREAMP = (1<<0),
00556
RIG_LEVEL_ATT = (1<<1),
00557
RIG_LEVEL_VOX = (1<<2),
00558
RIG_LEVEL_AF = (1<<3),
00559
RIG_LEVEL_RF = (1<<4),
00560
RIG_LEVEL_SQL = (1<<5),
00561
RIG_LEVEL_IF = (1<<6),
00562
RIG_LEVEL_APF = (1<<7),
00563
RIG_LEVEL_NR = (1<<8),
00564
RIG_LEVEL_PBT_IN = (1<<9),
00565
RIG_LEVEL_PBT_OUT = (1<<10),
00566
RIG_LEVEL_CWPITCH = (1<<11),
00567
RIG_LEVEL_RFPOWER = (1<<12),
00568
RIG_LEVEL_MICGAIN = (1<<13),
00569
RIG_LEVEL_KEYSPD = (1<<14),
00570
RIG_LEVEL_NOTCHF = (1<<15),
00571
RIG_LEVEL_COMP = (1<<16),
00572
RIG_LEVEL_AGC = (1<<17),
00573
RIG_LEVEL_BKINDL = (1<<18),
00574
RIG_LEVEL_BALANCE = (1<<19),
00575
RIG_LEVEL_METER = (1<<20),
00577
RIG_LEVEL_VOXGAIN = (1<<21),
00578
RIG_LEVEL_VOXDELAY =
RIG_LEVEL_VOX,
00579
RIG_LEVEL_ANTIVOX = (1<<22),
00580
00581
00583
RIG_LEVEL_RAWSTR = (1<<26),
00584
RIG_LEVEL_SQLSTAT = (1<<27),
00585
RIG_LEVEL_SWR = (1<<28),
00586
RIG_LEVEL_ALC = (1<<29),
00587
RIG_LEVEL_STRENGTH = (1<<30)
00588 };
00589
00590
#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)
00591
00592
#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SQLSTAT|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR)
00593
00594
#define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST)
00595
#define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST)
00596
00597
00602 enum rig_parm_e {
00603
RIG_PARM_NONE = 0,
00604
RIG_PARM_ANN = (1<<0),
00605
RIG_PARM_APO = (1<<1),
00606
RIG_PARM_BACKLIGHT = (1<<2),
00607
RIG_PARM_BEEP = (1<<4),
00608
RIG_PARM_TIME = (1<<5),
00609
RIG_PARM_BAT = (1<<6),
00610
RIG_PARM_KEYLIGHT = (1<<7)
00611 };
00612
00613
#define RIG_PARM_FLOAT_LIST (RIG_PARM_BACKLIGHT|RIG_PARM_BAT)
00614
#define RIG_PARM_READONLY_LIST (RIG_PARM_BAT)
00615
00616
#define RIG_PARM_IS_FLOAT(l) ((l)&RIG_PARM_FLOAT_LIST)
00617
#define RIG_PARM_SET(l) ((l)&~RIG_PARM_READONLY_LIST)
00618
00619
#define RIG_SETTING_MAX 64
00620
00626 typedef unsigned long setting_t;
00627
00628
00629
00630
00631
00632
#define RIG_TRN_OFF 0
00633
#define RIG_TRN_RIG 1
00634
#define RIG_TRN_POLL 2
00635
00636
00640 enum rig_func_e {
00641
RIG_FUNC_NONE = 0,
00642
RIG_FUNC_FAGC = (1<<0),
00643
RIG_FUNC_NB = (1<<1),
00644
RIG_FUNC_COMP = (1<<2),
00645
RIG_FUNC_VOX = (1<<3),
00646
RIG_FUNC_TONE = (1<<4),
00647
RIG_FUNC_TSQL = (1<<5),
00648
RIG_FUNC_SBKIN = (1<<6),
00649
RIG_FUNC_FBKIN = (1<<7),
00650
RIG_FUNC_ANF = (1<<8),
00651
RIG_FUNC_NR = (1<<9),
00652
RIG_FUNC_AIP = (1<<10),
00653
RIG_FUNC_APF = (1<<11),
00654
RIG_FUNC_MON = (1<<12),
00655
RIG_FUNC_MN = (1<<13),
00656
RIG_FUNC_RNF = (1<<14),
00657
RIG_FUNC_ARO = (1<<15),
00658
RIG_FUNC_LOCK = (1<<16),
00659
RIG_FUNC_MUTE = (1<<17),
00660
RIG_FUNC_VSC = (1<<18),
00661
RIG_FUNC_REV = (1<<19),
00662
RIG_FUNC_SQL = (1<<20),
00663
RIG_FUNC_ABM = (1<<21),
00664
RIG_FUNC_BC = (1<<22),
00665
RIG_FUNC_MBC = (1<<23),
00666
00667
RIG_FUNC_AFC = (1<<25),
00668
RIG_FUNC_SATMODE = (1<<26),
00669
RIG_FUNC_SCOPE = (1<<27),
00670
RIG_FUNC_RESUME = (1<<28),
00671
RIG_FUNC_TBURST = (1<<29),
00672
RIG_FUNC_TUNER = (1<<30)
00673 };
00674
00675
00676
00677
00678
00679
#define mW(p) ((int)(p))
00680
#define Watts(p) ((int)((p)*1000))
00681
#define W(p) Watts(p)
00682
#define kW(p) ((int)((p)*1000000L))
00683
00687 typedef enum {
00688
RIG_MODE_NONE = 0,
00689
RIG_MODE_AM = (1<<0),
00690
RIG_MODE_CW = (1<<1),
00691
RIG_MODE_USB = (1<<2),
00692
RIG_MODE_LSB = (1<<3),
00693
RIG_MODE_RTTY = (1<<4),
00694
RIG_MODE_FM = (1<<5),
00695
RIG_MODE_WFM = (1<<6),
00696
RIG_MODE_CWR = (1<<7),
00697
RIG_MODE_RTTYR = (1<<8),
00698
RIG_MODE_AMS = (1<<9),
00699
RIG_MODE_PKTLSB = (1<<10),
00700
RIG_MODE_PKTUSB = (1<<11),
00701
RIG_MODE_PKTFM = (1<<12)
00702 }
rmode_t;
00703
00705 #define RIG_MODE_SSB (RIG_MODE_USB|RIG_MODE_LSB)
00706
00707
00708
#define RIG_DBLST_END 0
00709
#define RIG_IS_DBLST_END(d) ((d)==0)
00710
00717 typedef struct freq_range_list {
00718 freq_t start;
00719 freq_t end;
00720 rmode_t modes;
00721 int low_power;
00722 int high_power;
00723 vfo_t vfo;
00724 ant_t
ant;
00725 }
freq_range_t;
00726
00727
#define RIG_FRNG_END {Hz(0),Hz(0),RIG_MODE_NONE,0,0,RIG_VFO_NONE}
00728
#define RIG_IS_FRNG_END(r) ((r).start == Hz(0) && (r).end == Hz(0))
00729
00730
#define RIG_ITU_REGION1 1
00731
#define RIG_ITU_REGION2 2
00732
#define RIG_ITU_REGION3 3
00733
00753 struct tuning_step_list {
00754 rmode_t modes;
00755 shortfreq_t ts;
00756 };
00757
00758
#define RIG_TS_ANY 0
00759
#define RIG_TS_END {RIG_MODE_NONE,0}
00760
#define RIG_IS_TS_END(t) ((t).modes == RIG_MODE_NONE && (t).ts == 0)
00761
00788 struct filter_list {
00789 rmode_t modes;
00790 pbwidth_t width;
00791 };
00792
00793
#define RIG_FLT_ANY 0
00794
#define RIG_FLT_END {RIG_MODE_NONE,0}
00795
#define RIG_IS_FLT_END(f) ((f).modes == RIG_MODE_NONE)
00796
00797
00798
00799
00800
00801
#define RIG_CHFLAG_NONE 0
00802
#define RIG_CHFLAG_SKIP (1<<0)
00803
00808 struct ext_list {
00809 token_t token;
00810 value_t val;
00811 };
00812
00813
#define RIG_EXT_END {0, {.i=0}}
00814
#define RIG_IS_EXT_END(x) ((x).token == 0)
00815
00823 struct channel {
00824 int channel_num;
00825 int bank_num;
00826 vfo_t vfo;
00827 int ant;
00828 freq_t freq;
00829 rmode_t mode;
00830 pbwidth_t width;
00832 freq_t tx_freq;
00833 rmode_t tx_mode;
00834 pbwidth_t tx_width;
00836 split_t split;
00837 vfo_t tx_vfo;
00839 rptr_shift_t rptr_shift;
00840 shortfreq_t rptr_offs;
00841 shortfreq_t tuning_step;
00842 shortfreq_t rit;
00843 shortfreq_t xit;
00844 setting_t funcs;
00845 value_t levels[RIG_SETTING_MAX];
00846 tone_t ctcss_tone;
00847 tone_t ctcss_sql;
00848 tone_t dcs_code;
00849 tone_t dcs_sql;
00850 int scan_group;
00851 int flags;
00852 char channel_desc[MAXCHANDESC];
00853 struct ext_list *
ext_levels;
00854 };
00856 typedef struct channel channel_t;
00857
00863 struct channel_cap {
00864 unsigned bank_num:1;
00865 unsigned vfo:1;
00866 unsigned ant:1;
00867 unsigned freq:1;
00868 unsigned mode:1;
00869 unsigned width:1;
00871 unsigned tx_freq:1;
00872 unsigned tx_mode:1;
00873 unsigned tx_width:1;
00875 unsigned split:1;
00876 unsigned tx_vfo:1;
00877 unsigned rptr_shift:1;
00878 unsigned rptr_offs:1;
00879 unsigned tuning_step:1;
00880 unsigned rit:1;
00881 unsigned xit:1;
00882 setting_t funcs;
00883 setting_t levels;
00884 unsigned ctcss_tone:1;
00885 unsigned ctcss_sql:1;
00886 unsigned dcs_code:1;
00887 unsigned dcs_sql:1;
00888 unsigned scan_group:1;
00889 unsigned flags:1;
00890 unsigned channel_desc:1;
00891 unsigned ext_levels:1;
00892 };
00893
00895 typedef struct channel_cap channel_cap_t;
00896
00897
00908 typedef enum {
00909
RIG_MTYPE_NONE=0,
00910
RIG_MTYPE_MEM,
00911
RIG_MTYPE_EDGE,
00912
RIG_MTYPE_CALL,
00913
RIG_MTYPE_MEMOPAD,
00914
RIG_MTYPE_SAT
00915 }
chan_type_t;
00916
00930 struct chan_list {
00931 int start;
00932 int end;
00933 chan_type_t type;
00934 channel_cap_t mem_caps;
00935 };
00936
00937
#define RIG_CHAN_END {0,0,RIG_MTYPE_NONE}
00938
#define RIG_IS_CHAN_END(c) ((c).type == RIG_MTYPE_NONE)
00939
00941 typedef struct chan_list chan_t;
00942
00954 struct gran {
00955 value_t min;
00956 value_t max;
00957 value_t step;
00958 };
00959
00961 typedef struct gran gran_t;
00962
00963
00965 struct cal_table {
00966 int size;
00967
struct {
00968 int raw;
00969 int val;
00970 } table[MAX_CAL_LENGTH];
00971 };
00972
00985 typedef struct cal_table cal_table_t;
00986
00987
#define EMPTY_STR_CAL { 0, { { 0, 0 }, } }
00988
00989
01008 struct rig_caps {
01009 rig_model_t rig_model;
01010 const char *
model_name;
01011 const char *
mfg_name;
01012 const char *
version;
01013 const char *
copyright;
01014 enum rig_status_e status;
01016 int rig_type;
01017 ptt_type_t ptt_type;
01018 dcd_type_t dcd_type;
01019 rig_port_t port_type;
01021 int serial_rate_min;
01022 int serial_rate_max;
01023 int serial_data_bits;
01024 int serial_stop_bits;
01025 enum serial_parity_e serial_parity;
01026 enum serial_handshake_e serial_handshake;
01028 int write_delay;
01029 int post_write_delay;
01030 int timeout;
01031 int retry;
01033 setting_t has_get_func;
01034 setting_t has_set_func;
01035 setting_t has_get_level;
01036 setting_t has_set_level;
01037 setting_t has_get_parm;
01038 setting_t has_set_parm;
01040 gran_t level_gran[RIG_SETTING_MAX];
01041 gran_t parm_gran[RIG_SETTING_MAX];
01043 const struct confparams *
extparms;
01044 const struct confparams *
extlevels;
01046 const tone_t *
ctcss_list;
01047 const tone_t *
dcs_list;
01049 int preamp[MAXDBLSTSIZ];
01050 int attenuator[MAXDBLSTSIZ];
01051 shortfreq_t max_rit;
01052 shortfreq_t max_xit;
01053 shortfreq_t max_ifshift;
01055 ann_t announces;
01057 vfo_op_t vfo_ops;
01058 scan_t scan_ops;
01059 int targetable_vfo;
01060 int transceive;
01062 int bank_qty;
01063 int chan_desc_sz;
01065 chan_t chan_list[CHANLSTSIZ];
01067 freq_range_t rx_range_list1[FRQRANGESIZ];
01068 freq_range_t tx_range_list1[FRQRANGESIZ];
01069 freq_range_t rx_range_list2[FRQRANGESIZ];
01070 freq_range_t tx_range_list2[FRQRANGESIZ];
01072 struct tuning_step_list tuning_steps[TSLSTSIZ];
01073 struct filter_list filters[FLTLSTSIZ];
01075 cal_table_t str_cal;
01077 const struct confparams *
cfgparams;
01078 const rig_ptr_t
priv;
01080
01081
01082
01083
01084
01085 int (*rig_init) (
RIG *
rig);
01086 int (*rig_cleanup) (
RIG *
rig);
01087 int (*rig_open) (
RIG *
rig);
01088 int (*rig_close) (
RIG *
rig);
01089
01090
01091
01092
01093
01094
01095 int (*set_freq) (
RIG *
rig,
vfo_t vfo,
freq_t freq);
01096 int (*get_freq) (
RIG *
rig,
vfo_t vfo,
freq_t * freq);
01097
01098 int (*set_mode) (
RIG *
rig,
vfo_t vfo,
rmode_t mode,
01099
pbwidth_t width);
01100 int (*get_mode) (
RIG *
rig,
vfo_t vfo,
rmode_t * mode,
01101
pbwidth_t * width);
01102
01103 int (*set_vfo) (
RIG *
rig,
vfo_t vfo);
01104 int (*get_vfo) (
RIG *
rig,
vfo_t * vfo);
01105
01106 int (*set_ptt) (
RIG *
rig,
vfo_t vfo,
ptt_t ptt);
01107 int (*get_ptt) (
RIG *
rig,
vfo_t vfo,
ptt_t * ptt);
01108 int (*get_dcd) (
RIG *
rig,
vfo_t vfo,
dcd_t * dcd);
01109
01110 int (*set_rptr_shift) (
RIG *
rig,
vfo_t vfo,
01111
rptr_shift_t rptr_shift);
01112 int (*get_rptr_shift) (
RIG *
rig,
vfo_t vfo,
01113
rptr_shift_t * rptr_shift);
01114
01115 int (*set_rptr_offs) (
RIG *
rig,
vfo_t vfo,
shortfreq_t offs);
01116 int (*get_rptr_offs) (
RIG *
rig,
vfo_t vfo,
shortfreq_t * offs);
01117
01118 int (*set_split_freq) (
RIG *
rig,
vfo_t vfo,
freq_t tx_freq);
01119 int (*get_split_freq) (
RIG *
rig,
vfo_t vfo,
freq_t * tx_freq);
01120 int (*set_split_mode) (
RIG *
rig,
vfo_t vfo,
rmode_t tx_mode,
01121
pbwidth_t tx_width);
01122 int (*get_split_mode) (
RIG *
rig,
vfo_t vfo,
rmode_t * tx_mode,
01123
pbwidth_t * tx_width);
01124
01125 int (*set_split_vfo) (
RIG *
rig,
vfo_t vfo,
split_t split,
vfo_t tx_vfo);
01126 int (*get_split_vfo) (
RIG *
rig,
vfo_t vfo,
split_t * split,
vfo_t *tx_vfo);
01127
01128 int (*set_rit) (
RIG *
rig,
vfo_t vfo,
shortfreq_t rit);
01129 int (*get_rit) (
RIG *
rig,
vfo_t vfo,
shortfreq_t * rit);
01130 int (*set_xit) (
RIG *
rig,
vfo_t vfo,
shortfreq_t xit);
01131 int (*get_xit) (
RIG *
rig,
vfo_t vfo,
shortfreq_t * xit);
01132
01133 int (*set_ts) (
RIG *
rig,
vfo_t vfo,
shortfreq_t ts);
01134 int (*get_ts) (
RIG *
rig,
vfo_t vfo,
shortfreq_t * ts);
01135
01136 int (*set_dcs_code) (
RIG *
rig,
vfo_t vfo,
tone_t code);
01137 int (*get_dcs_code) (
RIG *
rig,
vfo_t vfo,
tone_t * code);
01138 int (*set_tone) (
RIG *
rig,
vfo_t vfo,
tone_t tone);
01139 int (*get_tone) (
RIG *
rig,
vfo_t vfo,
tone_t * tone);
01140 int (*set_ctcss_tone) (
RIG *
rig,
vfo_t vfo,
tone_t tone);
01141 int (*get_ctcss_tone) (
RIG *
rig,
vfo_t vfo,
tone_t * tone);
01142
01143 int (*set_dcs_sql) (
RIG *
rig,
vfo_t vfo,
tone_t code);
01144 int (*get_dcs_sql) (
RIG *
rig,
vfo_t vfo,
tone_t * code);
01145 int (*set_tone_sql) (
RIG *
rig,
vfo_t vfo,
tone_t tone);
01146 int (*get_tone_sql) (
RIG *
rig,
vfo_t vfo,
tone_t * tone);
01147 int (*set_ctcss_sql) (
RIG *
rig,
vfo_t vfo,
tone_t tone);
01148 int (*get_ctcss_sql) (
RIG *
rig,
vfo_t vfo,
tone_t * tone);
01149
01150 int (*power2mW) (
RIG *
rig,
unsigned int *mwpower,
float power,
01151
freq_t freq,
rmode_t mode);
01152 int (*mW2power) (
RIG *
rig,
float *power,
unsigned int mwpower,
01153
freq_t freq,
rmode_t mode);
01154
01155 int (*set_powerstat) (
RIG *
rig,
powerstat_t status);
01156 int (*get_powerstat) (
RIG *
rig,
powerstat_t *
status);
01157 int (*reset) (
RIG *
rig,
reset_t reset);
01158
01159 int (*set_ant) (
RIG *
rig,
vfo_t vfo, ant_t ant);
01160 int (*get_ant) (
RIG *
rig,
vfo_t vfo, ant_t * ant);
01161
01162 int (*set_level) (
RIG *
rig,
vfo_t vfo,
setting_t level,
01163
value_t val);
01164 int (*get_level) (
RIG *
rig,
vfo_t vfo,
setting_t level,
01165
value_t * val);
01166
01167 int (*set_func) (
RIG *
rig,
vfo_t vfo,
setting_t func,
int status);
01168 int (*get_func) (
RIG *
rig,
vfo_t vfo,
setting_t func,
01169
int *
status);
01170
01171 int (*set_parm) (
RIG *
rig,
setting_t parm,
value_t val);
01172 int (*get_parm) (
RIG *
rig,
setting_t parm,
value_t * val);
01173
01174 int (*set_ext_level)(
RIG *
rig,
vfo_t vfo,
token_t token,
value_t val);
01175 int (*get_ext_level)(
RIG *
rig,
vfo_t vfo,
token_t token,
value_t *val);
01176
01177 int (*set_ext_parm)(
RIG *
rig,
token_t token,
value_t val);
01178 int (*get_ext_parm)(
RIG *
rig,
token_t token,
value_t *val);
01179
01180 int (*set_conf) (
RIG *
rig,
token_t token,
const char *val);
01181 int (*get_conf) (
RIG *
rig,
token_t token,
char *val);
01182
01183 int (*send_dtmf) (
RIG *
rig,
vfo_t vfo,
const char *digits);
01184 int (*recv_dtmf) (
RIG *
rig,
vfo_t vfo,
char *digits,
int *length);
01185 int (*send_morse) (
RIG *
rig,
vfo_t vfo,
const char *msg);
01186
01187 int (*set_bank) (
RIG *
rig,
vfo_t vfo,
int bank);
01188 int (*set_mem) (
RIG *
rig,
vfo_t vfo,
int ch);
01189 int (*get_mem) (
RIG *
rig,
vfo_t vfo,
int *ch);
01190 int (*vfo_op) (
RIG *
rig,
vfo_t vfo,
vfo_op_t op);
01191 int (*scan) (
RIG *
rig,
vfo_t vfo,
scan_t scan,
int ch);
01192
01193 int (*set_trn) (
RIG *
rig,
int trn);
01194 int (*get_trn) (
RIG *
rig,
int *trn);
01195
01196 int (*decode_event) (
RIG *
rig);
01197
01198 int (*set_channel) (
RIG *
rig,
const channel_t * chan);
01199 int (*get_channel) (
RIG *
rig,
channel_t * chan);
01200
01201
const char *(*get_info) (
RIG *
rig);
01202
01203 };
01204
01210 typedef struct {
01211
union {
01212 rig_port_t rig;
01213 ptt_type_t ptt;
01214 dcd_type_t dcd;
01215 } type;
01216 int fd;
01217
#if defined(__CYGWIN__) || defined(_WIN32)
01218
HANDLE handle;
01219
#endif
01220
01221 int write_delay;
01222 int post_write_delay;
01223 struct timeval post_write_date;
01224 int timeout;
01225 int retry;
01227 char pathname[FILPATHLEN];
01228
union {
01229
struct {
01230 int rate;
01231 int data_bits;
01232 int stop_bits;
01233 enum serial_parity_e parity;
01234 enum serial_handshake_e handshake;
01235 enum serial_control_state_e rts_state;
01236 enum serial_control_state_e dtr_state;
01237 } serial;
01238
struct {
01239 int pin;
01240 } parallel;
01241
struct {
01242
01243 } network;
01244 } parm;
01245 }
port_t;
01246
01247
01257 struct rig_state {
01258
01259
01260
01261 port_t rigport;
01262 port_t pttport;
01263 port_t dcdport;
01265 double vfo_comp;
01267 int itu_region;
01268 freq_range_t rx_range_list[FRQRANGESIZ];
01269 freq_range_t tx_range_list[FRQRANGESIZ];
01271 struct tuning_step_list tuning_steps[TSLSTSIZ];
01273 struct filter_list filters[FLTLSTSIZ];
01275 cal_table_t str_cal;
01277 chan_t chan_list[CHANLSTSIZ];
01279 shortfreq_t max_rit;
01280 shortfreq_t max_xit;
01281 shortfreq_t max_ifshift;
01283 ann_t announces;
01285 int preamp[MAXDBLSTSIZ];
01286 int attenuator[MAXDBLSTSIZ];
01288 setting_t has_get_func;
01289 setting_t has_set_func;
01290 setting_t has_get_level;
01291 setting_t has_set_level;
01292 setting_t has_get_parm;
01293 setting_t has_set_parm;
01295 gran_t level_gran[RIG_SETTING_MAX];
01296 gran_t parm_gran[RIG_SETTING_MAX];
01299
01300
01301
01302
01303 int hold_decode;
01304 vfo_t current_vfo;
01305 int vfo_list;
01306 int comm_state;
01307 rig_ptr_t
priv;
01308 rig_ptr_t
obj;
01310 int transceive;
01311 int poll_interval;
01312 freq_t current_freq;
01313 rmode_t current_mode;
01314 pbwidth_t current_width;
01316 };
01317
01318
01319
typedef int (*freq_cb_t) (
RIG *,
vfo_t,
freq_t, rig_ptr_t);
01320
typedef int (*mode_cb_t) (
RIG *,
vfo_t,
rmode_t,
pbwidth_t, rig_ptr_t);
01321
typedef int (*vfo_cb_t) (
RIG *,
vfo_t, rig_ptr_t);
01322
typedef int (*ptt_cb_t) (
RIG *,
vfo_t,
ptt_t, rig_ptr_t);
01323
typedef int (*dcd_cb_t) (
RIG *,
vfo_t,
dcd_t, rig_ptr_t);
01324
typedef int (*pltune_cb_t) (
RIG *,
vfo_t,
freq_t *,
rmode_t *,
pbwidth_t *, rig_ptr_t);
01325
01343 struct rig_callbacks {
01344 freq_cb_t
freq_event;
01345 rig_ptr_t
freq_arg;
01346 mode_cb_t
mode_event;
01347 rig_ptr_t
mode_arg;
01348 vfo_cb_t
vfo_event;
01349 rig_ptr_t
vfo_arg;
01350 ptt_cb_t
ptt_event;
01351 rig_ptr_t
ptt_arg;
01352 dcd_cb_t
dcd_event;
01353 rig_ptr_t
dcd_arg;
01354 pltune_cb_t
pltune;
01355 rig_ptr_t
pltune_arg;
01356
01357 };
01358
01368 struct rig {
01369 struct rig_caps *
caps;
01370 struct rig_state state;
01371 struct rig_callbacks callbacks;
01372 };
01373
01374
01375
01376
01377
01378
extern HAMLIB_EXPORT(RIG *) rig_init HAMLIB_PARAMS((rig_model_t rig_model));
01379 extern HAMLIB_EXPORT(
int) rig_open HAMLIB_PARAMS((RIG *
rig));
01380
01381
01382
01383
01384
01385
01386 extern HAMLIB_EXPORT(
int) rig_set_freq HAMLIB_PARAMS((RIG *rig, vfo_t vfo, freq_t freq));
01387 extern HAMLIB_EXPORT(
int) rig_get_freq HAMLIB_PARAMS((RIG *rig, vfo_t vfo, freq_t *freq));
01388
01389 extern HAMLIB_EXPORT(
int) rig_set_mode HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width));
01390 extern HAMLIB_EXPORT(
int) rig_get_mode HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width));
01391
01392 extern HAMLIB_EXPORT(
int) rig_set_vfo HAMLIB_PARAMS((RIG *rig, vfo_t vfo));
01393 extern HAMLIB_EXPORT(
int) rig_get_vfo HAMLIB_PARAMS((RIG *rig, vfo_t *vfo));
01394
01395 extern HAMLIB_EXPORT(
int) rig_set_ptt HAMLIB_PARAMS((RIG *rig, vfo_t vfo, ptt_t ptt));
01396 extern HAMLIB_EXPORT(
int) rig_get_ptt HAMLIB_PARAMS((RIG *rig, vfo_t vfo, ptt_t *ptt));
01397
01398 extern HAMLIB_EXPORT(
int) rig_get_dcd HAMLIB_PARAMS((RIG *rig, vfo_t vfo, dcd_t *dcd));
01399
01400 extern HAMLIB_EXPORT(
int) rig_set_rptr_shift HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift));
01401 extern HAMLIB_EXPORT(
int) rig_get_rptr_shift HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift));
01402 extern HAMLIB_EXPORT(
int) rig_set_rptr_offs HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t rptr_offs));
01403 extern HAMLIB_EXPORT(
int) rig_get_rptr_offs HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t *rptr_offs));
01404
01405 extern HAMLIB_EXPORT(
int) rig_set_ctcss_tone HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t tone));
01406 extern HAMLIB_EXPORT(
int) rig_get_ctcss_tone HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t *tone));
01407 extern HAMLIB_EXPORT(
int) rig_set_dcs_code HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t code));
01408 extern HAMLIB_EXPORT(
int) rig_get_dcs_code HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t *code));
01409
01410 extern HAMLIB_EXPORT(
int) rig_set_ctcss_sql HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t tone));
01411 extern HAMLIB_EXPORT(
int) rig_get_ctcss_sql HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t *tone));
01412 extern HAMLIB_EXPORT(
int) rig_set_dcs_sql HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t code));
01413 extern HAMLIB_EXPORT(
int) rig_get_dcs_sql HAMLIB_PARAMS((RIG *rig, vfo_t vfo, tone_t *code));
01414
01415 extern HAMLIB_EXPORT(
int) rig_set_split_freq HAMLIB_PARAMS((RIG *rig, vfo_t vfo, freq_t tx_freq));
01416 extern HAMLIB_EXPORT(
int) rig_get_split_freq HAMLIB_PARAMS((RIG *rig, vfo_t vfo, freq_t *tx_freq));
01417 extern HAMLIB_EXPORT(
int) rig_set_split_mode HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rmode_t tx_mode, pbwidth_t tx_width));
01418 extern HAMLIB_EXPORT(
int) rig_get_split_mode HAMLIB_PARAMS((RIG *rig, vfo_t vfo, rmode_t *tx_mode, pbwidth_t *tx_width));
01419 extern HAMLIB_EXPORT(
int) rig_set_split_vfo HAMLIB_PARAMS((RIG*, vfo_t rx_vfo, split_t split, vfo_t tx_vfo));
01420 extern HAMLIB_EXPORT(
int) rig_get_split_vfo HAMLIB_PARAMS((RIG*, vfo_t rx_vfo, split_t *split, vfo_t *tx_vfo));
01421 #define rig_set_split(r,v,s) rig_set_split_vfo((r),(v),(s),RIG_VFO_CURR)
01422 #define rig_get_split(r,v,s) ({
vfo_t _tx_vfo;
rig_get_split_vfo((r),(v),(s),&_tx_vfo); })
01423
01424
extern HAMLIB_EXPORT(
int) rig_set_rit HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t rit));
01425 extern HAMLIB_EXPORT(
int) rig_get_rit HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t *rit));
01426 extern HAMLIB_EXPORT(
int) rig_set_xit HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t xit));
01427 extern HAMLIB_EXPORT(
int) rig_get_xit HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t *xit));
01428
01429 extern HAMLIB_EXPORT(
int) rig_set_ts HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t ts));
01430 extern HAMLIB_EXPORT(
int) rig_get_ts HAMLIB_PARAMS((RIG *rig, vfo_t vfo, shortfreq_t *ts));
01431
01432 extern HAMLIB_EXPORT(
int) rig_power2mW HAMLIB_PARAMS((RIG *rig,
unsigned int *mwpower,
float power, freq_t freq, rmode_t mode));
01433 extern HAMLIB_EXPORT(
int) rig_mW2power HAMLIB_PARAMS((RIG *rig,
float *power,
unsigned int mwpower, freq_t freq, rmode_t mode));
01434
01435 extern HAMLIB_EXPORT(shortfreq_t) rig_get_resolution HAMLIB_PARAMS((RIG *rig, rmode_t mode));
01436
01437 extern HAMLIB_EXPORT(
int) rig_set_level HAMLIB_PARAMS((RIG *rig, vfo_t vfo, setting_t level,
value_t val));
01438 extern HAMLIB_EXPORT(
int) rig_get_level HAMLIB_PARAMS((RIG *rig, vfo_t vfo, setting_t level,
value_t *val));
01439
01440 #define rig_get_strength(r,v,s) rig_get_level((r),(v),RIG_LEVEL_STRENGTH, (
value_t*)(s))
01441
01442 extern HAMLIB_EXPORT(
int) rig_set_parm HAMLIB_PARAMS((RIG *rig, setting_t parm,
value_t val));
01443 extern HAMLIB_EXPORT(
int) rig_get_parm HAMLIB_PARAMS((RIG *rig, setting_t parm,
value_t *val));
01444
01445 extern HAMLIB_EXPORT(
int) rig_set_conf HAMLIB_PARAMS((RIG *rig, token_t token, const
char *val));
01446 extern HAMLIB_EXPORT(
int) rig_get_conf HAMLIB_PARAMS((RIG *rig, token_t token,
char *val));
01447
01448 extern HAMLIB_EXPORT(
int) rig_set_powerstat HAMLIB_PARAMS((RIG *rig, powerstat_t status));
01449 extern HAMLIB_EXPORT(
int) rig_get_powerstat HAMLIB_PARAMS((RIG *rig, powerstat_t *status));
01450
01451 extern HAMLIB_EXPORT(
int) rig_reset HAMLIB_PARAMS((RIG *rig, reset_t reset));
01452
01453 extern HAMLIB_EXPORT(
int) rig_set_ext_level HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
01454 token_t token,
value_t val));
01455 extern HAMLIB_EXPORT(
int) rig_get_ext_level HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
01456 token_t token,
value_t *val));
01457
01458 extern HAMLIB_EXPORT(
int) rig_set_ext_parm HAMLIB_PARAMS((RIG *rig, token_t token,
value_t val));
01459 extern HAMLIB_EXPORT(
int) rig_get_ext_parm HAMLIB_PARAMS((RIG *rig, token_t token,
value_t *val));
01460
01461 extern HAMLIB_EXPORT(
int) rig_ext_level_foreach HAMLIB_PARAMS((RIG *rig,
int (*cfunc)(RIG*, const struct
confparams *, rig_ptr_t), rig_ptr_t data));
01462 extern HAMLIB_EXPORT(
int) rig_ext_parm_foreach HAMLIB_PARAMS((RIG *rig,
int (*cfunc)(RIG*, const struct confparams *, rig_ptr_t), rig_ptr_t data));
01463 extern HAMLIB_EXPORT(const struct confparams*) rig_ext_lookup HAMLIB_PARAMS((RIG *rig, const
char *name));
01464 extern HAMLIB_EXPORT(token_t) rig_ext_token_lookup HAMLIB_PARAMS((RIG *rig, const
char *name));
01465
01466
01467 extern HAMLIB_EXPORT(
int) rig_token_foreach HAMLIB_PARAMS((RIG *rig,
int (*cfunc)(const struct confparams *, rig_ptr_t), rig_ptr_t data));
01468 extern HAMLIB_EXPORT(const struct confparams*) rig_confparam_lookup HAMLIB_PARAMS((RIG *rig, const
char *name));
01469 extern HAMLIB_EXPORT(token_t) rig_token_lookup HAMLIB_PARAMS((RIG *rig, const
char *name));
01470
01471 extern HAMLIB_EXPORT(
int) rig_close HAMLIB_PARAMS((RIG *rig));
01472 extern HAMLIB_EXPORT(
int) rig_cleanup HAMLIB_PARAMS((RIG *rig));
01473
01474 extern HAMLIB_EXPORT(
int) rig_set_ant HAMLIB_PARAMS((RIG *rig, vfo_t vfo, ant_t ant));
01475 extern HAMLIB_EXPORT(
int) rig_get_ant HAMLIB_PARAMS((RIG *rig, vfo_t vfo, ant_t *ant));
01476
01477 extern HAMLIB_EXPORT(setting_t) rig_has_get_level HAMLIB_PARAMS((RIG *rig, setting_t level));
01478 extern HAMLIB_EXPORT(setting_t) rig_has_set_level HAMLIB_PARAMS((RIG *rig, setting_t level));
01479
01480 extern HAMLIB_EXPORT(setting_t) rig_has_get_parm HAMLIB_PARAMS((RIG *rig, setting_t parm));
01481 extern HAMLIB_EXPORT(setting_t) rig_has_set_parm HAMLIB_PARAMS((RIG *rig, setting_t parm));
01482
01483 extern HAMLIB_EXPORT(setting_t) rig_has_get_func HAMLIB_PARAMS((RIG *rig, setting_t func));
01484 extern HAMLIB_EXPORT(setting_t) rig_has_set_func HAMLIB_PARAMS((RIG *rig, setting_t func));
01485
01486 extern HAMLIB_EXPORT(
int) rig_set_func HAMLIB_PARAMS((RIG *rig, vfo_t vfo, setting_t func,
int status));
01487 extern HAMLIB_EXPORT(
int) rig_get_func HAMLIB_PARAMS((RIG *rig, vfo_t vfo, setting_t func,
int *status));
01488
01489 extern HAMLIB_EXPORT(
int) rig_send_dtmf HAMLIB_PARAMS((RIG *rig, vfo_t vfo, const
char *digits));
01490 extern HAMLIB_EXPORT(
int) rig_recv_dtmf HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
char *digits,
int *length));
01491 extern HAMLIB_EXPORT(
int) rig_send_morse HAMLIB_PARAMS((RIG *rig, vfo_t vfo, const
char *msg));
01492
01493 extern HAMLIB_EXPORT(
int) rig_set_bank HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
int bank));
01494 extern HAMLIB_EXPORT(
int) rig_set_mem HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
int ch));
01495 extern HAMLIB_EXPORT(
int) rig_get_mem HAMLIB_PARAMS((RIG *rig, vfo_t vfo,
int *ch));
01496 extern HAMLIB_EXPORT(
int) rig_vfo_op HAMLIB_PARAMS((RIG *rig, vfo_t vfo, vfo_op_t op));
01497 extern HAMLIB_EXPORT(vfo_op_t) rig_has_vfo_op HAMLIB_PARAMS((RIG *rig, vfo_op_t op));
01498 extern HAMLIB_EXPORT(
int) rig_scan HAMLIB_PARAMS((RIG *rig, vfo_t vfo, scan_t scan,
int ch));
01499 extern HAMLIB_EXPORT(scan_t) rig_has_scan HAMLIB_PARAMS((RIG *rig, scan_t scan));
01500
01501 extern HAMLIB_EXPORT(
int) rig_set_channel HAMLIB_PARAMS((RIG *rig, const channel_t *chan));
01502 extern HAMLIB_EXPORT(
int) rig_get_channel HAMLIB_PARAMS((RIG *rig, channel_t *chan));
01503
01504 extern HAMLIB_EXPORT(
int) rig_set_trn HAMLIB_PARAMS((RIG *rig,
int trn));
01505 extern HAMLIB_EXPORT(
int) rig_get_trn HAMLIB_PARAMS((RIG *rig,
int *trn));
01506 extern HAMLIB_EXPORT(
int) rig_set_freq_callback HAMLIB_PARAMS((RIG *, freq_cb_t, rig_ptr_t));
01507 extern HAMLIB_EXPORT(
int) rig_set_mode_callback HAMLIB_PARAMS((RIG *, mode_cb_t, rig_ptr_t));
01508 extern HAMLIB_EXPORT(
int) rig_set_vfo_callback HAMLIB_PARAMS((RIG *, vfo_cb_t, rig_ptr_t));
01509 extern HAMLIB_EXPORT(
int) rig_set_ptt_callback HAMLIB_PARAMS((RIG *, ptt_cb_t, rig_ptr_t));
01510 extern HAMLIB_EXPORT(
int) rig_set_dcd_callback HAMLIB_PARAMS((RIG *, dcd_cb_t, rig_ptr_t));
01511 extern HAMLIB_EXPORT(
int) rig_set_pltune_callback HAMLIB_PARAMS((RIG *, pltune_cb_t, rig_ptr_t));
01512
01513 extern HAMLIB_EXPORT(const
char *) rig_get_info HAMLIB_PARAMS((RIG *rig));
01514
01515 extern HAMLIB_EXPORT(const struct
rig_caps *) rig_get_caps HAMLIB_PARAMS((rig_model_t rig_model));
01516 extern HAMLIB_EXPORT(const
freq_range_t *) rig_get_range HAMLIB_PARAMS((const
freq_range_t range_list[], freq_t freq, rmode_t mode));
01517
01518 extern HAMLIB_EXPORT(pbwidth_t) rig_passband_normal HAMLIB_PARAMS((RIG *rig, rmode_t mode));
01519 extern HAMLIB_EXPORT(pbwidth_t) rig_passband_narrow HAMLIB_PARAMS((RIG *rig, rmode_t mode));
01520 extern HAMLIB_EXPORT(pbwidth_t) rig_passband_wide HAMLIB_PARAMS((RIG *rig, rmode_t mode));
01521
01522 extern HAMLIB_EXPORT(const
char *) rigerror HAMLIB_PARAMS((
int errnum));
01523
01524 extern HAMLIB_EXPORT(
int) rig_setting2idx HAMLIB_PARAMS((setting_t s));
01525 #define rig_idx2setting(i) (1ULL<<(i))
01526
01527
01528
01529
01530
01531 extern HAMLIB_EXPORT(
void) rig_set_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
01532 extern HAMLIB_EXPORT(
int) rig_need_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level));
01533 extern HAMLIB_EXPORT(
void) rig_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level, const
char *fmt, ...));
01534
01535 extern HAMLIB_EXPORT(
int) rig_register HAMLIB_PARAMS((const struct
rig_caps *caps));
01536 extern HAMLIB_EXPORT(
int) rig_unregister HAMLIB_PARAMS((rig_model_t rig_model));
01537 extern HAMLIB_EXPORT(
int) rig_list_foreach HAMLIB_PARAMS((
int (*cfunc)(const struct
rig_caps*, rig_ptr_t), rig_ptr_t data));
01538 extern HAMLIB_EXPORT(
int) rig_load_backend HAMLIB_PARAMS((const
char *be_name));
01539 extern HAMLIB_EXPORT(
int) rig_check_backend HAMLIB_PARAMS((rig_model_t rig_model));
01540 extern HAMLIB_EXPORT(
int) rig_load_all_backends HAMLIB_PARAMS(());
01541
01542 typedef
int (*rig_probe_func_t)(const
port_t *, rig_model_t, rig_ptr_t);
01543 extern HAMLIB_EXPORT(
int) rig_probe_all HAMLIB_PARAMS((port_t *p, rig_probe_func_t, rig_ptr_t));
01544 extern HAMLIB_EXPORT(rig_model_t) rig_probe HAMLIB_PARAMS((port_t *p));
01545
01546
01547 __END_DECLS
01548
01549 #endif