[Hamlib-commits] Hamlib -- Ham radio control libraries branch master updated. 7cceee9abad13888f5705
Library to control radio transceivers and receivers
Brought to you by:
n0nb
|
From: n0nb <n0...@us...> - 2025-07-27 03:36:39
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Hamlib -- Ham radio control libraries".
The branch, master has been updated
via 7cceee9abad13888f5705feef5330904eb06bf31 (commit)
via 4d6a3ed582b89c3968a9892c607f54da41b97604 (commit)
via f67a3cfe4722728335fb11a5939b6233a8cbec44 (commit)
via d2025477be1e5181980fddf9a05bf5ca86d5d4bd (commit)
via d6d50245c697cb806f1a46fabc41f329aa25a321 (commit)
via 15c5b4d7719ae9dcc6887a8aa788213c8ac97846 (commit)
from 04c00330a6265680c2a78dbf88e9274eae1f02da (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7cceee9abad13888f5705feef5330904eb06bf31
Author: Nate Bargmann <n0...@n0...>
Date: Sat Jul 26 18:32:34 2025 -0500
Complete Doxygen comments for rotlist.h
Add new topic for rotator model list.
diff --git a/doc/index.doxygen b/doc/index.doxygen
index 46f7f73ba..7fb7a9ebb 100644
--- a/doc/index.doxygen
+++ b/doc/index.doxygen
@@ -193,9 +193,10 @@ GNU/Linux.
* \defgroup riglist Rig (radio) Model List
* \defgroup rig_internal Rig (transceiver) Internal API
* \defgroup rotator Rotator API
+ * \defgroup rotlist Rotator Model List
* \defgroup rot_internal Rotator Internal API
* \defgroup amplifier Amplifier API
- * \defgroup amplist Amplifier model list
+ * \defgroup amplist Amplifier Model list
* \defgroup amp_internal Amplifier Internal API
* \defgroup port Port data structure for accessing devices
* \defgroup utilities Utility Routines API
diff --git a/include/hamlib/rotlist.h b/include/hamlib/rotlist.h
index 567aa59e6..e50fdc46d 100644
--- a/include/hamlib/rotlist.h
+++ b/include/hamlib/rotlist.h
@@ -24,17 +24,12 @@
#ifndef _ROTLIST_H
#define _ROTLIST_H 1
-//! @cond Doxygen_Suppress
-#define ROT_MAKE_MODEL(a,b) (100*(a)+(b))
-#define ROT_BACKEND_NUM(a) ((a)/100)
-//! @endcond
-
-
/**
- * \addtogroup rotator
+ * \addtogroup rotlist
* @{
*/
+
/**
* \brief Hamlib rotator model definitions.
*
@@ -54,6 +49,27 @@
* wishes to use which is passed to the rot_init() API call.
*/
+/**
+ * \brief The rotator model number is held in a signed integer.
+ *
+ * Model numbers are a simple decimal value that increments by a value of
+ * 100 for each backend, e.g. the `DUMMY` backend has model numbers 1
+ * to 100, the `EASYCOMM` backend has model numbers 201 to 300 and so on
+ * (101 to 200 is currently unassigned).
+ *
+ * \note A limitation is that with ::rot_model_t being a signed integer that on
+ * some systems such a value may be 16 bits. This limits the number of backends
+ * to 326 of 100 models each (32768 / 100 thus leaving only 68 models for
+ * backend number 327 so round down to 326). So far this doesn't seem like an
+ * extreme limitation.
+ *
+ * \sa rot_model_t
+ */
+#define ROT_MAKE_MODEL(a,b) (100*(a)+(b))
+
+/** Convenience macro to derive the backend family number from the model number. */
+#define ROT_BACKEND_NUM(a) ((a)/100)
+
/**
* \brief A macro that returns the model number for an unknown model.
*
@@ -65,56 +81,62 @@
#define ROT_MODEL_NONE 0
+/** The `DUMMY` family. Also contains network models. */
+#define ROT_DUMMY 0
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_DUMMY "dummy"
+
/**
- * \brief A macro that returns the model number for the DUMMY backend.
+ * \brief A macro that returns the model number for `DUMMY`.
*
* \def ROT_MODEL_DUMMY
*
- * The DUMMY backend, as the name suggests, is a backend which performs
+ * The `DUMMY` model, as the name suggests, is a backend which performs
* no hardware operations and always behaves as one would expect. It can
* be thought of as a hardware simulator and is very useful for testing
* client applications.
*/
/**
- * \brief A macro that returns the model number for the NETROTCTL backend.
+ * \brief A macro that returns the model number for `NETROTCTL`.
*
* \def ROT_MODEL_NETROTCTL
*
- * The NETROTCTL backend allows use of the `rotctld` daemon through the normal
+ * The `NETROTCTL` model allows use of the `rotctld` daemon through the normal
* Hamlib API.
*/
/**
- * \brief A macro that returns the model number for the PSTROTATOR backend.
+ * \brief A macro that returns the model number for `PSTROTATOR`.
*
* \def ROT_MODEL_PSTROTATOR
*
- * The PSTROTATOR backend allows Hamlib clients to access the rotators controlled
+ * The `PSTROTATOR` model allows Hamlib clients to access the rotators controlled
* by the PstRotator software by YO3DMU: https://www.qsl.net/yo3dmu/index_Page346.htm
*/
/**
- * \brief A macro that returns the model number for the SATROTCTL backend.
+ * \brief A macro that returns the model number for `SATROTCTL`.
*
* \def ROT_MODEL_SATROTCTL
*
- * The SATROTCTL allows Hamlib clients to access the rotators controlled by
+ * The `SATROTCTL` model allows Hamlib clients to access the rotators controlled by
* the S.A.T hardware by CSN Tecnologies: http://csntechnologies.net/
*/
-//! @cond Doxygen_Suppress
-#define ROT_DUMMY 0
-#define ROT_BACKEND_DUMMY "dummy"
-//! @endcond
#define ROT_MODEL_DUMMY ROT_MAKE_MODEL(ROT_DUMMY, 1)
#define ROT_MODEL_NETROTCTL ROT_MAKE_MODEL(ROT_DUMMY, 2)
#define ROT_MODEL_PSTROTATOR ROT_MAKE_MODEL(ROT_DUMMY, 3)
#define ROT_MODEL_SATROTCTL ROT_MAKE_MODEL(ROT_DUMMY, 4)
+/** The `EASYCOMM` family. */
+#define ROT_EASYCOMM 2
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_EASYCOMM "easycomm"
+
/**
- * \brief A macro that returns the model number of the EASYCOMM 1 backend.
+ * \brief A macro that returns the model number of `EASYCOMM1`.
*
* \def ROT_MODEL_EASYCOMM1
*
- * The EASYCOMM1 backend can be used with rotators that support the EASYCOMM
+ * The `EASYCOMM1` model can be used with rotators that support the EASYCOMM
* I Standard.
*/
/**
@@ -122,7 +144,7 @@
*
* \def ROT_MODEL_EASYCOMM2
*
- * The EASYCOMM2 backend can be used with rotators that support the EASYCOMM
+ * The EASYCOMM2 model can be used with rotators that support the EASYCOMM
* II Standard.
*/
/**
@@ -130,84 +152,82 @@
*
* \def ROT_MODEL_EASYCOMM3
*
- * The EASYCOMM3 backend can be used with rotators that support the EASYCOMM
+ * The EASYCOMM3 model can be used with rotators that support the EASYCOMM
* III Standard.
*/
-//! @cond Doxygen_Suppress
-#define ROT_EASYCOMM 2
-#define ROT_BACKEND_EASYCOMM "easycomm"
-//! @endcond
#define ROT_MODEL_EASYCOMM1 ROT_MAKE_MODEL(ROT_EASYCOMM, 1)
#define ROT_MODEL_EASYCOMM2 ROT_MAKE_MODEL(ROT_EASYCOMM, 2)
#define ROT_MODEL_EASYCOMM3 ROT_MAKE_MODEL(ROT_EASYCOMM, 4)
+/** The `FODTRACK` family. */
+#define ROT_FODTRACK 3
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_FODTRACK "fodtrack"
+
/**
- * \brief A macro that returns the model number of the FODTRACK backend.
+ * \brief A macro that returns the model number of `FODTRACK`.
*
* \def ROT_MODEL_FODTRACK
*
- * The FODTRACK backend can be used with rotators that support the FODTRACK
+ * The `FODTRACK model` can be used with rotators that support the FODTRACK
* Standard.
*/
-//! @cond Doxygen_Suppress
-#define ROT_FODTRACK 3
-#define ROT_BACKEND_FODTRACK "fodtrack"
-//! @endcond
#define ROT_MODEL_FODTRACK ROT_MAKE_MODEL(ROT_FODTRACK, 1)
+/** The `ROTOREZ` family. */
+#define ROT_ROTOREZ 4
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_ROTOREZ "rotorez"
+
/**
- * \brief A macro that returns the model number of the ROTOREZ backend.
+ * \brief A macro that returns the model number of `ROTOREZ`.
*
* \def ROT_MODEL_ROTOREZ
*
- * The ROTOREZ backend can be used with Hy-Gain rotators that support the
+ * The `ROTOREZ` model can be used with Hy-Gain rotators that support the
* extended DCU command set by the Idiom Press Rotor-EZ board.
*/
/**
- * \brief A macro that returns the model number of the ROTORCARD backend.
+ * \brief A macro that returns the model number of `ROTORCARD`.
*
* \def ROT_MODEL_ROTORCARD
*
- * The ROTORCARD backend can be used with Yaesu rotators that support the
+ * The `ROTORCARD` model can be used with Yaesu rotators that support the
* extended DCU command set by the Idiom Press Rotor Card board.
*/
/**
- * \brief A macro that returns the model number of the DCU backend.
+ * \brief A macro that returns the model number of `DCU`.
*
* \def ROT_MODEL_DCU
*
- * The DCU backend can be used with rotators that support the DCU command set
+ * The `DCU` model can be used with rotators that support the DCU command set
* by Hy-Gain (currently the DCU-1).
*/
/**
- * \brief A macro that returns the model number of the ERC backend.
+ * \brief A macro that returns the model number of `ERC`.
*
* \def ROT_MODEL_ERC
*
- * The ERC backend can be used with rotators that support the DCU command set
+ * The `ERC` model can be used with rotators that support the DCU command set
* by DF9GR (currently the ERC).
*/
/**
- * \brief A macro that returns the model number of the RT21 backend.
+ * \brief A macro that returns the model number of `RT21`.
*
* \def ROT_MODEL_RT21
*
- * The RT21 backend can be used with rotators that support the DCU command set
+ * The `RT21` model can be used with rotators that support the DCU command set
* by Green Heron (currently the RT-21).
*/
/**
- * \brief A macro that returns the model number of the YRC-1 backend.
+ * \brief A macro that returns the model number of `YRC-1`.
*
* \def ROT_MODEL_YRC1
*
- * The YRC1 backend can be used with rotators that support the DCU 2/3 command set
+ * The `YRC1` model can be used with rotators that support the DCU 2/3 command set
*/
-//! @cond Doxygen_Suppress
-#define ROT_ROTOREZ 4
-#define ROT_BACKEND_ROTOREZ "rotorez"
-//! @endcond
#define ROT_MODEL_ROTOREZ ROT_MAKE_MODEL(ROT_ROTOREZ, 1)
#define ROT_MODEL_ROTORCARD ROT_MAKE_MODEL(ROT_ROTOREZ, 2)
#define ROT_MODEL_DCU ROT_MAKE_MODEL(ROT_ROTOREZ, 3)
@@ -217,135 +237,139 @@
#define ROT_MODEL_RT21 ROT_MAKE_MODEL(ROT_ROTOREZ, 5)
+/** The `SARTEK` family. */
+#define ROT_SARTEK 5
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_SARTEK "sartek"
+
/**
- * \brief A macro that returns the model number of the SARTEK1 backend.
+ * \brief A macro that returns the model number of `SARTEK1`.
*
* \def ROT_MODEL_SARTEK1
*
- * The SARTEK1 backend can be used with rotators that support the SARtek
+ * The `SARTEK1` model can be used with rotators that support the SARtek
* protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_SARTEK 5
-#define ROT_BACKEND_SARTEK "sartek"
-//! @endcond
#define ROT_MODEL_SARTEK1 ROT_MAKE_MODEL(ROT_SARTEK, 1)
+/** The `GS232A` family. */
+#define ROT_GS232A 6
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_GS232A "gs232a"
+
/**
- * \brief A macro that returns the model number of the GS232A backend.
+ * \brief A macro that returns the model number of `GS232A`.
*
* \def ROT_MODEL_GS232A
*
- * The GS232A backend can be used with rotators that support the GS-232A
+ * The `GS232A` model can be used with rotators that support the GS-232A
* protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232 backend.
+ * \brief A macro that returns the model number of `GS232_GENERIC`.
*
* \def ROT_MODEL_GS232_GENERIC
*
- * The GS232_GENERIC backend can be used with rotators that support the
+ * The` GS232_GENERIC` model can be used with rotators that support the
* generic (even if not coded correctly) GS-232 protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232 backend.
- *
- * \def ROT_MODEL_AF6SA_WRC
- *
- * The GS232_GENERIC backend can be used with rotators that support the
- * generic (even if not coded correctly) GS-232 protocol.
- */
-/**
- * \brief A macro that returns the model number of the GS232B backend.
+ * \brief A macro that returns the model number of `GS232B`.
*
* \def ROT_MODEL_GS232B
*
- * The GS232B backend can be used with rotators that support the GS232B
+ * The `GS232B` model can be used with rotators that support the GS232B
* protocol.
*/
/**
- * \brief A macro that returns the model number of the F1TETRACKER backend.
+ * \brief A macro that returns the model number of `F1TETRACKER`.
*
* \def ROT_MODEL_F1TETRACKER
*
- * The F1TETRACKER backend can be used with rotators that support the F1TE
+ * The `F1TETRACKER` model can be used with rotators that support the F1TE
* Tracker protocol.
*/
/**
- * \brief A macro that returns the model number of the GS23 backend.
+ * \brief A macro that returns the model number of `GS23`.
*
* \def ROT_MODEL_GS23
*
- * The GS23 backend can be used with rotators that support the GS-23 protocol.
+ * The `GS23` model can be used with rotators that support the GS-23 protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232 backend.
+ * \brief A macro that returns the model number of `GS232`.
*
* \def ROT_MODEL_GS232
*
- * The GS232 backend can be used with rotators that support the GS-232
+ * The `GS232` model can be used with rotators that support the GS-232
* protocol.
*/
/**
- * \brief A macro that returns the model number of the LVB backend.
+ * \brief A macro that returns the model number of `LVB`.
*
* \def ROT_MODEL_LVB
*
- * The LVB backend can be used with rotators that support the G6LVB AMSAT LVB
+ * The `LVB` model can be used with rotators that support the G6LVB AMSAT LVB
* Tracker GS-232 based protocol.
*/
/**
- * \brief A macro that returns the model number of the ST2 backend.
+ * \brief A macro that returns the model number of `ST2`.
*
* \def ROT_MODEL_ST2
*
- * The ST2 backend can be used with rotators that support the Fox Delta ST2
+ * The `ST2` model can be used with rotators that support the Fox Delta ST2
* GS-232 based protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232A_AZ Azimuth backend.
+ * \brief A macro that returns the model number of `GS232A_AZ` Azimuth.
*
* \def ROT_MODEL_GS232A_AZ
*
- * The GS232A_AZ backend can be used with azimuth rotators that support the
+ * The `GS232A_AZ` model can be used with azimuth rotators that support the
* GS-232A protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232A_EL Elevation backend.
+ * \brief A macro that returns the model number of `GS232A_EL` Elevation.
*
* \def ROT_MODEL_GS232A_EL
*
- * The GS232A_EL backend can be used with elevation rotators that support the
+ * The `GS232A_EL` model can be used with elevation rotators that support the
* GS-232A protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232B_AZ Azimuth backend.
+ * \brief A macro that returns the model number of ` GS232B_AZ` Azimuth.
*
* \def ROT_MODEL_GS232B_AZ
*
- * The GS232B_AZ backend can be used with azimuth rotators that support the
+ * The `GS232B_AZ` model can be used with azimuth rotators that support the
* GS-232B protocol.
*/
/**
- * \brief A macro that returns the model number of the GS232B_EL Elevation backend.
+ * \brief A macro that returns the model number of `GS232B_EL` Elevation.
*
* \def ROT_MODEL_GS232B_EL
*
- * The GS232B_EL backend can be used with elevation rotators that support the
+ * The `GS232B_EL` model can be used with elevation rotators that support the
* GS-232B protocol.
*/
/**
- * \brief A macro that returns the model number of the GS23_AZ azimuth backend.
+ * \brief A macro that returns the model number of `GS23_AZ` azimuth.
*
* \def ROT_MODEL_GS23_AZ
*
- * The GS23_AZ backend can be used with azimuth rotators that support a
+ * The `GS23_AZ` model can be used with azimuth rotators that support a
* generic version of the GS-232A protocol.
*/
+/**
+ * \brief A macro that returns the model number of `AF6SA_WRC`.
+ *
+ * \def ROT_MODEL_AF6SA_WRC
+ *
+ * The `AF6SA_WRC` model can be used with the AF6SA controller.
+ * http://af6sa.com/projects/wrc.html
+ */
//! @cond Doxygen_Suppress
-#define ROT_GS232A 6
-#define ROT_BACKEND_GS232A "gs232a"
//! @endcond
#define ROT_MODEL_GS232A ROT_MAKE_MODEL(ROT_GS232A, 1)
#define ROT_MODEL_GS232_GENERIC ROT_MAKE_MODEL(ROT_GS232A, 2) /* GENERIC */
@@ -362,327 +386,348 @@
#define ROT_MODEL_GS23_AZ ROT_MAKE_MODEL(ROT_GS232A, 13)
#define ROT_MODEL_AF6SA_WRC ROT_MAKE_MODEL(ROT_GS232A, 14)
-// Add documentation when this model is implemented.
//! @cond Doxygen_Suppress
-#define ROT_ARRAYSOLUTIONS 7
+/** The `ARRAYSOLUTIONS` family. */
+#define ROT_ARRAYSOLUTIONS 327 // Adjust value when implemented.
+/** Used in register.c for the `be_name`. */
#define ROT_BACKEND ARRAYSOLUTIONS "arraysolutions"
+// Add documentation when this model is implemented.
#define ROT_MODEL_ARRAYSOLUTIONS_SAL_12_20_30 ROT_MAKE_MODEL(ROT_ARRAYSOLUTIONS, 1)
//! @endcond
+/** The `KIT` family. */
+#define ROT_KIT 7
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_KIT "kit"
+
/**
- * \brief A macro that returns the model number of the PCROTOR backend.
+ * \brief A macro that returns the model number of `PCROTOR`.
*
* \def ROT_MODEL_PCROTOR
*
- * The PCROTOR backend is a member of the kit backend group that can be used
+ * The `PCROTOR` model is a member of the kit backend group that can be used
* with home brewed rotators.
*/
-//! @cond Doxygen_Suppress
-#define ROT_KIT 7
-#define ROT_BACKEND_KIT "kit"
-//! @endcond
#define ROT_MODEL_PCROTOR ROT_MAKE_MODEL(ROT_KIT, 1)
+/** The `HEATHKIT` family. */
+#define ROT_HEATHKIT 8
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_HEATHKIT "heathkit"
+
/**
- * \brief A macro that returns the model number of the HD1780 backend.
+ * \brief A macro that returns the model number of `HD1780`.
*
* \def ROT_MODEL_HD1780
*
- * The HD1780 backend can be used with rotators that support the Heathkit
+ * The `HD1780` model can be used with rotators that support the Heathkit
* HD-1780 protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_HEATHKIT 8
-#define ROT_BACKEND_HEATHKIT "heathkit"
-//! @endcond
#define ROT_MODEL_HD1780 ROT_MAKE_MODEL(ROT_HEATHKIT, 1)
+/** The `SPID` family. */
+#define ROT_SPID 9
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_SPID "spid"
+
/**
- * \brief A macro that returns the model number of the ROT2PROG backend.
+ * \brief A macro that returns the model number of `ROT2PROG`.
*
* \def ROT_MODEL_SPID_ROT2PROG
*
- * The SPID_ROT2PROG backend can be used with rotators that support the SPID
+ * The `SPID_ROT2PROG` model can be used with rotators that support the SPID
* azimuth and elevation protocol.
*/
/**
- * \brief A macro that returns the model number of the ROT1PROG backend.
+ * \brief A macro that returns the model number of `ROT1PROG`.
*
* \def ROT_MODEL_SPID_ROT1PROG
*
- * The SPID_ROT1PROG backend can be used with rotators that support the SPID
+ * The `SPID_ROT1PROG` model can be used with rotators that support the SPID
* azimuth protocol.
*/
/**
- * \brief A macro that returns the model number of the SPID_MD01_ROT2PROG backend.
+ * \brief A macro that returns the model number of `SPID_MD01_ROT2PROG`.
*
* \def ROT_MODEL_SPID_MD01_ROT2PROG
*
- * The SPID_MD01_ROT2PROG backend can be used with rotators that support the
+ * The `SPID_MD01_ROT2PROG` model can be used with rotators that support the
* extended SPID ROT2PROG azimuth and elevation protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_SPID 9
-#define ROT_BACKEND_SPID "spid"
-//! @endcond
#define ROT_MODEL_SPID_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 1)
#define ROT_MODEL_SPID_ROT1PROG ROT_MAKE_MODEL(ROT_SPID, 2)
#define ROT_MODEL_SPID_MD01_ROT2PROG ROT_MAKE_MODEL(ROT_SPID, 3)
+/** The `M2` family. */
+#define ROT_M2 10
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_M2 "m2"
+
/**
- * \brief A macro that returns the model number of the RC2800 backend.
+ * \brief A macro that returns the model number of `RC2800`.
*
* \def ROT_MODEL_RC2800
*
- * The RC2800 backend can be used with rotators that support the M2 (M
+ * The `RC2800` model can be used with rotators that support the M2 (M
* Squared) RC2800 protocol.
*/
/**
- * \brief A macro that returns the model number of the RC2800_EARLY_AZ
- * backend.
+ * \brief A macro that returns the model number of `RC2800_EARLY_AZ`.
*
* \def ROT_MODEL_RC2800_EARLY_AZ
*
- * The RC2800_EARLY_AZ backend can be used with rotators that support the M2
+ * The `RC2800_EARLY_AZ` model can be used with rotators that support the M2
* (M Squared) RC2800 early azimuth protocol.
*/
/**
- * \brief A macro that returns the model number of the RC2800_EARLY_AZEL
- * backend.
+ * \brief A macro that returns the model number of `RC2800_EARLY_AZEL`.
*
* \def ROT_MODEL_RC2800_EARLY_AZEL
*
- * The RC2800_EARLY_AZEL backend can be used with rotators that support the M2
+ * The `RC2800_EARLY_AZEL` model can be used with rotators that support the M2
* (M Squared) RC2800 early azimuth and elevation protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_M2 10
-#define ROT_BACKEND_M2 "m2"
-//! @endcond
#define ROT_MODEL_RC2800 ROT_MAKE_MODEL(ROT_M2, 1)
#define ROT_MODEL_RC2800_EARLY_AZ ROT_MAKE_MODEL(ROT_M2, 2)
#define ROT_MODEL_RC2800_EARLY_AZEL ROT_MAKE_MODEL(ROT_M2, 3)
+/** The `ARS` family. */
+#define ROT_ARS 11
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_ARS "ars"
+
/**
- * \brief A macro that returns the model number of the RCI_AZEL backend.
+ * \brief A macro that returns the model number of `RCI_AZEL`.
*
* \def ROT_MODEL_RCI_AZEL
*
- * The RCI_AZEL backend can be used with rotators that support the ARS azimuth
+ * The `RCI_AZEL` model can be used with rotators that support the ARS azimuth
* and elevation protocol.
*/
/**
- * \brief A macro that returns the model number of the RCI_AZ backend.
+ * \brief A macro that returns the model number of `RCI_AZ`.
*
* \def ROT_MODEL_RCI_AZ
*
- * The RCI_AZ backend can be used with rotators that support the ARS azimuth
+ * The `RCI_AZ` model can be used with rotators that support the ARS azimuth
* protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_ARS 11
-#define ROT_BACKEND_ARS "ars"
-//! @endcond
#define ROT_MODEL_RCI_AZEL ROT_MAKE_MODEL(ROT_ARS, 1)
#define ROT_MODEL_RCI_AZ ROT_MAKE_MODEL(ROT_ARS, 2)
+/** The `AMSAT` family. */
+#define ROT_AMSAT 12
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_AMSAT "amsat"
+
/**
- * \brief A macro that returns the model number of the IF100 backend.
+ * \brief A macro that returns the model number of `IF100`.
*
* \def ROT_MODEL_IF100
*
- * The IF100 backend can be used with rotators that support the AMSAT IF-100
+ * The `IF100` model can be used with rotators that support the AMSAT IF-100
* interface.
*/
-//! @cond Doxygen_Suppress
-#define ROT_AMSAT 12
-#define ROT_BACKEND_AMSAT "amsat"
-//! @endcond
#define ROT_MODEL_IF100 ROT_MAKE_MODEL(ROT_AMSAT, 1)
+/** The `TS7400` family. */
+#define ROT_TS7400 13
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_TS7400 "ts7400"
+
/**
- * \brief A macro that returns the model number of the TS7400 backend.
+ * \brief A macro that returns the model number of `TS7400`.
*
* \def ROT_MODEL_TS7400
*
- * The TS7400 backend supports an embedded ARM board using the TS-7400 Linux
+ * The `TS7400` model supports an embedded ARM board using the TS-7400 Linux
* board. More information is at https://www.embeddedarm.com
*/
-//! @cond Doxygen_Suppress
-#define ROT_TS7400 13
-#define ROT_BACKEND_TS7400 "ts7400"
-//! @endcond
#define ROT_MODEL_TS7400 ROT_MAKE_MODEL(ROT_TS7400, 1)
+/** The `CELESTRON` family. */
+#define ROT_CELESTRON 14
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_CELESTRON "celestron"
+
/**
- * \brief A macro that returns the model number of the NEXSTAR backend.
+ * \brief A macro that returns the model number of `NEXSTAR`.
*
* \def ROT_MODEL_NEXSTAR
*
- * The NEXSTAR backend can be used with rotators that support the Celestron
+ * The `NEXSTAR` model can be used with rotators that support the Celestron
* NexStar protocol and alike.
*/
-//! @cond Doxygen_Suppress
-#define ROT_CELESTRON 14
-#define ROT_BACKEND_CELESTRON "celestron"
-//! @endcond
#define ROT_MODEL_NEXSTAR ROT_MAKE_MODEL(ROT_CELESTRON, 1)
+/** The `ETHER6` family. */
+#define ROT_ETHER6 15
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_ETHER6 "ether6"
+
/**
- * \brief A macro that returns the model number of the ETHER6 backend.
+ * \brief A macro that returns the model number of `ETHER6`.
*
* \def ROT_MODEL_ETHER6
*
- * The ETHER6 backend can be used with rotators that support the Ether6
+ * The `ETHER6` model can be used with rotators that support the Ether6
* protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_ETHER6 15
-#define ROT_BACKEND_ETHER6 "ether6"
-//! @endcond
#define ROT_MODEL_ETHER6 ROT_MAKE_MODEL(ROT_ETHER6, 1)
+/** The `CNCTRK` family. */
+#define ROT_CNCTRK 16
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_CNCTRK "cnctrk"
+
/**
- * \brief A macro that returns the model number of the CNCTRK backend.
+ * \brief A macro that returns the model number of `CNCTRK`.
*
* \def ROT_MODEL_CNCTRK
*
- * The CNCTRK backend can be used with rotators that support the LinuxCNC
+ * The `CNCTRK` model can be used with rotators that support the LinuxCNC
* running Axis GUI interface.
*/
-//! @cond Doxygen_Suppress
-#define ROT_CNCTRK 16
-#define ROT_BACKEND_CNCTRK "cnctrk"
-//! @endcond
#define ROT_MODEL_CNCTRK ROT_MAKE_MODEL(ROT_CNCTRK, 1)
+/** The `PROSISTEL` family. */
+#define ROT_PROSISTEL 17
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_PROSISTEL "prosistel"
+
/**
- * \brief A macro that returns the model number of the PROSISTEL_D_AZ backend.
+ * \brief A macro that returns the model number of `PROSISTEL_D_AZ`.
*
* \def ROT_MODEL_PROSISTEL_D_AZ
*
- * The PROSISTEL_D_AZ backend can be used with rotators that support the Prosistel
+ * The `PROSISTEL_D_AZ` model can be used with rotators that support the Prosistel
* azimuth protocol.
*/
/**
- * \brief A macro that returns the model number of the PROSISTEL_D_EL backend.
+ * \brief A macro that returns the model number of `PROSISTEL_D_EL`.
*
* \def ROT_MODEL_PROSISTEL_D_EL
*
- * The PROSISTEL_D_EL backend can be used with rotators that support the Prosistel
+ * The `PROSISTEL_D_EL` model can be used with rotators that support the Prosistel
* elevation protocol.
*/
/**
- * \brief A macro that returns the model number of the
- * PROSISTEL_COMBI_TRACK_AZEL backend.
+ * \brief A macro that returns the model number of `PROSISTEL_COMBI_TRACK_AZEL`.
*
* \def ROT_MODEL_PROSISTEL_COMBI_TRACK_AZEL
*
- * The PROSISTEL_AZEL_COMBI_TRACK_AZEL backend can be used with rotators that
+ * The `PROSISTEL_AZEL_COMBI_TRACK_AZEL` model can be used with rotators that
* support the Prosistel combination azimuth and elevation protocol.
*/
/**
- * \brief A macro that returns the model number of the PROSISTEL_D_EL_CBOXAZ
- * backend.
+ * \brief A macro that returns the model number of `PROSISTEL_D_EL_CBOXAZ`.
*
* \def ROT_MODEL_PROSISTEL_D_EL_CBOXAZ
*
- * The PROSISTEL_D_EL_CBOXAZ backend can be used with the elevation rotator
+ * The `PROSISTEL_D_EL_CBOXAZ` model can be used with the elevation rotator
* with Control Box D using azimuth logic.
*/
-//! @cond Doxygen_Suppress
-#define ROT_PROSISTEL 17
-#define ROT_BACKEND_PROSISTEL "prosistel"
-//! @endcond
#define ROT_MODEL_PROSISTEL_D_AZ ROT_MAKE_MODEL(ROT_PROSISTEL, 1)
#define ROT_MODEL_PROSISTEL_D_EL ROT_MAKE_MODEL(ROT_PROSISTEL, 2)
#define ROT_MODEL_PROSISTEL_COMBI_TRACK_AZEL ROT_MAKE_MODEL(ROT_PROSISTEL, 3)
#define ROT_MODEL_PROSISTEL_D_EL_CBOXAZ ROT_MAKE_MODEL(ROT_PROSISTEL, 4)
+/** The `MEADE` family. */
+#define ROT_MEADE 18
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_MEADE "meade"
+
/**
- * \brief A macro that returns the model number of the MEADE backend.
+ * \brief A macro that returns the model number of `MEADE`.
*
* \def ROT_MODEL_MEADE
*
- * The MEADE backend can be used with Meade telescope rotators like the
+ * The `MEADE` model can be used with Meade telescope rotators like the
* DS-2000.
*/
-//! @cond Doxygen_Suppress
-#define ROT_MEADE 18
-#define ROT_BACKEND_MEADE "meade"
-//! @endcond
#define ROT_MODEL_MEADE ROT_MAKE_MODEL(ROT_MEADE, 1)
+
+/** The `IOPTRON` family. */
+#define ROT_IOPTRON 19
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_IOPTRON "ioptron"
+
/**
- * \brief A macro that returns the model number of the IOPTRON backend.
+ * \brief A macro that returns the model number of `IOPTRON`.
*
* \def ROT_MODEL_IOPTRON
*
- * The IOPTRON backend can be used with IOPTRON telescope mounts.
+ * The `IOPTRON` model can be used with IOPTRON telescope mounts.
*/
-//! @cond Doxygen_Suppress
-#define ROT_IOPTRON 19
-#define ROT_BACKEND_IOPTRON "ioptron"
-//! @endcond
#define ROT_MODEL_IOPTRON ROT_MAKE_MODEL(ROT_IOPTRON, 1)
+/** The `INDI` family. */
+#define ROT_INDI 20
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_INDI "indi"
+
/**
- * \brief A macro that returns the model number of the INDI backend.
+ * \brief A macro that returns the model number of `INDI`.
*
* \def ROT_MODEL_INDI
*
- * The INDI backend can be used with rotators that support the INDI interface.
+ * The `INDI` model can be used with rotators that support the INDI interface.
*/
-//! @cond Doxygen_Suppress
-#define ROT_INDI 20
-#define ROT_BACKEND_INDI "indi"
-//! @endcond
#define ROT_MODEL_INDI ROT_MAKE_MODEL(ROT_INDI, 1)
+/** The `SATEL` family. */
+#define ROT_SATEL 21
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_SATEL "satel"
+
/**
- * \brief A macro that returns the model number of the SATEL backend.
+ * \brief A macro that returns the model number of `SATEL`.
*
* \def ROT_MODEL_SATEL
*
- * The SATEL backend can be used with rotators that support the VE5FP
+ * The `SATEL` model can be used with rotators that support the VE5FP
* interface.
*/
-//! @cond Doxygen_Suppress
-#define ROT_SATEL 21
-#define ROT_BACKEND_SATEL "satel"
-//! @endcond
#define ROT_MODEL_SATEL ROT_MAKE_MODEL(ROT_SATEL, 1)
+/** The `RADANT` family. */
+#define ROT_RADANT 22
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_RADANT "radant"
+
/**
- * \brief A macro that returns the model number of the RADANT backend.
+ * \brief A macro that returns the model number of `RADANT`.
*
* \def ROT_MODEL_RADANT
*
- * The RADANT backend can be used with rotators that support the MS232
+ * The `RADANT` model can be used with rotators that support the MS232
* interface.
*/
-//! @cond Doxygen_Suppress
-#define ROT_RADANT 22
-#define ROT_BACKEND_RADANT "radant"
-//! @endcond
#define ROT_MODEL_RADANT ROT_MAKE_MODEL(ROT_RADANT, 1)
+
+/** The `ANDROIDSENSOR` family. */
+#define ROT_ANDROIDSENSOR 23
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_ANDROIDSENSOR "androidsensor"
+
/**
- * \brief A macro that returns the model number of the ANDROIDSENSOR backend.
+ * \brief A macro that returns the model number of `ANDROIDSENSOR`.
*
* \def ROT_MODEL_ANDROIDSENSOR
*
@@ -691,89 +736,96 @@
* attitude determination for your antenna and the phone tied to it. Now you
* can wave your antenna to find radio signals.
*/
-//! @cond Doxygen_Suppress
-#define ROT_ANDROIDSENSOR 23
-#define ROT_BACKEND_ANDROIDSENSOR "androidsensor"
-//! @endcond
#define ROT_MODEL_ANDROIDSENSOR ROT_MAKE_MODEL(ROT_ANDROIDSENSOR, 1)
+
+/** The `GRBLTRK` family. */
+#define ROT_GRBLTRK 24
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_GRBLTRK "grbltrk"
+
/**
- * \brief A macro that returns the model number of the ROT_MODEL_GRBLTRK_SER backend.
+ * \brief A macro that returns the model number of `ROT_MODEL_GRBLTRK_SER`.
*
* \def ROT_MODEL_GRBLTRK_SER
*
- * The GRBLTRK backend can be used with rotators that support the GRBL
- * protocol.
+ * The `GRBLTRK_SER` model can be used with rotators that support the GRBL
+ * serial protocol.
*/
/**
- * \brief A macro that returns the model number of the ROT_MODEL_GRBLTRK_NET backend.
+ * \brief A macro that returns the model number of `ROT_MODEL_GRBLTRK_NET`.
*
* \def ROT_MODEL_GRBLTRK_NET
*
- * The GRBLTRK backend can be used with rotators that support the GRBL
- * protocol.
+ * The `GRBLTRK_NET` model can be used with rotators that support the GRBL
+ * network protocol.
*/
-//! @cond Doxygen_Suppress
-#define ROT_GRBLTRK 24
-#define ROT_BACKEND_GRBLTRK "grbltrk"
-//! @endcond
#define ROT_MODEL_GRBLTRK_SER ROT_MAKE_MODEL(ROT_GRBLTRK, 1)
#define ROT_MODEL_GRBLTRK_NET ROT_MAKE_MODEL(ROT_GRBLTRK, 2)
+
+/** The `FLIR` family. */
+#define ROT_FLIR 25
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_FLIR "flir"
+
/**
- * \brief A macro that returns the model number of the FLIR backend.
+ * \brief A macro that returns the model number of `FLIR`.
*
* \def ROT_MODEL_FLIR
*
- * The FLIR backend can be used with FLIR and DirectedPercepition
+ * The `FLIR` model can be used with FLIR and DirectedPercepition
* rotators using the PTU protocol (e.g. PTU-D48). Currently only
* the serial interface is supported and no ethernet.
*/
-//! @cond Doxygen_Suppress
-#define ROT_FLIR 25
-#define ROT_BACKEND_FLIR "flir"
-//! @endcond
#define ROT_MODEL_FLIR ROT_MAKE_MODEL(ROT_FLIR, 1)
+
+/** The `APEX` family. */
+#define ROT_APEX 26
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_APEX "apex"
+
/**
- * \brief A macro that returns the model number of the APEX backend.
+ * \brief A macro that returns the model number of `APEX`.
*
* \def ROT_MODEL_APEX_SHARED_LOOP
*
- * The APEX backend can be used with APEX * rotators.
+ * The `APEX` model can be used with APEX * rotators.
*/
-//! @cond Doxygen_Suppress
-#define ROT_APEX 26
-#define ROT_BACKEND_APEX "apex"
-//! @endcond
#define ROT_MODEL_APEX_SHARED_LOOP ROT_MAKE_MODEL(ROT_APEX, 1)
+
+/** The `SAEBRTRACK` family. */
+#define ROT_SAEBRTRACK 27
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_SAEBRTRACK "SAEBRTrack"
+
/**
- * \brief A macro that returns the model number of the SAEBRTRACK backend.
+ * \brief A macro that returns the model number of `SAEBRTRACK`.
*
* \def ROT_MODEL_SAEBRTRACK
*
- * The SAEBRTRACK backend can be used with SAEBRTRACK * rotators.
+ * The `SAEBRTRACK` model can be used with SAEBRTRACK * rotators.
*/
-//! @cond Doxygen_Suppress
-#define ROT_SAEBRTRACK 27
-#define ROT_BACKEND_SAEBRTRACK "SAEBRTrack"
-//! @endcond
#define ROT_MODEL_SAEBRTRACK ROT_MAKE_MODEL(ROT_SAEBRTRACK, 1)
+
+/** The `SKYWATCHER` family. */
+#define ROT_SKYWATCHER 28
+/** Used in register.c for the `be_name`. */
+#define ROT_BACKEND_SKYWATCHER "SkyWatcher"
+
/**
- * \brief A macro that returns the model number of the SKYWATCHER backend.
+ * \brief A macro that returns the model number of `SKYWATCHER`.
*
* \def ROT_MODEL_SKYWATCHER
*
- * The SKYWATCHER backend can be used with SKYWATCHER * rotators.
+ * The `SKYWATCHER` model can be used with SKYWATCHER * rotators.
*/
-//! @cond Doxygen_Suppress
-#define ROT_SKYWATCHER 28
-#define ROT_BACKEND_SKYWATCHER "SkyWatcher"
-//! @endcond
#define ROT_MODEL_SKYWATCHER ROT_MAKE_MODEL(ROT_SKYWATCHER, 1)
+
/**
* \brief Convenience type definition for a rotator model.
*
commit 4d6a3ed582b89c3968a9892c607f54da41b97604
Author: Nate Bargmann <n0...@n0...>
Date: Sat Jul 26 10:08:19 2025 -0500
Fully document amplist.h
Create a new topic group of 'amplist' to separate the list of amplifier
models from the main Amplifier API group.
diff --git a/doc/index.doxygen b/doc/index.doxygen
index 73ba6e361..46f7f73ba 100644
--- a/doc/index.doxygen
+++ b/doc/index.doxygen
@@ -195,6 +195,7 @@ GNU/Linux.
* \defgroup rotator Rotator API
* \defgroup rot_internal Rotator Internal API
* \defgroup amplifier Amplifier API
+ * \defgroup amplist Amplifier model list
* \defgroup amp_internal Amplifier Internal API
* \defgroup port Port data structure for accessing devices
* \defgroup utilities Utility Routines API
diff --git a/include/hamlib/amplist.h b/include/hamlib/amplist.h
index 4539b6d2b..a123f8841 100644
--- a/include/hamlib/amplist.h
+++ b/include/hamlib/amplist.h
@@ -25,17 +25,12 @@
#ifndef _AMPLIST_H
#define _AMPLIST_H 1
-//! @cond Doxygen_Suppress
-#define AMP_MAKE_MODEL(a,b) ((a)*100+(b))
-#define AMP_BACKEND_NUM(a) ((a)/100)
-//! @endcond
-
-
/**
- * \addtogroup amplifier
+ * \addtogroup amplist
* @{
*/
+
/**
* \brief Hamlib amplifier model definitions.
*
@@ -55,6 +50,27 @@
* wishes to use which is passed to the amp_init() API call.
*/
+/**
+ * \brief The amp model number is held in a signed integer.
+ *
+ * Model numbers are a simple decimal value that increments by a value of
+ * 100 for each backend, e.g. the `DUMMY` backend has model numbers 1
+ * to 100, the `ELECRAFT` backend has model numbers 201 to 300 and so on
+ * (101 to 200 is currently unassigned).
+ *
+ * \note A limitation is that with ::amp_model_t being a signed integer that on
+ * some systems such a value may be 16 bits. This limits the number of backends
+ * to 326 of 100 models each (32768 / 100 thus leaving only 68 models for
+ * backend number 327 so round down to 326). So far this doesn't seem like an
+ * extreme limitation.
+ *
+ * \sa amp_model_t
+ */
+#define AMP_MAKE_MODEL(a,b) ((a)*100+(b))
+
+/** Convenience macro to derive the backend family number from the model number. */
+#define AMP_BACKEND_NUM(a) ((a)/100)
+
/**
* \brief A macro that returns the model number for an unknown model.
@@ -67,71 +83,63 @@
#define AMP_MODEL_NONE 0
+/** The `DUMMY` family. Also contains network models. */
+#define AMP_DUMMY 0
+/** Used in amp_reg.c for the `be_name`. */
+#define AMP_BACKEND_DUMMY "dummy"
/**
- * \brief A macro that returns the model number for the DUMMY backend.
- *
- * \def AMP_MODEL_DUMMY
+ * \brief A macro that returns the model number for `DUMMY`.
*
- * The DUMMY backend, as the name suggests, is a backend which performs no
+ * The `DUMMY` model, as the name suggests, is a model which performs no
* hardware operations and always behaves as one would expect. It can be
* thought of as a hardware simulator and is very useful for testing client
* applications.
*/
+#define AMP_MODEL_DUMMY AMP_MAKE_MODEL(AMP_DUMMY, 1)
/**
- * \brief A macro that returns the model number for the NETAMPCTL backend.
+ * \brief A macro that returns the model number for `NETAMPCTL`.
*
- * \def AMP_MODEL_NETAMPCTL
- *
- * The NETAMPCTL backend allows use of the `ampctld` daemon through the normal
- * Hamlib API.
+ * The `NETAMPCTL` model allows use of the `ampctld` daemon through the normal
+ * Hamlib C API.
*/
-//! @cond Doxygen_Suppress
-#define AMP_DUMMY 0
-#define AMP_BACKEND_DUMMY "dummy"
-//! @endcond
-#define AMP_MODEL_DUMMY AMP_MAKE_MODEL(AMP_DUMMY, 1)
#define AMP_MODEL_NETAMPCTL AMP_MAKE_MODEL(AMP_DUMMY, 2)
+/** The `ELECRAFT` family. */
+#define AMP_ELECRAFT 2
+/** Used in amp_reg.c for the `be_name`. */
+#define AMP_BACKEND_ELECRAFT "elecraft"
/**
- * \brief A macro that returns the model number of the KPA1500 backend.
- *
- * \def AMP_MODEL_ELECRAFT_KPA1500
+ * \brief A macro that returns the model number of `KPA1500`.
*
- * The KPA1500 backend can be used with amplifiers that support the Elecraft
+ * The `KPA1500` model can be used with amplifiers that support the Elecraft
* KPA-1500 protocol.
*/
-//! @cond Doxygen_Suppress
-#define AMP_ELECRAFT 2
-#define AMP_BACKEND_ELECRAFT "elecraft"
-//! @endcond
#define AMP_MODEL_ELECRAFT_KPA1500 AMP_MAKE_MODEL(AMP_ELECRAFT, 1)
//#define AMP_MODEL_ELECRAFT_KPA500 AMP_MAKE_MODEL(AMP_ELECRAFT, 2)
+
+/** The `GEMINI` family. */
+#define AMP_GEMINI 3
+/** Used in amp_reg.c for the `be_name`. */
+#define AMP_BACKEND_GEMINI "gemini"
/**
- * \brief A macro that returns the model number of the DX1200 backend.
- *
- * \def AMP_MODEL_GEMINI_DX1200
+ * \brief A macro that returns the model number of `DX1200`.
*
* The Gemini DX1200 covers 160 trhough 4 meters.
*/
-//! @cond Doxygen_Suppress
-#define AMP_GEMINI 3
-#define AMP_BACKEND_GEMINI "gemini"
-//! @endcond
#define AMP_MODEL_GEMINI_DX1200 AMP_MAKE_MODEL(AMP_GEMINI, 1)
+
+/** The `EXPERT` family. */
+#define AMP_EXPERT 4
+/** Used in amp_reg.c for the `be_name`. */
+#define AMP_BACKEND_EXPERT "expert"
/**
- * \brief A macro that returns the model number of the FA backend.
- *
- * \def AMP_MODEL_EXPERT_FA
+ * \brief A macro that returns the model number of `FA`.
*
* The Expert FA series of amplifiers is supported by this backend.
*/
-//! @cond Doxygen_Suppress
-#define AMP_EXPERT 4
-#define AMP_BACKEND_EXPERT "expert"
-//! @endcond
#define AMP_MODEL_EXPERT_FA AMP_MAKE_MODEL(AMP_EXPERT, 1)
commit f67a3cfe4722728335fb11a5939b6233a8cbec44
Author: Nate Bargmann <n0...@n0...>
Date: Sat Jul 26 08:53:15 2025 -0500
Update Doxygen comments in riglist.h
Create a new topic group of 'riglist' to separate the long list of radio
models from the main Rig API group.
diff --git a/doc/index.doxygen b/doc/index.doxygen
index dfa428b1f..73ba6e361 100644
--- a/doc/index.doxygen
+++ b/doc/index.doxygen
@@ -190,6 +190,7 @@ GNU/Linux.
/*! Define groups for Doxygen
* \defgroup rig Rig (transceiver) API
+ * \defgroup riglist Rig (radio) Model List
* \defgroup rig_internal Rig (transceiver) Internal API
* \defgroup rotator Rotator API
* \defgroup rot_internal Rotator Internal API
diff --git a/include/hamlib/riglist.h b/include/hamlib/riglist.h
index 1bbc6a1e3..3c59390e4 100644
--- a/include/hamlib/riglist.h
+++ b/include/hamlib/riglist.h
@@ -19,42 +19,52 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
*/
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef _RIGLIST_H
#define _RIGLIST_H 1
-//! @cond Doxygen_Suppress
+/**
+ * \addtogroup riglist
+ * @{
+ */
-// The rig model number is designed to fit in a 32-bit int
-// As of 2024-07-14 we have 39 backends defined -- need to be careful about generating new ones
-// Perhaps combine them under a MISC entry should work
-// As of 2020-02-18 we have 33 backends defined
-// With a max of 1000 models per backend we get total a model number range of 1001-33001
-// This MAX was 100 prior to 2020-02-18 and Icom was close to running out of the 100 range
-#define MAX_MODELS_PER_BACKEND 1000
-#define RIG_MAKE_MODEL(a,b) (MAX_MODELS_PER_BACKEND*(a)+(b))
-#define RIG_BACKEND_NUM(a) ((a)/MAX_MODELS_PER_BACKEND)
+/**
+ * \brief Hamlib rig (radio) model definitions.
+ *
+ * \file riglist.h
+ *
+ * This file contains rig (radio) model definitions for the Hamlib rig API.
+ * Each distinct rig type has a unique model number (ID) and is used by Hamlib
+ * to identify and distinguish between the different hardware drivers. The
+ * exact model numbers can be acquired using the macros in this file. To obtain
+ * a list of supported rig branches, one can use the statically defined
+ * RIG_BACKEND_LIST macro. To obtain a full list of supported rig (including
+ * each model in every branch), the foreach_opened_rig() API function can be
+ * used.
+ *
+ * The model number, or ID, is used to tell Hamlib, which rig the client
+ * wishes to use. It is done with the rig_init() API call.
+ */
-//! @endcond
+/** Number of models per backend family. */
+#define MAX_MODELS_PER_BACKEND 1000
-/*! \file riglist.h
- * \brief Hamlib rig(radio) model definitions.
+/**
+ * \brief The rig model number is held in an unsigned 32-bit integer.
*
- * This file contains rig model definitions for the Hamlib rig API. Each
- * distinct rig type has a unique model number (ID) and is used by hamlib to
- * identify and distinguish between the different hardware drivers. The
- * exact model numbers can be acquired using the macros in this file. To
- * obtain a list of supported rig branches, one can use the statically
- * defined RIG_BACKEND_LIST macro. To obtain a full list of supported rig
- * (including each model in every branch), the foreach_opened_rig() API
- * function can be used.
+ * Model numbers are a simple decimal value that increments by a value of
+ * 1000 for each backend, e.g. the `DUMMY` backend has model numbers 1
+ * to 1000, the `YAESU` backend has model numbers 1001 to 1100 and so on.
*
- * The model number, or ID, is used to tell hamlib, which rig the client
- * whishes to use. It is done with the rig_init() API call.
+ * \sa rig_model_t
*/
+#define RIG_MAKE_MODEL(a,b) (MAX_MODELS_PER_BACKEND*(a)+(b))
+
+/** Convenience macro to derive the backend family number from the model number. */
+#define RIG_BACKEND_NUM(a) ((a)/MAX_MODELS_PER_BACKEND)
/**
- * \def RIG_MODEL_NONE
* \brief A macro that returns the model number for an unknown model.
*
* The none backend, as the name suggests, does nothing. It is mainly for
@@ -62,23 +72,32 @@
*/
#define RIG_MODEL_NONE 0
-/*! \def RIG_MODEL_DUMMY
- * \brief A macro that returns the model number for the dummy backend.
+/**
+ * \brief The `DUMMY` family.
+ *
+ * It has also been expanded to provide support to "virtual" type of rigs such
+ * as the network rig control backend and W1HKJ's Flrig application and many
+ * more, especially SDR (Software Defined Radio) applications.
+ */
+#define RIG_DUMMY 0
+/** Used in register.c for the `be_name`. */
+#define RIG_BACKEND_DUMMY "dummy"
+/**
+ * \brief A macro that returns the model number for `DUMMY`.
*
- * The dummy backend, as the name suggests, is a backend which performs no
+ * The `DUMMY model, as the name suggests, is a model which performs no
* hardware operations and always behaves as one would expect. It can be
* thought of as a hardware simulator and is very useful for testing client
* applications.
- *
- * It has also been expanded to provide support to "virtual" type of rigs
- * such as the network rig control backend and W1HKJ's Flrig application.
*/
-//! @cond Doxygen_Suppress
-#define RIG_DUMMY 0
-#define RIG_BACKEND_DUMMY "dummy"
-//! @endcond
#define RIG_MODEL_DUMMY RIG_MAKE_MODEL(RIG_DUMMY, 1)
-//! @cond Doxygen_Suppress
+
+/**
+ * \name NETWORK
+ * Network models.
+ */
+///@{
+/// Model of the `RIG_DUMMY` backend family.
#define RIG_MODEL_NETRIGCTL RIG_MAKE_MODEL(RIG_DUMMY, 2)
#define RIG_MODEL_ARMSTRONG RIG_MAKE_MODEL(RIG_DUMMY, 3)
#define RIG_MODEL_FLRIG RIG_MAKE_MODEL(RIG_DUMMY, 4)
@@ -89,12 +108,22 @@
#define RIG_MODEL_SDRSHARP RIG_MAKE_MODEL(RIG_DUMMY, 9)
#define RIG_MODEL_QUISK RIG_MAKE_MODEL(RIG_DUMMY, 10)
#define RIG_MODEL_GQRX RIG_MAKE_MODEL(RIG_DUMMY, 11)
+///@}
/*
* Yaesu
*/
+/** The `YAESU` family. */
#define RIG_YAESU 1
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_YAESU "yaesu"
+
+/**
+ * \name YAESU
+ * Yaesu models.
+ */
+///@{
+/// Model of the `RIG_YAESU` backend family.
#define RIG_MODEL_FT847 RIG_MAKE_MODEL(RIG_YAESU, 1)
#define RIG_MODEL_FT1000 RIG_MAKE_MODEL(RIG_YAESU, 2)
#define RIG_MODEL_FT1000D RIG_MAKE_MODEL(RIG_YAESU, 3)
@@ -146,12 +175,22 @@
#define RIG_MODEL_FT710 RIG_MAKE_MODEL(RIG_YAESU, 49)
#define RIG_MODEL_FT9000OLD RIG_MAKE_MODEL(RIG_YAESU, 50)
#define RIG_MODEL_FTX1 RIG_MAKE_MODEL(RIG_YAESU, 51)
+///@}
/*
* Kenwood
*/
+/** The `KENWOOD` family. */
#define RIG_KENWOOD 2
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_KENWOOD "kenwood"
+
+/**
+ * \name KENWOOD
+ * Kenwood models.
+ */
+///@{
+/// Model of the `RIG_KENWOOD` backend family.
#define RIG_MODEL_TS50 RIG_MAKE_MODEL(RIG_KENWOOD, 1)
#define RIG_MODEL_TS440 RIG_MAKE_MODEL(RIG_KENWOOD, 2)
#define RIG_MODEL_TS450S RIG_MAKE_MODEL(RIG_KENWOOD, 3)
@@ -209,12 +248,22 @@
#define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55)
#define RIG_MODEL_SDRCONSOLE RIG_MAKE_MODEL(RIG_KENWOOD, 56)
#define RIG_MODEL_QRPLABS_QMX RIG_MAKE_MODEL(RIG_KENWOOD,57)
+///@}
/*
* Icom
*/
+/** The `ICOM` family. */
#define RIG_ICOM 3
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_ICOM "icom"
+
+/**
+ * \name ICOM
+ * Icom models.
+ */
+///@{
+/// Model of the `RIG_ICOM` backend family.
#define RIG_MODEL_IC1271 RIG_MAKE_MODEL(RIG_ICOM, 1)
#define RIG_MODEL_IC1275 RIG_MAKE_MODEL(RIG_ICOM, 2)
#define RIG_MODEL_IC271 RIG_MAKE_MODEL(RIG_ICOM, 3)
@@ -315,22 +364,42 @@
#define RIG_MODEL_OMNIVIP RIG_MAKE_MODEL(RIG_ICOM, 51) /* OMNI-VI+ */
#define RIG_MODEL_PARAGON2 RIG_MAKE_MODEL(RIG_ICOM, 59)
#define RIG_MODEL_DELTAII RIG_MAKE_MODEL(RIG_ICOM, 64)
+///@}
/*
* Icom PCR
*/
+/** The `PCR` family. */
#define RIG_PCR 4
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_PCR "pcr"
+
+/**
+ * \name PCR
+ * PCR models.
+ */
+///@{
+/// Model of the `RIG_PCR` backend family.
#define RIG_MODEL_PCR1000 RIG_MAKE_MODEL(RIG_PCR, 1)
#define RIG_MODEL_PCR100 RIG_MAKE_MODEL(RIG_PCR, 2)
#define RIG_MODEL_PCR1500 RIG_MAKE_MODEL(RIG_PCR, 3)
#define RIG_MODEL_PCR2500 RIG_MAKE_MODEL(RIG_PCR, 4)
+///@}
/*
* AOR
*/
+/** The `AOR` family. */
#define RIG_AOR 5
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_AOR "aor"
+
+/**
+ * \name AOR
+ * AOR models.
+ */
+///@{
+/// Model of the `RIG_AOR` backend family.
#define RIG_MODEL_AR8200 RIG_MAKE_MODEL(RIG_AOR, 1)
#define RIG_MODEL_AR8000 RIG_MAKE_MODEL(RIG_AOR, 2)
#define RIG_MODEL_AR7030 RIG_MAKE_MODEL(RIG_AOR, 3)
@@ -347,12 +416,22 @@
#define RIG_MODEL_AR5000A RIG_MAKE_MODEL(RIG_AOR, 14)
#define RIG_MODEL_AR7030P RIG_MAKE_MODEL(RIG_AOR, 15)
#define RIG_MODEL_SR2200 RIG_MAKE_MODEL(RIG_AOR, 16)
+///@}
/*
* JRC
*/
+/** The `JRC` family. */
#define RIG_JRC 6
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_JRC "jrc"
+
+/**
+ * \name JRC
+ * JRC models.
+ */
+///@{
+/// Model of the `RIG_JRC` backend family.
#define RIG_MODEL_JST145 RIG_MAKE_MODEL(RIG_JRC, 1)
#define RIG_MODEL_JST245 RIG_MAKE_MODEL(RIG_JRC, 2)
#define RIG_MODEL_CMH530 RIG_MAKE_MODEL(RIG_JRC, 3)
@@ -360,25 +439,45 @@
#define RIG_MODEL_NRD525 RIG_MAKE_MODEL(RIG_JRC, 5)
#define RIG_MODEL_NRD535 RIG_MAKE_MODEL(RIG_JRC, 6)
#define RIG_MODEL_NRD545 RIG_MAKE_MODEL(RIG_JRC, 7)
+///@}
/*
* Radio Shack
* Actually, they might be either Icom or Uniden. TBC --SF
*/
+/** The `RADIOSHACK` family. */
#define RIG_RADIOSHACK 7
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_RADIOSHACK "radioshack"
+
+/**
+ * \name RADIOSHACK
+ * RadioShack models.
+ */
+///@{
+/// Model of the `RIG_RADIOSHACK` backend family.
#define RIG_MODEL_RS64 RIG_MAKE_MODEL(RIG_RADIOSHACK, 1) /* PRO-64 */
#define RIG_MODEL_RS2005 RIG_MAKE_MODEL(RIG_RADIOSHACK, 2) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2006 RIG_MAKE_MODEL(RIG_RADIOSHACK, 3) /* w/ OptoElectronics OS456 Board */
#define RIG_MODEL_RS2035 RIG_MAKE_MODEL(RIG_RADIOSHACK, 4) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2042 RIG_MAKE_MODEL(RIG_RADIOSHACK, 5) /* w/ OptoElectronics OS435 Board */
#define RIG_MODEL_RS2041 RIG_MAKE_MODEL(RIG_RADIOSHACK, 6) /* PRO-2041 */
+///@}
/*
* Uniden
*/
+/** The `UNIDEN` family. */
#define RIG_UNIDEN 8
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_UNIDEN "uniden"
+
+/**
+ * \name UNIDEN
+ * Uniden models.
+ */
+///@{
+/// Model of the `RIG_UNIDEN` backend family.
#define RIG_MODEL_BC780 RIG_MAKE_MODEL(RIG_UNIDEN, 1) /* Uniden BC780 - Trunk Tracker "Desktop Radio" */
#define RIG_MODEL_BC245 RIG_MAKE_MODEL(RIG_UNIDEN, 2)
#define RIG_MODEL_BC895 RIG_MAKE_MODEL(RIG_UNIDEN, 3)
@@ -391,73 +490,143 @@
#define RIG_MODEL_BCD396T RIG_MAKE_MODEL(RIG_UNIDEN, 10)
#define RIG_MODEL_BCD996T RIG_MAKE_MODEL(RIG_UNIDEN, 11)
#define RIG_MODEL_BC898 RIG_MAKE_MODEL(RIG_UNIDEN, 12)
+///@}
/*
* Drake
*/
+/** The `DRAKE` family. */
#define RIG_DRAKE 9
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_DRAKE "drake"
+
+/**
+ * \name DRAKE
+ * Drake models.
+ */
+///@{
+/// Model of the `RIG_DRAKE` backend family.
#define RIG_MODEL_DKR8 RIG_MAKE_MODEL(RIG_DRAKE, 1)
#define RIG_MODEL_DKR8A RIG_MAKE_MODEL(RIG_DRAKE, 2)
#define RIG_MODEL_DKR8B RIG_MAKE_MODEL(RIG_DRAKE, 3)
+///@}
/*
* Lowe
*/
+/** The `LOWE` family. */
#define RIG_LOWE 10
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_LOWE "lowe"
+
+/**
+ * \name LOWE
+ * Lowe models.
+ */
+///@{
+/// Model of the `RIG_LOWE` backend family.
#define RIG_MODEL_HF150 RIG_MAKE_MODEL(RIG_LOWE, 1)
#define RIG_MODEL_HF225 RIG_MAKE_MODEL(RIG_LOWE, 2)
#define RIG_MODEL_HF250 RIG_MAKE_MODEL(RIG_LOWE, 3)
#define RIG_MODEL_HF235 RIG_MAKE_MODEL(RIG_LOWE, 4)
+///@}
/*
* Racal
*/
+/** The `RACAL` family. */
#define RIG_RACAL 11
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_RACAL "racal"
+
+/**
+ * \name RACAL
+ * Racal models.
+ */
+///@{
+/// Model of the `RIG_RACAL` backend family.
#define RIG_MODEL_RA3790 RIG_MAKE_MODEL(RIG_RACAL, 1)
#define RIG_MODEL_RA3720 RIG_MAKE_MODEL(RIG_RACAL, 2)
#define RIG_MODEL_RA6790 RIG_MAKE_MODEL(RIG_RACAL, 3)
#define RIG_MODEL_RA3710 RIG_MAKE_MODEL(RIG_RACAL, 4)
#define RIG_MODEL_RA3702 RIG_MAKE_MODEL(RIG_RACAL, 5)
+///@}
/*
* Watkins-Johnson
*/
+/** The `WJ` family. */
#define RIG_WJ 12
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_WJ "wj"
+
+/**
+ * \name WJ
+ * Watkins-Johnson models.
+ */
+///@{
+/// Model of the `RIG_WJ` backend family.
#define RIG_MODEL_HF1000 RIG_MAKE_MODEL(RIG_WJ, 1)
#define RIG_MODEL_HF1000A RIG_MAKE_MODEL(RIG_WJ, 2)
#define RIG_MODEL_WJ8711 RIG_MAKE_MODEL(RIG_WJ, 3)
#define RIG_MODEL_WJ8888 RIG_MAKE_MODEL(RIG_WJ, 4)
+///@}
/*
* Rohde & Schwarz--ek
*/
+/** The `EK` family. */
#define RIG_EK 13
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_EK "ek"
+
+/**
+ * \name EK
+ * Rohde & Schwarz EK models.
+ */
+///@{
+/// Model of the `RIG_EK` backend family.
#define RIG_MODEL_ESM500 RIG_MAKE_MODEL(RIG_EK, 1)
#define RIG_MODEL_EK890 RIG_MAKE_MODEL(RIG_EK, 2)
#define RIG_MODEL_EK891 RIG_MAKE_MODEL(RIG_EK, 3)
#define RIG_MODEL_EK895 RIG_MAKE_MODEL(RIG_EK, 4)
#define RIG_MODEL_EK070 RIG_MAKE_MODEL(RIG_EK, 5)
+///@}
/*
* Skanti
*/
+/** The `SKANTI` family. */
#define RIG_SKANTI 14
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_SKANTI "skanti"
+
+/**
+ * \name SKANTI
+ * Skanti models.
+ */
+///@{
+/// Model of the `RIG_SKANTI` backend family.
#define RIG_MODEL_TRP7000 RIG_MAKE_MODEL(RIG_SKANTI, 1)
#define RIG_MODEL_TRP8000 RIG_MAKE_MODEL(RIG_SKANTI, 2)
#define RIG_MODEL_TRP9000 RIG_MAKE_MODEL(RIG_SKANTI, 3)
#define RIG_MODEL_TRP8255 RIG_MAKE_MODEL(RIG_SKANTI, 4)
+///@}
/*
* WiNRADiO/LinRADiO
*/
+/** The `WINRADIO` family. */
#define RIG_WINRADIO 15
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_WINRADIO "winradio"
+
+/**
+ * \name WINRADIO
+ * WiNRADiO/LinRADiO models.
+ */
+///@{
+/// Model of the `RIG_WINRADIO` backend family.
#define RIG_MODEL_WR1000 RIG_MAKE_MODEL(RIG_WINRADIO, 1)
#define RIG_MODEL_WR1500 RIG_MAKE_MODEL(RIG_WINRADIO, 2)
#define RIG_MODEL_WR1550 RIG_MAKE_MODEL(RIG_WINRADIO, 3)
@@ -469,12 +638,22 @@
#define RIG_MODEL_G313 RIG_MAKE_MODEL(RIG_WINRADIO, 9)
#define RIG_MODEL_G305 RIG_MAKE_MODEL(RIG_WINRADIO, 10)
#define RIG_MODEL_G315 RIG_MAKE_MODEL(RIG_WINRADIO, 11)
+///@}
/*
* Ten Tec
*/
+/** The `TENTEC` family. */
#define RIG_TENTEC 16
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_TENTEC "tentec"
+
+/**
+ * \name TENTEC
+ * Ten Tec models.
+ */
+///@{
+/// Model of the `RIG_TENTEC` backend family.
#define RIG_MODEL_TT550 RIG_MAKE_MODEL(RIG_TENTEC, 1) /* Pegasus */
#define RIG_MODEL_TT538 RIG_MAKE_MODEL(RIG_TENTEC, 2) /* Jupiter */
#define RIG_MODEL_RX320 RIG_MAKE_MODEL(RIG_TENTEC, 3)
@@ -487,54 +666,114 @@
#define RIG_MODEL_TT588 RIG_MAKE_MODEL(RIG_TENTEC, 11) /* Omni-VII */
#define RIG_MODEL_RX331 RIG_MAKE_MODEL(RIG_TENTEC, 12)
#define RIG_MODEL_TT599 RIG_MAKE_MODEL(RIG_TENTEC, 13) /* Eagle */
+///@}
/*
* Alinco
*/
+/** The `ALINCO` family. */
#define RIG_ALINCO 17
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_ALINCO "alinco"
+
+/**
+ * \name ALINCO
+ * Alinco models.
+ */
+///@{
+/// Model of the `RIG_ALINCO` backend family.
#define RIG_MODEL_DX77 RIG_MAKE_MODEL(RIG_ALINCO, 1)
#define RIG_MODEL_DXSR8 RIG_MAKE_MODEL(RIG_ALINCO, 2)
+///@}
/*
* Kachina
*/
+/** The `KACHINA` family. */
#define RIG_KACHINA 18
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_KACHINA "kachina"
+
+/**
+ * \name KACHINA
+ * Kachina model.
+ */
+///@{
+/// Model of the `RIG_KACHINA` backend family.
#define RIG_MODEL_505DSP RIG_MAKE_MODEL(RIG_KACHINA, 1)
+///@}
/*
* Gnuradio backend
*/
+/** The `GNURADIO` family. */
#define RIG_GNURADIO 20
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_GNURADIO "gnuradio"
+
+/**
+ * \name GNURADIO
+ * GNU Radio models.
+ */
+///@{
+/// Model of the `RIG_GNURADIO` backend family.
#define RIG_MODEL_GNURADIO RIG_MAKE_MODEL(RIG_GNURADIO, 1) /* dev model, Chirp source */
#define RIG_MODEL_MC4020 RIG_MAKE_MODEL(RIG_GNURADIO, 2) /* MC4020 */
#define RIG_MODEL_GRAUDIO RIG_MAKE_MODEL(RIG_GNURADIO, 3) /* Sound card source */
#define RIG_MODEL_GRAUDIOIQ RIG_MAKE_MODEL(RIG_GNURADIO, 4) /* I&Q stereo sound card source */
#define RIG_MODEL_USRP_G RIG_MAKE_MODEL(RIG_GNURADIO, 5) /* Universal Software Radio Peripheral */
+///@}
/*
* Microtune tuners
*/
+/** The `MICROTUNE` family. */
#define RIG_MICROTUNE 21
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_MICROTUNE "microtune"
+
+/**
+ * \name MICROTUNE
+ * Microtune models.
+ */
+///@{
+/// Model of the `RIG_MICROTUNE` backend family.
#define RIG_MODEL_MICROTUNE_4937 RIG_MAKE_MODEL(RIG_MICROTUNE, 1) /* eval board */
#define RIG_MODEL_MICROTUNE_4702 RIG_MAKE_MODEL(RIG_MICROTUNE, 2) /* Alan's */
#define RIG_MODEL_MICROTUNE_4707 RIG_MAKE_MODEL(RIG_MICROTUNE, 3)
+///@}
/*
* TAPR
*/
+/** The `TAPR` family. */
#define RIG_TAPR 22
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_TAPR "tapr"
+
+/**
+ * \name TAPR
+ * TAPR model.
+ */
+///@{
+/// Model of the `RIG_TAPR` backend family.
#define RIG_MODEL_DSP10 RIG_MAKE_MODEL(RIG_TAPR, 1)
+///@}
/*
* Flex-radio
*/
+/** The `FLEXRADIO` family. */
#define RIG_FLEXRADIO 23
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_FLEXRADIO "flexradio"
+
+/**
+ * \name FLEXRADIO
+ * FlexRadio models.
+ */
+///@{
+/// Model of the `RIG_FLEXRADIO` backend family.
#define RIG_MODEL_SDR1000 RIG_MAKE_MODEL(RIG_FLEXRADIO, 1)
#define RIG_MODEL_SDR1000RFE RIG_MAKE_MODEL(RIG_FLEXRADIO, 2)
#define RIG_MODEL_DTTSP RIG_MAKE_MODEL(RIG_FLEXRADIO, 3)
@@ -547,19 +786,39 @@
#define RIG_MODEL_SMARTSDR_F RIG_MAKE_MODEL(RIG_FLEXRADIO, 10)
#define RIG_MODEL_SMARTSDR_G RIG_MAKE_MODEL(RIG_FLEXRADIO, 11)
#define RIG_MODEL_SMARTSDR_H RIG_MAKE_MODEL(RIG_FLEXRADIO, 12)
+///@}
/*
* VEB Funkwerk Köpenick RFT
*/
+/** The `RFT` family. */
#define RIG_RFT 24
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_RFT "rft"
+
+/**
+ * \name RFT
+ * VEB Funkwerk Köpenick RFT model.
+ */
+///@{
+/// Model of the `RIG_RFT` backend family.
#define RIG_MODEL_EKD500 RIG_MAKE_MODEL(RIG_RFT, 1)
+///@}
/*
* Various kits
*/
+/** The `KIT` family. */
#define RIG_KIT 25
+/** Used in register.c for the `be_name`. */
#define RIG_BACKEND_KIT "kit"
+
+/**
+ * \name KIT
+ * Various kit models.
+ */
+///@{
+/// Model of the `RIG_KIT` backend family.
#define RIG_MODEL_ELEKTOR304 RIG_MAKE_MODEL(RIG_KIT, 1)
#define RIG_MODEL_DRT1 RIG_MAKE_MODEL(RIG_KIT, 2)
#define RIG_MODEL_DWT RIG_MAKE_MODEL(RIG_KIT, 3)
@@ -579,100 +838,213 @@
#define RIG_MODEL_SI570PEABERRY2 RIG_MAKE_MODEL(RIG_KIT, 17) /* Peaberry V2 */
#define RIG_MODEL_FUNCUBEDONGLEPLUS RIG_MAKE_MODEL(RIG_KIT, 18) /* FunCUBE Dongle Pro+ */
#define RIG_MODEL_RSHFIQ RIG_MAKE_MODEL(RIG_KIT, 19) /* RS-HFIQ */
+///@}
/*
* SW/FM/TV tuner cards supported by Video4Linux,*BSD, ..
*/
+/** The `TUNER` family. */
#define RIG_TUNER 26
+/** Used in register.c for the `be_name`. */
#define RIG...
[truncated message content] |