Update Doxygen comments in amplifier.h

pull/528/head
Nate Bargmann 2021-02-06 07:16:09 -06:00
rodzic d4bc60be0b
commit 20ce18f477
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: F72625E2EDBED598
1 zmienionych plików z 104 dodań i 85 usunięć

Wyświetl plik

@ -35,7 +35,9 @@
* \brief Hamlib amplifier data structures.
*
* This file contains the data structures and declarations for the Hamlib
* amplifier API. see the amplifier.c file for more details on the amplifier API.
* amplifier Application Programming Interface (API).
*
* See the `amplifier.c` file for details on the amplifier API functions.
*/
@ -50,35 +52,52 @@ struct amp_state;
/**
* \typedef typedef struct amp AMP
* \brief Amplifier structure definition (see amp for details).
* \brief Main amplifier handle type definition.
*
* The AMP handle is returned by amp_init() and is passed as a parameter to
* every amplifier specific API call.
*
* amp_cleanup() must be called when this handle is no longer needed.
*/
typedef struct amp AMP;
/**
* \typedef typedef float swr_t
* \brief Type definition for SWR.
* \brief Type definition for
* <a href="https://en.wikipedia.org/wiki/Standing_wave_ratio" >SWR (Standing Wave Ratio)</a>.
*
* The swr_t type is used as a parameter for the amp_get_swr() function.
* The \c swr_t type is used as a parameter for the amp_get_swr() function.
*
* Unless specified otherwise, the unit of swr_t is 1.0 to max reported by tuner
* The unit of \c swr_t is 1.0 to the maximum value reported by the amplifier's
* internal antenna system tuner, i.e.
* <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a>,
* representing the ratio of 1.0:1 to Maximum:1.
*/
typedef float swr_t;
/**
* \typedef typedef float tune_value_t
* \brief Type definition for tuning values capacitance and resistance.
* \brief Type definition for the
* <a href="http://www.arrl.org/transmatch-antenna-tuner" >transmatch</a>
* tuning values of
* <a href="https://en.wikipedia.org/wiki/Capacitance" >capacitance</a>
* and
* <a href="https://en.wikipedia.org/wiki/Inductance" >inductance</a>.
*
* The tune_value_t type is used as a parameter for the amp_get_level()
* The \c tune_value_t type is used as a parameter for amp_get_level().
*
* Unless specified otherwise, the units of tune_value_t is pF and nH
* The unit of \c tune_value_t is
* <a href="https://en.wikipedia.org/wiki/Farad" >picoFarads (pF)</a>
* or
* <a href="https://en.wikipedia.org/wiki/Henry_(unit)" >nanoHenrys (nH)</a>.
*/
typedef int tune_value_t;
/**
* \brief Token in the netampctl protocol for returning error code
* \brief The token in the netampctl protocol for returning an error condition code.
*/
#define NETAMPCTL_RET "RPRT "
@ -86,9 +105,9 @@ typedef int tune_value_t;
//! @cond Doxygen_Suppress
typedef enum
{
AMP_RESET_MEM, // erase tuner memory
AMP_RESET_FAULT, // reset any fault
AMP_RESET_AMP // for kpa1500
AMP_RESET_MEM, // erase tuner memory
AMP_RESET_FAULT, // reset any fault
AMP_RESET_AMP // for kpa1500
} amp_reset_t;
//! @endcond
@ -103,27 +122,27 @@ typedef enum
//! @cond Doxygen_Suppress
// TBD AMP_TYPE
#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2)
#define AMP_TYPE_MASK (AMP_FLAG_1|AMP_FLAG_2)
#define AMP_TYPE_OTHER 0
#define AMP_TYPE_1 AMP_FLAG_1
#define AMP_TYPE_2 AMP_FLAG_2
#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2)
#define AMP_TYPE_ALL (AMP_FLAG_1|AMP_FLAG_2)
//! @endcond
//! @cond Doxygen_Suppress
enum amp_level_e
{
AMP_LEVEL_NONE = 0, /*!< '' -- No Level */
AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater */
AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting nanohenries */
AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting picofarads */
AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amp */
AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward */
AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse */
AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak */
AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code */
AMP_LEVEL_NONE = 0, /*!< '' -- No Level. */
AMP_LEVEL_SWR = (1 << 0), /*!< \c SWR 1.0 or greater. */
AMP_LEVEL_NH = (1 << 1), /*!< \c Tune setting in nanohenries. */
AMP_LEVEL_PF = (1 << 2), /*!< \c Tune setting in picofarads. */
AMP_LEVEL_PWR_INPUT = (1 << 3), /*!< \c Power reading from amplifier. */
AMP_LEVEL_PWR_FWD = (1 << 4), /*!< \c Power reading forward. */
AMP_LEVEL_PWR_REFLECTED = (1 << 5), /*!< \c Power reading reverse. */
AMP_LEVEL_PWR_PEAK = (1 << 6), /*!< \c Power reading peak. */
AMP_LEVEL_FAULT = (1 << 7) /*!< \c Fault code. */
};
//! @endcond
@ -139,36 +158,38 @@ enum amp_level_e
* enquiries about capabilities.
*/
/**
* Amplifier Caps
* \struct amp_caps
* \brief Amplifier data structure.
*
* The main idea of this struct is that it will be defined by the backend
* amplifier driver, and will remain readonly for the application. Fields that
* need to be modifiable by the application are copied into the struct
* amp_state, which is a kind of private of the AMP instance.
*
* This way, you can have several rigs running within the same application,
* sharing the struct amp_caps of the backend, while keeping their own
* customized data.
*
* mdblack98: Don't move fields around and add new fields at end of caps
* Shared libraries depend on constant structure to maintain compatibility
*/
//! @cond Doxygen_Suppress
#define AMP_MODEL(arg) .amp_model=arg,.macro_name=#arg
//! @endcond
/**
* \struct amp_caps
* \brief Amplifier capabilities
*
* The main idea of this struct is that it will be defined by the backend
* amplifier driver and will remain read-only for the application. Fields
* that need to be modifiable by the application are copied into the struct
* \c amp_state, which is the private memory area of the AMP instance.
*
* This way you can have several amplifiers running within the same
* application, sharing the struct \c amp_caps of the backend, while keeping
* their own customized data.
*
* \b Note: Don't move fields around and only add new fields at the end of the
* caps structure. Shared libraries depend on a constant structure to maintain
* compatibility.
*/
struct amp_caps
{
amp_model_t amp_model; /*!< Amplifier model. */
const char *model_name; /*!< Model name. */
const char *mfg_name; /*!< Manufacturer. */
amp_model_t amp_model; /*!< Amplifier model as defined in `amplist.h`. */
const char *model_name; /*!< Model name, e.g. MM-5k. */
const char *mfg_name; /*!< Manufacturer, e.g. Moonbeam. */
const char *version; /*!< Driver version. */
const char *copyright; /*!< Copyright info. */
const char *copyright; /*!< Copyright info (should be LGPL). */
enum rig_status_e status; /*!< Driver status. */
int amp_type; /*!< Amplifier type. */
enum rig_port_e port_type; /*!< Type of communication port. */
enum rig_port_e port_type; /*!< Type of communication port (serial, ethernet, etc.). */
int serial_rate_min; /*!< Minimal serial speed. */
int serial_rate_max; /*!< Maximal serial speed. */
@ -180,65 +201,65 @@ struct amp_caps
int write_delay; /*!< Write delay. */
int post_write_delay; /*!< Post-write delay. */
int timeout; /*!< Timeout. */
int retry; /*!< Number of retry if command fails. */
int retry; /*!< Number of retries if a command fails. */
const struct confparams *cfgparams; /*!< Configuration parametres. */
const struct confparams *cfgparams; /*!< Configuration parameters. */
const rig_ptr_t priv; /*!< Private data. */
const char *amp_model_macro_name; /*!< Model macro name */
const char *amp_model_macro_name; /*!< Model macro name. */
setting_t has_get_level;
setting_t has_set_level;
setting_t has_get_level; /*!< Has get_level capability. */
setting_t has_set_level; /*!< Has set_level capability. */
gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */
gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */
gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */
gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */
/*
* Amp Admin API
*
*/
int (*amp_init)(AMP *amp);
int (*amp_cleanup)(AMP *amp);
int (*amp_open)(AMP *amp);
int (*amp_close)(AMP *amp);
int (*amp_init)(AMP *amp); /*!< Initializes data structures and returns an #AMP handle--call before amp_open(). */
int (*amp_cleanup)(AMP *amp); /*!< Frees the data structures associated with the #AMP handle--call after amp_close(). */
int (*amp_open)(AMP *amp); /*!< Opens the communication channel to the amplifier. */
int (*amp_close)(AMP *amp); /*!< Closes the communication channel to the amplifier. */
int (*set_freq)(AMP *amp, freq_t val);
int (*get_freq)(AMP *amp, freq_t *val);
int (*set_freq)(AMP *amp, freq_t val); /*!< Set the frequency of the amplifier. */
int (*get_freq)(AMP *amp, freq_t *val); /*!< Query the frequency of the amplifier. */
int (*set_conf)(AMP *amp, token_t token, const char *val);
int (*get_conf)(AMP *amp, token_t token, char *val);
int (*set_conf)(AMP *amp, token_t token, const char *val); /*!< Set the configuration parameter \a val corresponding to the \a token. */
int (*get_conf)(AMP *amp, token_t token, char *val); /*!< Query the configuration parameter \a val corresponding to the \a token. */
/*
* General API commands, from most primitive to least.. :()
* List Set/Get functions pairs
*/
int (*reset)(AMP *amp, amp_reset_t reset);
int (*get_level)(AMP *amp, setting_t level, value_t *val);
int (*get_ext_level)(AMP *amp, token_t level, value_t *val);
int (*set_powerstat)(AMP *amp, powerstat_t status);
int (*get_powerstat)(AMP *amp, powerstat_t *status);
int (*reset)(AMP *amp, amp_reset_t reset); /*!< Reset the amplifier (careful!). */
int (*get_level)(AMP *amp, setting_t level, value_t *val); /*!< Query the \a val corresponding to the \a level. */
int (*get_ext_level)(AMP *amp, token_t level, value_t *val); /*!< Query the \a val corresponding to the extra \a level. */
int (*set_powerstat)(AMP *amp, powerstat_t status); /*!< Turn the amplifier On or Off or toggle the Standby or Operate status. */
int (*get_powerstat)(AMP *amp, powerstat_t *status); /*!< Query the power or standby status of the amplifier. */
/* get firmware info, etc. */
const char *(*get_info)(AMP *amp);
const char *(*get_info)(AMP *amp); /*!< Query available internal information of the amplifier (firmware version, etc.). */
//! @cond Doxygen_Suppress
setting_t levels;
unsigned ext_levels;
const struct confparams *extlevels;
const struct confparams *extparms;
//! @endcond
const struct confparams *extlevels; /*!< Extra levels structure. */
const struct confparams *extparms; /*!< Extra parameters structure. */
const char *macro_name; /*!< Macro name. */
};
//! @endcond
/**
* Amplifier state
* \struct amp_state
* \brief Live data and customized fields.
* \brief Amplifier state
*
* This struct contains live data, as well as a copy of capability fields
* This structure contains live data, as well as a copy of capability fields
* that may be updated (ie. customized)
*
* It is fine to move fields around, as this kind of struct should
@ -264,21 +285,21 @@ struct amp_state
//! @endcond
gran_t level_gran[RIG_SETTING_MAX]; /*!< level granularity */
gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */
gran_t parm_gran[RIG_SETTING_MAX]; /*!< level granularity */
};
/**
* Amplifier structure
* \struct amp
* \brief This is the master data structure,
* acting as a handle for the controlled amplifier.
* \brief Amplifier structure
*
* This is the master data structure, acting as a handle for the controlled
* amplifier. A pointer to this structure is returned by the amp_init() API
* function and is passed as a parameter to every amplifier specific API call.
* Master amplifier data structure acting as a handle for the
* controlled amplifier.
*
* \sa amp_init(), amp_caps(), amp_state()
* A pointer to this structure is returned by the amp_init() API function and
* is passed as a parameter to every amplifier specific API call.
*
* \sa amp_caps(), amp_state()
*/
struct amp
{
@ -406,12 +427,10 @@ extern HAMLIB_EXPORT(const char *) amp_strlevel(setting_t);
/**
* \def amp_debug
* \brief Convenience definition for debug level.
* \brief Convenience macro for generating debugging messages.
*
* This is just as convenience definition of the amplifier debug level,
* and is the same as for the rig debug level.
*
* \sa rig_debug()
* This is an alias of the rig_debug() function call and is used in the same
* manner.
*/
#define amp_debug rig_debug