main
PianetaRadio 2025-04-16 20:53:29 +02:00 zatwierdzone przez GitHub
rodzic 26c9a46570
commit fa078adf25
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: B5690EEEBB952194
8 zmienionych plików z 213 dodań i 13 usunięć

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -33,7 +33,7 @@
// Our shared secret password
#define HAMLIB_SECRET_LENGTH 32
#define HAMLIB_TRACE rig_debug(RIG_DEBUG_TRACE,"%s%s(%d) trace\n",spaces(rig->state.depth-1), __FILE__, __LINE__)
#define HAMLIB_TRACE rig_debug(RIG_DEBUG_TRACE,"%s%s(%d) trace\n",spaces(STATE(rig)->depth), __FILE__, __LINE__)
#define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
#include <stdio.h>
@ -44,6 +44,7 @@
// to stop warnings about including winsock2.h before windows.h
#if defined(_WIN32)
#include <winsock2.h>
#include <windows.h>
#include <ws2tcpip.h>
#else
#include <sys/socket.h>
@ -205,6 +206,7 @@ enum rig_errcode_e {
RIG_EDEPRECATED,/*!< 18 Function deprecated */
RIG_ESECURITY, /*!< 19 Security error */
RIG_EPOWER, /*!< 20 Rig not powered on */
RIG_ELIMIT, /*!< 21 Limit exceeded */
RIG_EEND // MUST BE LAST ITEM IN LAST
};
/**
@ -617,13 +619,13 @@ typedef unsigned int vfo_t;
// Compared to older rigs which have one or the other
// So we need to distinguish between them
//! @cond Doxygen_Suppress
#define VFO_HAS_A_B ((rig->state.vfo_list & (RIG_VFO_A|RIG_VFO_B)) == (RIG_VFO_A|RIG_VFO_B))
#define VFO_HAS_MAIN_SUB ((rig->state.vfo_list & (RIG_VFO_MAIN|RIG_VFO_SUB)) == (RIG_VFO_MAIN|RIG_VFO_SUB))
#define VFO_HAS_A_B ((STATE(rig)->vfo_list & (RIG_VFO_A|RIG_VFO_B)) == (RIG_VFO_A|RIG_VFO_B))
#define VFO_HAS_MAIN_SUB ((STATE(rig)->vfo_list & (RIG_VFO_MAIN|RIG_VFO_SUB)) == (RIG_VFO_MAIN|RIG_VFO_SUB))
#define VFO_HAS_MAIN_SUB_ONLY ((!VFO_HAS_A_B) & VFO_HAS_MAIN_SUB)
#define VFO_HAS_MAIN_SUB_A_B_ONLY (VFO_HAS_A_B & VFO_HAS_MAIN_SUB)
#define VFO_HAS_A_B_ONLY (VFO_HAS_A_B & (!VFO_HAS_MAIN_SUB))
#define VFO_DUAL (RIG_VFO_MAIN_A|RIG_VFO_MAIN_B|RIG_VFO_SUB_A|RIG_VFO_SUB_B)
#define VFO_HAS_DUAL ((rig->state.vfo_list & VFO_DUAL) == VFO_DUAL)
#define VFO_HAS_DUAL ((STATE(rig)->vfo_list & VFO_DUAL) == VFO_DUAL)
//! @endcond
/**
@ -721,6 +723,12 @@ typedef enum {
RIG_RESET_MASTER = (1 << 3) /*!< Master reset */
} reset_t;
typedef enum {
RIG_CLIENT_UNKNOWN,
RIG_CLIENT_WSJTX,
RIG_CLIENT_GPREDICT
} client_t;
/**
* \brief VFO operation
@ -1133,15 +1141,19 @@ enum rig_parm_e {
RIG_PARM_BAT = (1 << 6), /*!< \c BAT -- battery level, float [0.0 ... 1.0] */
RIG_PARM_KEYLIGHT = (1 << 7), /*!< \c KEYLIGHT -- Button backlight, on/off */
RIG_PARM_SCREENSAVER = (1 << 8), /*!< \c SCREENSAVER -- rig specific timeouts */
RIG_PARM_AFIF = (1 << 9), /*!< \c AFIF -- 0=AF audio, 1=IF audio -- see IC-7300/9700/705 */
RIG_PARM_AFIF = (1 << 9), /*!< \c AFIF for USB -- 0=AF audio, 1=IF audio -- see IC-7300/9700/705 */
RIG_PARM_BANDSELECT = (1 << 10), /*!< \c BANDSELECT -- e.g. BAND160M, BAND80M, BAND70CM, BAND2CM */
RIG_PARM_KEYERTYPE = (1 << 11) /*!< \c KEYERTYPE -- 0,1,2 or STRAIGHT PADDLE BUG */
RIG_PARM_KEYERTYPE = (1 << 11), /*!< \c KEYERTYPE -- 0,1,2 or STRAIGHT PADDLE BUG */
RIG_PARM_AFIF_LAN = (1 << 12), /*!< \c AFIF for LAN -- 0=AF audi , 1=IF audio -- see IC-9700 */
RIG_PARM_AFIF_WLAN = (1 << 13), /*!< \c AFIF_WLAN -- 0=AF audio, 1=IF audio -- see IC-705 */
RIG_PARM_AFIF_ACC = (1 << 14) /*!< \c AFIF_ACC -- 0=AF audio, 1=IF audio -- see IC-9700 */
};
enum rig_keyertype_e {
RIG_KEYERTYPE_STRAIGHT = 0,
RIG_KEYERTYPE_BUG = (1 << 0),
RIG_KEYERTYPE_PADDLE = (2 << 0)
RIG_KEYERTYPE_PADDLE = (1 << 1),
RIG_KEYERTYPE_UNKNOWN = (1 << 2)
};
/**
@ -1660,7 +1672,8 @@ typedef enum {
RIG_MTYPE_BAND, /*!< VFO/Band channel */
RIG_MTYPE_PRIO, /*!< Priority channel */
RIG_MTYPE_VOICE, /*!< Stored Voice Message */
RIG_MTYPE_MORSE /*!< Morse Message */
RIG_MTYPE_MORSE, /*!< Morse Message */
RIG_MTYPE_SPLIT /*!< Split operations */
} chan_type_t;
@ -1849,6 +1862,22 @@ struct rig_spectrum_line
unsigned char *spectrum_data; /*!< 8-bit spectrum data covering bandwidth of either the span_freq in center mode or from low edge to high edge in fixed mode. A higher value represents higher signal strength. */
};
/**
* Config item for deferred processing
**/
struct deferred_config_item {
struct deferred_config_item *next;
hamlib_token_t token;
char *value; // strdup'ed, must be freed
};
typedef struct deferred_config_item deferred_config_item_t;
struct deferred_config_header {
struct deferred_config_item *first; // NULL if none
struct deferred_config_item *last;
};
typedef struct deferred_config_header deferred_config_header_t;
/**
* \brief Rig data structure.
*
@ -2491,6 +2520,8 @@ typedef hamlib_port_t port_t;
#define ROTPORT(r) (&r->state.rotport)
#define ROTPORT2(r) (&r->state.rotport2)
#define STATE(r) (&r->state)
#define AMPSTATE(a) (&(a)->state)
#define ROTSTATE(r) (&(r)->state)
/* Then when the rigport address is stored as a pointer somewhere else(say,
* in the rig structure itself), the definition could be changed to
* #define RIGPORT(r) r->somewhereelse
@ -2506,6 +2537,8 @@ typedef hamlib_port_t port_t;
#define HAMLIB_ROTPORT(r) ((hamlib_port_t *)rot_data_pointer(r, RIG_PTRX_ROTPORT))
#define HAMLIB_ROTPORT2(r) ((hamlib_port_t *)rot_data_pointer(r, RIG_PTRX_ROTPORT2))
#define HAMLIB_STATE(r) ((struct rig_state *)rig_data_pointer(r, RIG_PTRX_STATE))
#define HAMLIB_AMPSTATE(a) ((struct amp_state *)amp_data_pointer(a, RIG_PTRX_AMPSTATE))
#define HAMLIB_ROTSTATE(r) ((struct rot_state *)rot_data_pointer(r, RIG_PTRX_ROTSTATE))
#endif
typedef enum {
@ -2518,6 +2551,8 @@ typedef enum {
RIG_PTRX_ROTPORT,
RIG_PTRX_ROTPORT2,
RIG_PTRX_STATE,
RIG_PTRX_AMPSTATE,
RIG_PTRX_ROTSTATE,
// New entries go directly above this line====================
RIG_PTRX_MAXIMUM
} rig_ptrx_t;
@ -2851,6 +2886,7 @@ struct rig_state {
int post_ptt_delay; /*!< delay after PTT to allow for relays and such */
struct timespec freq_event_elapsed;
int freq_skip; /*!< allow frequency skip for gpredict RX/TX freq set */
client_t client;
// New rig_state items go before this line ============================================
};
@ -2865,7 +2901,7 @@ struct rig_state {
*/
struct rig_state_deprecated {
/********* ENSURE YOU DO NOT EVER MODIFY THIS STRUCTURE *********/
/********* It will remain forever to provide DLL backwards compatiblity ******/
/********* It will remain forever to provide DLL backwards compatibility ******/
/*
* overridable fields
*/
@ -3025,7 +3061,7 @@ typedef int (*spectrum_cb_t)(RIG *,
* \sa rig_set_freq_callback(), rig_set_mode_callback(), rig_set_vfo_callback(),
* rig_set_ptt_callback(), rig_set_dcd_callback()
*/
// Do NOT add/remove from this structure -- it will break DLL backwards compatiblity
// Do NOT add/remove from this structure -- it will break DLL backwards compatibility
struct rig_callbacks {
freq_cb_t freq_event; /*!< Frequency change event */
rig_ptr_t freq_arg; /*!< Frequency change argument */
@ -3720,6 +3756,7 @@ extern HAMLIB_EXPORT_VAR(char) debugmsgsave[DEBUGMSGSAVE_SIZE]; // last debug m
extern HAMLIB_EXPORT_VAR(char) debugmsgsave2[DEBUGMSGSAVE_SIZE]; // last-1 debug msg
// debugmsgsave3 is deprecated
extern HAMLIB_EXPORT_VAR(char) debugmsgsave3[DEBUGMSGSAVE_SIZE]; // last-2 debug msg
#define rig_debug_clear() { debugmsgsave[0] = debugmsgsave2[0] = debugmsgsave3[0] = 0; };
#ifndef __cplusplus
#ifdef __GNUC__
// doing the debug macro with a dummy sprintf allows gcc to check the format string
@ -3729,10 +3766,10 @@ extern HAMLIB_EXPORT_VAR(char) debugmsgsave3[DEBUGMSGSAVE_SIZE]; // last-2 debu
// Measuring elapsed time -- local variable inside function when macro is used
#define ELAPSED1 struct timespec __begin; elapsed_ms(&__begin, HAMLIB_ELAPSED_SET);
#define ELAPSED2 rig_debug(RIG_DEBUG_VERBOSE, "%s%d:%s: elapsed=%.0lfms\n", spaces(rig->state.depth-1), rig->state.depth, __func__, elapsed_ms(&__begin, HAMLIB_ELAPSED_GET));
#define ELAPSED2 rig_debug(RIG_DEBUG_VERBOSE, "%s%d:%s: elapsed=%.0lfms\n", spaces(STATE(rig)->depth), STATE(rig)->depth, __func__, elapsed_ms(&__begin, HAMLIB_ELAPSED_GET));
// use this instead of snprintf for automatic detection of buffer limit
#define SNPRINTF(s,n,...) { snprintf(s,n,##__VA_ARGS__);if (strlen(s) > n-1) fprintf(stderr,"****** %s(%d): buffer overflow ******\n", __func__, __LINE__); }
#define SNPRINTF(s,n,...) { if (snprintf(s,n,##__VA_ARGS__) >= (n)) fprintf(stderr,"***** %s(%d): message truncated *****\n", __func__, __LINE__); }
extern HAMLIB_EXPORT(void)
rig_debug HAMLIB_PARAMS((enum rig_debug_level_e debug_level,

Wyświetl plik

@ -26,6 +26,8 @@
//! @cond Doxygen_Suppress
// 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
@ -143,6 +145,7 @@
#define RIG_MODEL_FT710 RIG_MAKE_MODEL(RIG_YAESU, 49)
#define RIG_MODEL_FT9000OLD RIG_MAKE_MODEL(RIG_YAESU, 50)
#define RIG_MODEL_Q900 RIG_MAKE_MODEL(RIG_YAESU, 51)
#define RIG_MODEL_PMR171 RIG_MAKE_MODEL(RIG_YAESU, 52)
/*
* Kenwood
@ -204,6 +207,7 @@
#define RIG_MODEL_FX4 RIG_MAKE_MODEL(RIG_KENWOOD,53)
#define RIG_MODEL_THETIS RIG_MAKE_MODEL(RIG_KENWOOD, 54)
#define RIG_MODEL_TRUSDX RIG_MAKE_MODEL(RIG_KENWOOD, 55)
#define RIG_MODEL_SDRCONSOLE RIG_MAKE_MODEL(RIG_KENWOOD, 56)
/*
* Icom
@ -292,6 +296,8 @@
#define RIG_MODEL_G90 RIG_MAKE_MODEL(RIG_ICOM, 88) /* Xiegu G90 */
#define RIG_MODEL_X5105 RIG_MAKE_MODEL(RIG_ICOM, 89) /* Xiegu X5105 -- G90 compatible */
#define RIG_MODEL_IC905 RIG_MAKE_MODEL(RIG_ICOM, 90)
#define RIG_MODEL_X6200 RIG_MAKE_MODEL(RIG_ICOM, 91) /* Xiegu X6200 */
#define RIG_MODEL_IC7760 RIG_MAKE_MODEL(RIG_ICOM, 92)
/*
* Optoelectronics (CI-V)
@ -532,6 +538,14 @@
#define RIG_MODEL_SDR1000RFE RIG_MAKE_MODEL(RIG_FLEXRADIO, 2)
#define RIG_MODEL_DTTSP RIG_MAKE_MODEL(RIG_FLEXRADIO, 3)
#define RIG_MODEL_DTTSP_UDP RIG_MAKE_MODEL(RIG_FLEXRADIO, 4)
#define RIG_MODEL_SMARTSDR_A RIG_MAKE_MODEL(RIG_FLEXRADIO, 5)
#define RIG_MODEL_SMARTSDR_B RIG_MAKE_MODEL(RIG_FLEXRADIO, 6)
#define RIG_MODEL_SMARTSDR_C RIG_MAKE_MODEL(RIG_FLEXRADIO, 7)
#define RIG_MODEL_SMARTSDR_D RIG_MAKE_MODEL(RIG_FLEXRADIO, 8)
#define RIG_MODEL_SMARTSDR_E RIG_MAKE_MODEL(RIG_FLEXRADIO, 9)
#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
@ -582,7 +596,7 @@
#define RIG_MODEL_EB200 RIG_MAKE_MODEL(RIG_RS, 2)
#define RIG_MODEL_XK2100 RIG_MAKE_MODEL(RIG_RS, 3)
#define RIG_MODEL_EK89X RIG_MAKE_MODEL(RIG_RS, 4)
#define RIG_MODEL_XK852 RIG_MAKE_MODEL(RIG_RS, 5)
/*
* Phillips/Simoco PRM80
*/
@ -671,6 +685,19 @@
#define RIG_BACKEND_ANYTONE "AnyTone"
#define RIG_MODEL_ATD578UVIII RIG_MAKE_MODEL(RIG_ANYTONE, 1)
/*
* Motorola rigs
*/
#define RIG_MOTOROLA 38
#define RIG_BACKEND_MOTOROLA "Motorola"
#define RIG_MODEL_MICOM2 RIG_MAKE_MODEL(RIG_MOTOROLA, 1)
/*
* Commradio / AeroStream Communications
*/
#define RIG_COMMRADIO 39
#define RIG_BACKEND_COMMRADIO "commradio"
#define RIG_MODEL_CTX10 RIG_MAKE_MODEL(RIG_COMMRADIO, 1)
//! @endcond

Wyświetl plik

@ -215,6 +215,126 @@ typedef enum {
*/
#define ROT_MOVE_CW ROT_MOVE_RIGHT
/**
* \def ROT_MOVE_UP_LEFT
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_UP_CCW.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_UP_LEFT (1<<5)
/**
* \def ROT_MOVE_UP_CCW
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_UP_LEFT.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_UP_CCW ROT_MOVE_UP_LEFT
/**
* \def ROT_MOVE_UP_RIGHT
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_UP_CW.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_UP_RIGHT (1<<6)
/**
* \def ROT_MOVE_UP_CW
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_UP_RIGHT.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_UP_CW ROT_MOVE_UP_RIGHT
/**
* \def ROT_MOVE_DOWN_LEFT
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_DOWN_CCW.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_DOWN_LEFT (1 << 7)
/**
* \def ROT_MOVE_DOWN_CCW
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_DOWN_LEFT.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT,
* ROT_MOVE_DOWN_RIGHT, ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_DOWN_CCW ROT_MOVE_DOWN_LEFT
/**
* \def ROT_MOVE_DOWN_RIGHT
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_DOWN_CW.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_CW
*/
#define ROT_MOVE_DOWN_RIGHT (1 << 8)
/**
* \def ROT_MOVE_DOWN_CW
* \brief A macro that returns the flag for the \b clockwise direction.
*
* This macro defines the value of the \b clockwise direction which can be
* used with the rot_move() function. This value is equivalent to
* ROT_MOVE_DOWN_RIGHT.
*
* \sa rot_move(), ROT_MOVE_UP, ROT_MOVE_DOWN, ROT_MOVE_LEFT, ROT_MOVE_CCW,
* ROT_MOVE_RIGHT, ROT_MOVE_CW, ROT_MOVE_UP_LEFT, ROT_MOVE_UP_CCW,
* ROT_MOVE_UP_RIGHT, ROT_MOVE_UP_CW, ROT_MOVE_DOWN_LEFT, ROT_MOVE_DOWN_CCW,
* ROT_MOVE_DOWN_RIGHT,
*/
#define ROT_MOVE_DOWN_CW ROT_MOVE_DOWN_RIGHT
/**
* \brief Rotator status flags
@ -508,6 +628,8 @@ struct rot_state {
int current_speed; /*!< Current speed 1-100, to be used when no change to speed is requested. */
hamlib_port_t rotport; /*!< Rotator port (internal use). */
hamlib_port_t rotport2; /*!< 2nd Rotator port (internal use). */
rig_ptr_t *pstrotator_handler_priv_data;
deferred_config_header_t config_queue;
};

Wyświetl plik

@ -86,6 +86,8 @@
//! @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)
/**
@ -700,6 +702,18 @@
//! @endcond
#define ROT_MODEL_SAEBRTRACK ROT_MAKE_MODEL(ROT_SAEBRTRACK, 1)
/**
* \brief A macro that returns the model number of the SKYWATCHER backend.
*
* \def ROT_MODEL_SKYWATCHER
*
* The SKYWATCHER backend 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.