* added rig_get_dcd() support (RIG_LEVEL_SQLSTAT might disappear)

* renamed KHz to kHz
* RIG_MODE_WFM is back, backends not updated yet

!!! API CHANGE !!!
* added new fields 'dcd_type', 'port_type' and 'get_dcd'
* caps has a new field: 'filters'. It holds the list of installed filters
  as a table of modes/bandpass tuples. See hamlib-developer for discussion.


git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@390 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.1.1
Stéphane Fillod, F8CFE 2001-02-14 23:51:44 +00:00
rodzic 7796233b85
commit 617c6ade52
1 zmienionych plików z 58 dodań i 6 usunięć

Wyświetl plik

@ -5,7 +5,7 @@
* will be used for obtaining rig capabilities.
*
*
* $Id: rig.h,v 1.16 2001-02-11 23:04:54 f4cfe Exp $
* $Id: rig.h,v 1.17 2001-02-14 23:51:44 f4cfe Exp $
*
*
* This program is free software; you can redistribute it and/or
@ -162,6 +162,27 @@ enum passband_width_e {
typedef enum passband_width_e pbwidth_t;
enum dcd_e {
RIG_DCD_OFF = 0, /* squelch closed */
RIG_DCD_ON /* squelch open */
};
typedef enum dcd_e dcd_t;
enum dcd_type_e {
RIG_DCD_NONE = 0, /* not available */
RIG_DCD_RIG, /* i.e. has get_dcd cap */
RIG_DCD_SERIAL_DSR,
RIG_DCD_SERIAL_CTS,
RIG_DCD_PARALLEL, /* DCD comes from ?? DATA1? STROBE? */
#ifdef TODO_MORE_DCD
RIG_DCD_PTT /* follow ptt_type, i.e. ptt=RTS -> dcd=CTS on same line --SF */
#endif
};
typedef enum dcd_type_e dcd_type_t;
enum ptt_e {
RIG_PTT_OFF = 0,
RIG_PTT_ON
@ -174,7 +195,7 @@ enum ptt_type_e {
RIG_PTT_RIG, /* legacy PTT */
RIG_PTT_SERIAL_DTR,
RIG_PTT_SERIAL_RTS,
RIG_PTT_PARALLEL, /* PTT accessed through DATA0 */
RIG_PTT_PARALLEL /* PTT accessed through DATA0 */
};
typedef enum ptt_type_e ptt_type_t;
@ -254,7 +275,7 @@ typedef union value_u value_t;
/* These ones are not settable */
#define RIG_LEVEL_SWR (1<<28) /* SWR, arg float */
#define RIG_LEVEL_ALC (1<<29) /* ALC, arg float */
#define RIG_LEVEL_SQLSTAT (1<<30) /* SQL status, arg int (open=1/closed=0) */
#define RIG_LEVEL_SQLSTAT (1<<30) /* SQL status, arg int (open=1/closed=0). Deprecated, use get_dcd instead */
#define RIG_LEVEL_STRENGTH (1<<31) /* Signal strength, arg int (dB) */
typedef unsigned long setting_t; /* 32 bits might not be enough.. */
@ -297,17 +318,19 @@ typedef long long freq_t;
typedef signed long shortfreq_t;
#define Hz(f) ((freq_t)(f))
#define KHz(f) ((freq_t)((f)*1000))
#define kHz(f) ((freq_t)((f)*1000))
#define MHz(f) ((freq_t)((f)*1000000L))
#define GHz(f) ((freq_t)((f)*1000000000LL))
#define RIG_FREQ_NONE Hz(0)
/*
* power unit macros, converts to mW
*/
#define mW(p) ((int)(p))
#define Watts(p) ((int)((p)*1000))
#define W(p) Watts(p)
#define KW(p) ((int)((p)*1000000L))
#define kW(p) ((int)((p)*1000000L))
#define MW(p) ((int)((p)*1000000000LL)) /* geeez! :-) */
typedef unsigned int rmode_t; /* radio mode */
@ -324,7 +347,10 @@ typedef unsigned int rmode_t; /* radio mode */
#define RIG_MODE_LSB (1<<3)
#define RIG_MODE_RTTY (1<<4)
#define RIG_MODE_FM (1<<5)
#define RIG_MODE_WFM (1<<6) /* after all, Wide FM is a mode on its own */
/* macro for backends, no to be used by rig_set_mode et al. */
#define RIG_MODE_SSB (RIG_MODE_USB|RIG_MODE_LSB)
#define RIGNAMSIZ 30
@ -333,10 +359,10 @@ typedef unsigned int rmode_t; /* radio mode */
#define FRQRANGESIZ 30
#define MAXCHANDESC 30 /* describe channel eg: "WWV 5Mhz" */
#define TSLSTSIZ 20 /* max tuning step list size, zero ended */
#define FLTLSTSIZ 16 /* max mode/filter list size, zero ended */
#define MAXDBLSTSIZ 8 /* max preamp/att levels supported, zero ended */
#define RIG_DBLST_END 0 /* end marker in a preamp/att level list */
/*
* Put together a bunch of this struct in an array to define
* what your rig have access to
@ -366,6 +392,19 @@ struct tuning_step_list {
#define RIG_TS_END {0,0}
/*
* Lists the filters available for each mode
* If more than one filter is available for a given mode,
* the first entry in the array will be the default
* filter to use for this mode (cf rig_set_mode).
*/
struct filter_list {
rmode_t modes; /* bitwise OR'ed RIG_MODE_* */
shortfreq_t width; /* passband width in Hz */
};
#define RIG_FLT_END {0,0}
/*
* Convenience struct, describes a freq/vfo/mode combo
@ -414,8 +453,11 @@ struct rig_caps {
char version[RIGVERSIZ]; /* driver version, eg "0.5" */
const char *copyright; /* author and copyright, eg "(c) 2001 Joe Bar, GPL" */
enum rig_status_e status; /* among ALPHA, BETA, STABLE, NEW */
enum rig_type_e rig_type;
enum ptt_type_e ptt_type; /* how we will key the rig */
enum dcd_type_e dcd_type; /* how we know squelch status */
enum rig_port_e port_type; /* hint about common port type (e.g. serial, device, etc. */
int serial_rate_min; /* eg 4800 */
int serial_rate_max; /* eg 9600 */
@ -452,6 +494,8 @@ struct rig_caps {
freq_range_t tx_range_list2[FRQRANGESIZ];
struct tuning_step_list tuning_steps[TSLSTSIZ];
struct filter_list filters[FLTLSTSIZ]; /* mode/filter table at -6dB */
/*
* Rig Admin API
*
@ -479,6 +523,7 @@ struct rig_caps {
int (*set_ptt)(RIG *rig, vfo_t vfo, ptt_t ptt); /* ptt on/off */
int (*get_ptt)(RIG *rig, vfo_t vfo, ptt_t *ptt); /* get ptt status */
int (*get_dcd)(RIG *rig, vfo_t vfo, dcd_t *dcd); /* get squelch status */
int (*set_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift); /* set repeater shift */
int (*get_rptr_shift)(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift); /* get repeater shift */
@ -586,6 +631,8 @@ struct rig_state {
int retry; /* maximum number of retries, 0 to disable */
enum ptt_type_e ptt_type; /* how we will key the rig */
enum dcd_type_e dcd_type;
char ptt_path[FILPATHLEN]; /* path to the keying device (serial,//) */
char rig_path[FILPATHLEN]; /* serial port/network path(host:port) */
double vfo_comp; /* VFO compensation in PPM, 0.0 to disable */
@ -602,6 +649,8 @@ struct rig_state {
freq_range_t rx_range_list[FRQRANGESIZ]; /* these ones can be updated */
freq_range_t tx_range_list[FRQRANGESIZ];
struct filter_list filters[FLTLSTSIZ]; /* mode/filter table at -6dB */
shortfreq_t max_rit; /* max absolute RIT */
char preamp[MAXDBLSTSIZ]; /* in dB, 0 terminated */
@ -637,6 +686,7 @@ struct rig_callbacks {
int (*mode_event)(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
int (*vfo_event)(RIG *rig, vfo_t vfo);
int (*ptt_event)(RIG *rig, vfo_t vfo, ptt_t mode);
int (*dcd_event)(RIG *rig, vfo_t vfo, dcd_t mode);
/* etc.. */
};
@ -674,6 +724,8 @@ extern int rig_get_vfo(RIG *rig, vfo_t *vfo); /* get vfo */
extern int rig_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt); /* ptt on/off */
extern int rig_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt); /* get ptt status */
extern int rig_get_dcd(RIG *rig, vfo_t vfo, dcd_t *dcd); /* get dcd status */
extern int rig_set_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t rptr_shift); /* set repeater shift */
extern int rig_get_rptr_shift(RIG *rig, vfo_t vfo, rptr_shift_t *rptr_shift); /* get repeater shift */
extern int rig_set_rptr_offs(RIG *rig, vfo_t vfo, shortfreq_t rptr_offs); /* set repeater offset */