kopia lustrzana https://github.com/Hamlib/Hamlib
* converted RIG_LEVEL_STRENGTH to RIG_LEVEL_RAWSTR, as discussed on mailing list.
RIG_LEVEL_STRENGTH is then derived from calibration table. * gran_t has been changed, more precise with min/max. git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1595 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.0
rodzic
916a21ad52
commit
a599a47312
|
@ -2,7 +2,7 @@
|
|||
* Hamlib Interface - API header
|
||||
* Copyright (c) 2000-2003 by Stephane Fillod and Frank Singleton
|
||||
*
|
||||
* $Id: rig.h,v 1.87 2003-10-20 22:15:01 fillods Exp $
|
||||
* $Id: rig.h,v 1.88 2003-11-16 17:36:15 fillods Exp $
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
|
@ -131,6 +131,7 @@ typedef struct rig RIG;
|
|||
#define FLTLSTSIZ 16 /* max mode/filter list size, zero ended */
|
||||
#define MAXDBLSTSIZ 8 /* max preamp/att levels supported, zero ended */
|
||||
#define CHANLSTSIZ 16 /* max mem_list size, zero ended */
|
||||
#define MAX_CAL_LENGTH 32 /* max calibration plots in cal_table_t */
|
||||
|
||||
|
||||
/**
|
||||
|
@ -577,15 +578,16 @@ enum rig_level_e {
|
|||
RIG_LEVEL_ANTIVOX = (1<<22),/*!< anti-VOX level, arg float [0.0 .. 1.0] */
|
||||
|
||||
/*!< These ones are not settable */
|
||||
RIG_LEVEL_RAWSTR = (1<<26),/*!< Raw (A/D) value for signal strength, specific to each rig, arg int */
|
||||
RIG_LEVEL_SQLSTAT = (1<<27),/*!< SQL status, arg int (open=1/closed=0). Deprecated, use get_dcd instead */
|
||||
RIG_LEVEL_SWR = (1<<28),/*!< SWR, arg float */
|
||||
RIG_LEVEL_ALC = (1<<29),/*!< ALC, arg float */
|
||||
RIG_LEVEL_STRENGTH = (1<<30) /*!< Signal strength, arg int (dB) */
|
||||
RIG_LEVEL_STRENGTH = (1<<30) /*!< Effective (calibrated) signal strength relative to S9, arg int (dB) */
|
||||
};
|
||||
|
||||
#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)
|
||||
|
||||
#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SQLSTAT|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH)
|
||||
#define RIG_LEVEL_READONLY_LIST (RIG_LEVEL_SQLSTAT|RIG_LEVEL_SWR|RIG_LEVEL_ALC|RIG_LEVEL_STRENGTH|RIG_LEVEL_RAWSTR)
|
||||
|
||||
#define RIG_LEVEL_IS_FLOAT(l) ((l)&RIG_LEVEL_FLOAT_LIST)
|
||||
#define RIG_LEVEL_SET(l) ((l)&~RIG_LEVEL_READONLY_LIST)
|
||||
|
@ -933,8 +935,51 @@ struct chan_list {
|
|||
/** \brief chan_t type */
|
||||
typedef struct chan_list chan_t;
|
||||
|
||||
/**
|
||||
* \brief level/parm granularity definition
|
||||
*
|
||||
* The granularity is undefined if min=0, max=0, and step=0.
|
||||
*
|
||||
* For float settings, if min.f=0 and max.f=0 (and step.f!=0),
|
||||
* max.f is assumed to be actually equal to 1.0.
|
||||
*
|
||||
* If step=0 (and min and/or max are not null), then this means step
|
||||
* can have maximum resolution, depending on type (int or float).
|
||||
*/
|
||||
struct gran {
|
||||
value_t min; /*!< Minimum value */
|
||||
value_t max; /*!< Maximum value */
|
||||
value_t step; /*!< Step */
|
||||
};
|
||||
|
||||
/** \brief gran_t type */
|
||||
typedef float gran_t;
|
||||
typedef struct gran gran_t;
|
||||
|
||||
|
||||
/** \brief Calibration table struct */
|
||||
struct cal_table {
|
||||
int size; /*!< number of plots in the table */
|
||||
struct {
|
||||
int raw; /*!< raw (A/D) value, as returned by \a RIG_LEVEL_RAWSTR */
|
||||
int val; /*!< associated value, basically the measured dB value */
|
||||
} table[MAX_CAL_LENGTH]; /*!< table of plots */
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief calibration table type
|
||||
*
|
||||
* cal_table_t is a data type suited to hold linear calibration.
|
||||
* cal_table_t.size tell the number of plot cal_table_t.table contains.
|
||||
*
|
||||
* If a value is below or equal to cal_table_t.table[0].raw,
|
||||
* rig_raw2val() will return cal_table_t.table[0].val.
|
||||
*
|
||||
* If a value is greater or equal to cal_table_t.table[cal_table_t.size-1].raw,
|
||||
* rig_raw2val() will return cal_table_t.table[cal_table_t.size-1].val.
|
||||
*/
|
||||
typedef struct cal_table cal_table_t;
|
||||
|
||||
#define EMPTY_STR_CAL { 0, { { 0, 0 }, } }
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1022,6 +1067,8 @@ struct rig_caps {
|
|||
struct tuning_step_list tuning_steps[TSLSTSIZ]; /*!< Tuning step list */
|
||||
struct filter_list filters[FLTLSTSIZ]; /*!< mode/filter table, at -6dB */
|
||||
|
||||
cal_table_t str_cal; /*!< S-meter calibration table */
|
||||
|
||||
const struct confparams *cfgparams; /*!< Configuration parametres. */
|
||||
const rig_ptr_t priv; /*!< Private data. */
|
||||
|
||||
|
@ -1220,6 +1267,8 @@ struct rig_state {
|
|||
|
||||
struct filter_list filters[FLTLSTSIZ]; /*!< Mode/filter table, at -6dB */
|
||||
|
||||
cal_table_t str_cal; /*!< S-meter calibration table */
|
||||
|
||||
chan_t chan_list[CHANLSTSIZ]; /*!< Channel list, zero ended */
|
||||
|
||||
shortfreq_t max_rit; /*!< max absolute RIT */
|
||||
|
|
Ładowanie…
Reference in New Issue