Merge pull request #528 from N0NB/doxygen_work

Doxygen work
pull/532/head
Nate Bargmann 2021-02-06 07:25:06 -06:00 zatwierdzone przez GitHub
commit a7058ff76c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
5 zmienionych plików z 176 dodań i 767 usunięć

Wyświetl plik

@ -1,8 +1,30 @@
<!-- Footer for Doxygen HTML files -->
<hr>
<div class="doxy">Generated by&nbsp;<a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion</small></address></div>
<p style="font-size: 75%">Hamlib documentation for version $projectnumber -- $datetime<br />
Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br />
</p>
<!-- HTML footer for doxygen 1.9.1-->
<!-- start footer part -->
<!--BEGIN GENERATE_TREEVIEW-->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
$navpath
<li class="footer">$generatedby <a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion </li>
</ul>
</div>
<!--END GENERATE_TREEVIEW-->
<!--BEGIN !GENERATE_TREEVIEW-->
<hr class="footer"/>
<address class="footer">
<small>
$generatedby&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="$relpath^doxygen.svg" width="104" height="31" alt="doxygen"/></a> $doxygenversion
</small>
</address>
<!--END !GENERATE_TREEVIEW-->
<div id="hamlib" class="footer" >
<p class="alignleft">
Hamlib documentation for version $projectnumber&mdash;$datetime<br />
Project page: <a href="http://www.hamlib.org">http://www.hamlib.org</a><br />
</p>
<p class="alignright">
<a href="https://sourceforge.net/p/hamlib/"><img alt="Download Ham Radio Control Libraries" src="https://sourceforge.net/sflogo.php?type=13&group_id=8305" ></a>
</p>
</div>
<div style="clear: both;"></div>
</body>
</html>

Wyświetl plik

@ -1,7 +1,8 @@
## hamlib.cfg.in--converted into hamlib.cfg by configure
## hamlib.cfg.in--converted into hamlib.cfg by config.status
PROJECT_NAME = "Hamlib"
PROJECT_NAME = Hamlib
PROJECT_NUMBER = @VERSION@
PROJECT_LOGO = @top_srcdir@/doc/hamlib.png
# Output
OUTPUT_DIRECTORY= .
@ -14,31 +15,31 @@ GENERATE_MAN = NO # User can set to YES for local man pages
MAN_EXTENSION = .3
# Input
CASE_SENSE_NAMES = NO
FULL_PATH_NAMES = NO
INPUT = @top_srcdir@/doc/index.doxygen \
@top_srcdir@/src/ @top_srcdir@/include/hamlib/
CASE_SENSE_NAMES = YES
FULL_PATH_NAMES = NO
INPUT = @top_srcdir@/doc/index.doxygen \
@top_srcdir@/include/hamlib/ \
@top_srcdir@/src/
INCLUDE_PATH = @top_srcdir@/include
INCLUDE_PATH = @top_srcdir@/include
EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \
@top_srcdir@
EXAMPLE_PATH = @top_srcdir@/tests/testrig.c \
@top_srcdir@
QUIET = YES
QUIET = YES
HTML_STYLESHEET = @top_srcdir@/doc/hamlib.css
HTML_FOOTER = @top_srcdir@/doc/footer.html
HTML_FOOTER = @top_srcdir@/doc/footer.html
HTML_EXTRA_STYLESHEET = @top_srcdir@/doc/hamlib.css
EXTRACT_ALL = NO
EXTRACT_STATIC = NO
HIDE_UNDOC_MEMBERS = NO
SHOW_INCLUDE_FILES = YES
INHERIT_DOCS = YES
ENABLED_SECTIONS = ""
PREDEFINED = DOXYGEN "DOC_HIDDEN"
JAVADOC_AUTOBRIEF = NO
OPTIMIZE_OUTPUT_FOR_C = YES # doxygen 1.2.6 option
MAN_LINKS = NO
MACRO_EXPANSION = YES
EXTRACT_ALL = NO
EXTRACT_STATIC = NO
HIDE_UNDOC_MEMBERS = NO
SHOW_INCLUDE_FILES = YES
INHERIT_DOCS = YES
ENABLED_SECTIONS = ""
PREDEFINED = DOXYGEN "DOC_HIDDEN"
JAVADOC_AUTOBRIEF = NO
OPTIMIZE_OUTPUT_FOR_C = YES
MAN_LINKS = NO
MACRO_EXPANSION = YES

Wyświetl plik

@ -1,662 +1,29 @@
/* The standard CSS for doxygen */
/* Custom CSS for Hamlib used by the Doxygen generated HTML pages. */
body, table, div, p, dl {
font-family: sans-serif;
font-size: 100%;
}
/* Add padding around the Hamlib logo in the page header. */
/* @group Heading Levels */
h1 {
font-size: 2.5em;
}
h2 {
font-size: 1.875em;
}
h3 {
font-size: 1.20em;
}
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd, p.starttd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
p.endtd {
margin-bottom: 2px;
}
/* @end */
caption {
font-weight: bold;
}
span.legend {
font-size: 70%;
text-align: center;
}
h3.version {
font-size: 90%;
text-align: center;
}
div.qindex, div.navtab{
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
padding: 2px;
}
div.qindex, div.navpath {
width: 100%;
line-height: 140%;
}
div.navtab {
margin-right: 15px;
}
/* @group Link Styling */
a {
color: #3D578C;
font-weight: normal;
text-decoration: none;
}
.contents a:visited {
color: #4665A2;
}
a:hover {
text-decoration: none;
background-color: #f0f0fd;
}
a.qindex {
font-weight: bold;
}
a.qindexHL {
font-weight: bold;
background-color: #9CAFD4;
color: #ffffff;
border: 1px double #869DCA;
}
.contents a.qindexHL:visited {
color: #ffffff;
}
a.el {
font-weight: bold;
}
a.elRef {
}
a.code {
color: #4665A2;
}
a.codeRef {
color: #4665A2;
}
/* @end */
dl.el {
margin-left: -1cm;
}
.fragment {
font-family: monospace, fixed;
font-size: 105%;
}
pre.fragment {
border: 1px solid #C4CFE5;
background-color: #FBFCFD;
padding: 4px 6px;
margin: 4px 8px 4px 2px;
overflow: auto;
word-wrap: break-word;
font-size: 90%;
line-height: 125%;
}
div.ah {
background-color: black;
font-weight: bold;
color: #ffffff;
margin-bottom: 3px;
margin-top: 3px;
padding: 0.2em;
border: solid thin #333;
border-radius: 0.5em;
-webkit-border-radius: .5em;
-moz-border-radius: .5em;
-webkit-box-shadow: 2px 2px 3px #999;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
}
div.groupHeader {
margin-left: 16px;
margin-top: 12px;
margin-bottom: 6px;
font-weight: bold;
}
div.groupText {
margin-left: 16px;
font-style: italic;
}
body {
background: white;
color: black;
margin: 0;
}
div.contents {
margin-top: 10px;
margin-left: 10px;
margin-right: 10px;
}
td.indexkey {
background-color: #EBEFF6;
font-weight: bold;
border: 1px solid #C4CFE5;
margin: 2px 0px 2px 0;
padding: 2px 10px;
}
td.indexvalue {
background-color: #EBEFF6;
border: 1px solid #C4CFE5;
padding: 2px 10px;
margin: 2px 0px;
}
tr.memlist {
background-color: #EEF1F7;
}
p.formulaDsp {
text-align: center;
}
img.formulaDsp {
}
img.formulaInl {
vertical-align: middle;
}
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
address.footer {
text-align: right;
padding-right: 12px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */
span.keyword {
color: #008000
}
span.keywordtype {
color: #604020
}
span.keywordflow {
color: #e08000
}
span.comment {
color: #800000
}
span.preprocessor {
color: #806020
}
span.stringliteral {
color: #002080
}
span.charliteral {
color: #008080
}
span.vhdldigit {
color: #ff00ff
}
span.vhdlchar {
color: #000000
}
span.vhdlkeyword {
color: #700070
}
span.vhdllogic {
color: #ff0000
}
/* @end */
/*
.search {
color: #003399;
font-weight: bold;
}
form.search {
margin-bottom: 0px;
margin-top: 0px;
}
input.search {
font-size: 75%;
color: #000080;
font-weight: normal;
background-color: #e8eef2;
}
*/
td.tiny {
font-size: 75%;
}
.dirtab {
padding: 4px;
border-collapse: collapse;
border: 1px solid #A3B4D7;
}
th.dirtab {
background: #EBEFF6;
font-weight: bold;
}
hr {
height: 0px;
border: none;
border-top: 1px solid #4A6AAA;
}
hr.footer {
height: 1px;
}
/* @group Member Descriptions */
table.memberdecls {
border-spacing: 0px;
padding: 0px;
}
.mdescLeft, .mdescRight,
.memItemLeft, .memItemRight,
.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
background-color: #F9FAFC;
border: none;
margin: 4px;
padding: 1px 0 0 8px;
}
.mdescLeft, .mdescRight {
padding: 0px 8px 4px 8px;
color: #555;
}
.memItemLeft, .memItemRight, .memTemplParams {
border-top: 1px solid #C4CFE5;
}
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams {
color: #4665A2;
white-space: nowrap;
}
/* @end */
/* @group Member Details */
/* Styles for detailed member documentation */
.memtemplate {
font-size: 80%;
color: #4665A2;
font-weight: normal;
margin-left: 3px;
}
.memnav {
background-color: #EBEFF6;
border: 1px solid #A3B4D7;
text-align: center;
margin: 2px;
margin-right: 15px;
padding: 2px;
}
.memitem {
padding: 0;
margin-bottom: 10px;
}
.memname {
white-space: nowrap;
font-weight: bold;
margin-left: 6px;
}
.memproto {
border-top: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 6px 0px 6px 0px;
color: #253555;
font-weight: bold;
text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
/* firefox specific markup */
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
-moz-border-radius-topright: 8px;
-moz-border-radius-topleft: 8px;
/* webkit specific markup */
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-webkit-border-top-right-radius: 8px;
-webkit-border-top-left-radius: 8px;
background-image:url('nav_f.png');
background-repeat:repeat-x;
background-color: #E2E8F2;
}
.memdoc {
border-bottom: 1px solid #A8B8D9;
border-left: 1px solid #A8B8D9;
border-right: 1px solid #A8B8D9;
padding: 2px 5px;
background-color: #FBFCFD;
border-top-width: 0;
/* firefox specific markup */
-moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
background-image: -moz-linear-gradient(center top, #FFFFFF 0%, #FFFFFF 60%, #F7F8FB 95%, #EEF1F7);
/* webkit specific markup */
-webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
background-image: -webkit-gradient(linear,center top,center bottom,from(#FFFFFF), color-stop(0.6,#FFFFFF), color-stop(0.60,#FFFFFF), color-stop(0.95,#F7F8FB), to(#EEF1F7));
}
.paramkey {
text-align: right;
}
.paramtype {
white-space: nowrap;
}
.paramname {
color: #602020;
white-space: nowrap;
}
.paramname em {
font-style: normal;
}
/* @end */
/* @group Directory (tree) */
/* for the tree view */
.ftvtree {
font-family: sans-serif;
margin: 0px;
}
/* these are for tree view when used as main index */
.directory {
font-size: 9pt;
font-weight: bold;
margin: 5px;
}
.directory h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
/*
The following two styles can be used to replace the root node title
with an image of your choice. Simply uncomment the next two styles,
specify the name of your image and be sure to set 'height' to the
proper pixel height of your image.
*/
/*
.directory h3.swap {
height: 61px;
background-repeat: no-repeat;
background-image: url("yourimage.gif");
}
.directory h3.swap span {
display: none;
}
*/
.directory > h3 {
margin-top: 0;
}
.directory p {
margin: 0px;
white-space: nowrap;
}
.directory div {
display: none;
margin: 0px;
}
.directory img {
vertical-align: -30%;
}
/* these are for tree view when not used as main index */
.directory-alt {
font-size: 100%;
font-weight: bold;
}
.directory-alt h3 {
margin: 0px;
margin-top: 1em;
font-size: 11pt;
}
.directory-alt > h3 {
margin-top: 0;
}
.directory-alt p {
margin: 0px;
white-space: nowrap;
}
.directory-alt div {
display: none;
margin: 0px;
}
.directory-alt img {
vertical-align: -30%;
}
/* @end */
div.dynheader {
margin-top: 8px;
}
address {
font-style: normal;
color: #2A3D61;
}
table.doxtable {
border-collapse:collapse;
}
table.doxtable td, table.doxtable th {
border: 1px solid #2D4068;
padding: 3px 7px 2px;
}
table.doxtable th {
background-color: #374F7F;
color: #FFFFFF;
font-size: 110%;
padding-bottom: 4px;
padding-top: 5px;
text-align:left;
}
.tabsearch {
top: 0px;
left: 10px;
height: 36px;
background-image: url('tab_b.png');
z-index: 101;
overflow: hidden;
font-size: 13px;
}
.navpath ul
#projectlogo
{
font-size: 11px;
background-image:url('tab_b.png');
background-repeat:repeat-x;
height:30px;
line-height:30px;
color:#8AA0CC;
border:solid 1px #C2CDE4;
overflow:hidden;
margin:0px;
padding:0px;
padding-right: 0.85em;
padding-left: 0.8em;
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.navpath li
/* Align the Hamlib footer elements to the left and right and pad
* from the screen edge to align with other page padding. */
.footer p.alignleft
{
list-style-type:none;
float:left;
padding-left:10px;
padding-right: 15px;
background-image:url('bc_s.png');
background-repeat:no-repeat;
background-position:right;
color:#364D7C;
float: left;
font-size: 75%;
padding-left: 1.5em;
}
.navpath a
.footer p.alignright
{
height:32px;
display:block;
text-decoration: none;
outline: none;
}
.navpath a:hover
{
color:#6884BD;
}
div.summary
{
float: right;
font-size: 8pt;
padding-right: 5px;
width: 50%;
text-align: right;
}
div.summary a
{
white-space: nowrap;
}
div.header
{
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
margin: 0px;
border-bottom: 1px solid #C4CFE5;
}
div.headertitle
{
padding: 5px 5px 5px 10px;
}
div.doxy
{
float: right;
font-size: 75%;
float: right;
padding-right: 0.85em;
}

BIN
doc/hamlib.png 100644

Plik binarny nie jest wyświetlany.

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 2.2 KiB

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