Hamlib 4.7.1
Loading...
Searching...
No Matches
rig_state.h
Go to the documentation of this file.
1/*
2 * Hamlib Interface - Rig state structure
3 * Copyright (c) 2000-2025 The Hamlib Group
4 * Copyright (c) 2025 George Baltz
5 *
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 *
21 */
22/* SPDX-License-Identifier: LGPL-2.1-or-later */
23
24#ifndef _RIG_STATE_H
25#define _RIG_STATE_H 1
26
27//#include <hamlib/rig.h>
28//#include <pthread.h>
29
30__BEGIN_DECLS
31
36
44
45/* Forward declarations
46 *
47 * Structures pointed to by rig_state and defined elsewhere
48 */
49struct FIFO_RIG_s; /* Defined in src/fifo.h */
50
61struct rig_state {
62 /********* ENSURE ANY NEW ITEMS ARE ADDED AT BOTTOM OF THIS STRUCTURE *********/
63 /*
64 * overridable fields
65 */
66 // moving the hamlib_port_t to the end of rig_state and making it a pointer
67 // this should allow changes to hamlib_port_t without breaking shared libraries
68 // these will maintain a copy of the new port_t for backwards compatibility
69 // to these offsets -- note these must stay until a major version update is done like 5.0
73
74 double vfo_comp;
75
77 freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
78 freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
79
80 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
81
82 struct filter_list filters[HAMLIB_FLTLSTSIZ];
83
85
86 chan_t chan_list[HAMLIB_CHANLSTSIZ];
87
91
93
94 int preamp[HAMLIB_MAXDBLSTSIZ];
95 int attenuator[HAMLIB_MAXDBLSTSIZ];
96
103
106
107
108 /*
109 * non overridable fields, internal use
110 */
111
116 rig_ptr_t priv;
117 rig_ptr_t obj;
118
123 //rmode_t current_modeB; /*!< Mode currently set VFOB */
127 // mode_list is used by some
128 // so anything added to this structure must be below here
135 // uplink allows gpredict to behave better by no reading the uplink VFO
136 int uplink;
137 HL_DEPRECATED
155
156 volatile unsigned int snapshot_packet_sequence_number;
157
164 pthread_mutex_t mutex_set_transaction;
168 /********* DO NOT ADD or CHANGE anything (or than to rename) ABOVE THIS LINE *********/
169 /********* ENSURE ANY NEW ITEMS ARE ADDED AFTER HERE *********/
170 /* flags instructing the rig_get routines to use cached values when asyncio is in use */
174 int depth;
178 char client_version[32];
182 // Adding a number of items so netrigctl can see the real rig information
183 // Eventually may want to add these so that rigctld can see more of the backend
184 // But that will come later if requested -- for now they just fill out dumpstate.c
186 const char *model_name;
187 const char *mfg_name;
188 const char *version;
189 const char *copyright;
204 int retry;
208 enum agc_level_e agc_levels[HAMLIB_MAX_AGC_LEVELS];
216 freq_range_t rx_range_list1[HAMLIB_FRQRANGESIZ];
217 freq_range_t tx_range_list1[HAMLIB_FRQRANGESIZ];
218 freq_range_t rx_range_list2[HAMLIB_FRQRANGESIZ];
219 freq_range_t tx_range_list2[HAMLIB_FRQRANGESIZ];
220 freq_range_t rx_range_list3[HAMLIB_FRQRANGESIZ];
221 freq_range_t tx_range_list3[HAMLIB_FRQRANGESIZ];
222 freq_range_t rx_range_list4[HAMLIB_FRQRANGESIZ];
223 freq_range_t tx_range_list4[HAMLIB_FRQRANGESIZ];
224 freq_range_t rx_range_list5[HAMLIB_FRQRANGESIZ];
225 freq_range_t tx_range_list5[HAMLIB_FRQRANGESIZ];
226 struct rig_spectrum_scope spectrum_scopes[HAMLIB_MAX_SPECTRUM_SCOPES];
227 enum rig_spectrum_mode_e spectrum_modes[HAMLIB_MAX_SPECTRUM_MODES];
228 freq_t spectrum_spans[HAMLIB_MAX_SPECTRUM_SPANS];
229 struct rig_spectrum_avg_mode spectrum_avg_modes[HAMLIB_MAX_SPECTRUM_AVG_MODES];
230 int spectrum_attenuator[HAMLIB_MAXDBLSTSIZ];
241 rig_comm_status_t comm_status;
242 char device_id[HAMLIB_RIGNAMSIZ];
245 struct timespec freq_event_elapsed;
248 pthread_mutex_t api_mutex;
249// New rig_state items go before this line ============================================
250};
251
252//---Start cut here---
264 /********* ENSURE YOU DO NOT EVER MODIFY THIS STRUCTURE *********/
265 /********* It will remain forever to provide DLL backwards compatibility ******/
266 /*
267 * overridable fields
268 */
269 // moving the hamlib_port_t to the end of rig_state and making it a pointer
270 // this should allow changes to hamlib_port_t without breaking shared libraries
271 // these will maintain a copy of the new port_t for backwards compatibility
272 // to these offsets -- note these must stay until a major version update is done like 5.0
276
277 double vfo_comp;
278
280 freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
281 freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
282
283 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
284
285 struct filter_list filters[HAMLIB_FLTLSTSIZ];
286
288
289 chan_t chan_list[HAMLIB_CHANLSTSIZ];
290
294
296
297 int preamp[HAMLIB_MAXDBLSTSIZ];
298 int attenuator[HAMLIB_MAXDBLSTSIZ];
299
306
309
310
311 /*
312 * non overridable fields, internal use
313 */
314
319 rig_ptr_t priv;
320 rig_ptr_t obj;
321
326 //rmode_t current_modeB; /*!< Mode currently set VFOB */
330 // mode_list is used by some
331 // so anything added to this structure must be below here
338 // uplink allows gpredict to behave better by no reading the uplink VFO
339 int uplink;
357
358 volatile unsigned int snapshot_packet_sequence_number;
359
366 pthread_mutex_t mutex_set_transaction;
370 /********* DO NOT ADD or CHANGE anything (or than to rename) ABOVE THIS LINE *********/
371 /********* ENSURE ANY NEW ITEMS ARE ADDED AFTER HERE *********/
372 /* flags instructing the rig_get routines to use cached values when asyncio is in use */
376 int depth;
380 char client_version[32];
384};
385//---End cut here---
386
387#if defined(IN_HAMLIB)
388#define STATE(r) (&(r)->state)
389#endif
403#define HAMLIB_STATE(r) ((struct rig_state *)rig_data_pointer(r, RIG_PTRX_STATE))
404
405__END_DECLS
406
407#endif /* _RIG_STATE_H */
408
struct hamlib_port_deprecated hamlib_port_t_deprecated
struct hamlib_port hamlib_port_t
Port definition.
unsigned int vfo_t
VFO definition.
Definition rig.h:533
struct chan_list chan_t
chan_t type
Definition rig.h:1737
enum client_e client_t
serial_parity_e
Serial parity.
Definition rig.h:348
struct cal_table cal_table_t
calibration table type
Definition rig.h:1786
uint64_t rmode_t
Radio mode.
Definition rig.h:1381
shortfreq_t pbwidth_t
Definition rig.h:665
enum rig_port_e rig_port_t
Port type.
ann_t
Announce.
Definition rig.h:947
uint64_t setting_t
Setting bit mask.
Definition rig.h:1223
powerstat_t
Radio power state.
Definition rig.h:727
scan_t
Rig Scan operation.
Definition rig.h:866
double freq_t
Frequency type.
Definition rig.h:473
struct freq_range_list freq_range_t
Frequency range.
vfo_op_t
VFO operation.
Definition rig.h:773
enum ptt_type_e ptt_type_t
PTT (Push To Talk) type.
signed long shortfreq_t
Short frequency type.
Definition rig.h:495
serial_handshake_e
Serial handshake.
Definition rig.h:360
agc_level_e
AGC delay settings.
Definition rig.h:398
unsigned int tone_t
CTCSS and DCS type definition.
Definition rig.h:317
#define RIG_SETTING_MAX
Maximum # of rig settings.
Definition rig.h:1229
enum dcd_type_e dcd_type_t
DCD (Data Carrier Detect) type.
struct gran gran_t
gran_t type
Definition rig.h:1760
rig_status_e
Development status of the backend.
Definition rig.h:432
rig_spectrum_mode_e
Spectrum scope modes.
Definition rig.h:1840
uint32_t rig_model_t
Definition riglist.h:1161
Definition fifo.h:35
Filter definition.
Definition rig.h:1546
Multicast data items the are unique per rig instantiation This is meant for internal Hamlib use only.
Definition rig.h:2560
Rig cache data.
Definition rig.h:2480
Spectrum scope averaging modes.
Definition rig.h:1852
Spectrum scope.
Definition rig.h:1832
Deprecated Rig state containing live data and customized fields.
Definition rig_state.h:263
int comm_state
Definition rig_state.h:318
vfo_t current_vfo
Definition rig_state.h:316
shortfreq_t max_xit
Definition rig_state.h:292
freq_t current_freq
Definition rig_state.h:324
int auto_power_off
Definition rig_state.h:344
int auto_power_on
Definition rig_state.h:342
hamlib_port_t rigport
Definition rig_state.h:367
int use_cached_mode
Definition rig_state.h:374
hamlib_port_t pttport
Definition rig_state.h:368
hamlib_port_t dcdport
Definition rig_state.h:369
volatile int async_data_handler_thread_run
Definition rig_state.h:362
struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ]
Definition rig_state.h:283
gran_t level_gran[RIG_SETTING_MAX]
Definition rig_state.h:307
freq_t offset_vfob
Definition rig_state.h:382
pthread_mutex_t mutex_set_transaction
Definition rig_state.h:366
hamlib_port_t_deprecated pttport_deprecated
Definition rig_state.h:274
hamlib_port_t_deprecated dcdport_deprecated
Definition rig_state.h:275
int lock_mode
Definition rig_state.h:377
freq_t lo_freq
Definition rig_state.h:335
int async_data_enabled
Definition rig_state.h:322
int attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:298
setting_t has_set_func
Definition rig_state.h:301
rig_ptr_t obj
Definition rig_state.h:320
void * poll_routine_priv_data
Definition rig_state.h:365
powerstat_t powerstat
Definition rig_state.h:378
int depth
Definition rig_state.h:376
int ptt_share
Definition rig_state.h:349
freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:281
int vfo_opt
Definition rig_state.h:341
unsigned char disable_yaesu_bandselect
Definition rig_state.h:353
struct filter_list filters[HAMLIB_FLTLSTSIZ]
Definition rig_state.h:285
int twiddle_rit
Definition rig_state.h:354
pbwidth_t current_width
Definition rig_state.h:327
int use_cached_freq
Definition rig_state.h:373
int transaction_active
Definition rig_state.h:315
rig_ptr_t priv
Definition rig_state.h:319
rmode_t current_mode
Definition rig_state.h:325
int poll_interval
Definition rig_state.h:323
setting_t has_get_func
Definition rig_state.h:300
double vfo_comp
Definition rig_state.h:277
int power_min
Definition rig_state.h:351
gran_t parm_gran[RIG_SETTING_MAX]
Definition rig_state.h:308
int twiddle_state
Definition rig_state.h:355
shortfreq_t max_ifshift
Definition rig_state.h:293
struct multicast_s * multicast
Definition rig_state.h:383
setting_t has_set_parm
Definition rig_state.h:305
setting_t has_set_level
Definition rig_state.h:303
void * async_data_handler_priv_data
Definition rig_state.h:363
time_t twiddle_time
Definition rig_state.h:336
freq_t offset_vfoa
Definition rig_state.h:381
chan_t chan_list[HAMLIB_CHANLSTSIZ]
Definition rig_state.h:289
void * multicast_publisher_priv_data
Definition rig_state.h:361
char client_version[32]
Definition rig_state.h:380
struct rig_cache_deprecated cache
Definition rig_state.h:340
int deprecated_itu_region
Definition rig_state.h:279
setting_t has_get_parm
Definition rig_state.h:304
int auto_disable_screensaver
Definition rig_state.h:346
vfo_t rx_vfo
Definition rig_state.h:356
shortfreq_t max_rit
Definition rig_state.h:291
int preamp[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:297
volatile int multicast_publisher_run
Definition rig_state.h:360
int uplink
Definition rig_state.h:339
ann_t announces
Definition rig_state.h:295
setting_t has_get_level
Definition rig_state.h:302
vfo_t tx_vfo
Definition rig_state.h:328
int vfo_list
Definition rig_state.h:317
char * tuner_control_pathname
Definition rig_state.h:379
hamlib_port_t_deprecated rigport_deprecated
Definition rig_state.h:273
int twiddle_timeout
Definition rig_state.h:337
rmode_t mode_list
Definition rig_state.h:329
volatile int poll_routine_thread_run
Definition rig_state.h:364
cal_table_t str_cal
Definition rig_state.h:287
int power_max
Definition rig_state.h:352
volatile unsigned int snapshot_packet_sequence_number
Definition rig_state.h:358
int use_cached_ptt
Definition rig_state.h:375
int power_now
Definition rig_state.h:350
freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:280
int transmit
Definition rig_state.h:332
Rig state containing live data and customized fields.
Definition rig_state.h:61
int auto_power_on
Definition rig_state.h:140
int bank_qty
Definition rig_state.h:214
int transaction_active
Definition rig_state.h:112
rig_comm_status_t comm_status
Definition rig_state.h:241
int serial_data_bits
Definition rig_state.h:197
pthread_mutex_t mutex_set_transaction
Definition rig_state.h:164
int attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:95
int vfo_opt
Definition rig_state.h:139
int twiddle_rit
Definition rig_state.h:152
setting_t has_set_parm
Definition rig_state.h:102
gran_t level_gran[RIG_SETTING_MAX]
Definition rig_state.h:104
int dual_watch
Definition rig_state.h:243
rmode_t mode_list
Definition rig_state.h:126
int async_data_enabled
Definition rig_state.h:119
shortfreq_t max_rit
Definition rig_state.h:88
int timeout
Definition rig_state.h:203
volatile int async_data_handler_thread_run
Definition rig_state.h:160
volatile int multicast_receiver_run
Definition rig_state.h:239
freq_t lo_freq
Definition rig_state.h:132
int power_max
Definition rig_state.h:150
void * morse_data_handler_priv_data
Definition rig_state.h:232
volatile int poll_routine_thread_run
Definition rig_state.h:162
freq_range_t rx_range_list3[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:220
struct rig_spectrum_scope spectrum_scopes[HAMLIB_MAX_SPECTRUM_SCOPES]
Definition rig_state.h:226
struct rig_spectrum_avg_mode spectrum_avg_modes[HAMLIB_MAX_SPECTRUM_AVG_MODES]
Definition rig_state.h:229
int write_delay
Definition rig_state.h:201
gran_t parm_gran[RIG_SETTING_MAX]
Definition rig_state.h:105
freq_range_t rx_range_list1[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:216
freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:77
hamlib_port_t_deprecated rigport_deprecated
Definition rig_state.h:70
freq_range_t tx_range_list3[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:221
int post_write_delay
Definition rig_state.h:202
int transceive
Definition rig_state.h:213
int retry
Definition rig_state.h:204
int use_cached_ptt
Definition rig_state.h:173
freq_range_t tx_range_list5[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:225
vfo_t rx_vfo
Definition rig_state.h:154
int agc_level_count
Definition rig_state.h:207
rmode_t current_mode
Definition rig_state.h:122
int freq_skip
Definition rig_state.h:246
freq_range_t tx_range_list2[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:219
const char * copyright
Definition rig_state.h:189
setting_t has_set_func
Definition rig_state.h:98
int uplink
Definition rig_state.h:136
int use_cached_freq
Definition rig_state.h:171
int doppler
Definition rig_state.h:234
tone_t * ctcss_list
Definition rig_state.h:209
tone_t * dcs_list
Definition rig_state.h:210
rig_ptr_t obj
Definition rig_state.h:117
void * poll_routine_priv_data
Definition rig_state.h:163
int twiddle_state
Definition rig_state.h:153
struct filter_list filters[HAMLIB_FLTLSTSIZ]
Definition rig_state.h:82
pbwidth_t current_width
Definition rig_state.h:124
freq_t spectrum_spans[HAMLIB_MAX_SPECTRUM_SPANS]
Definition rig_state.h:228
char client_version[32]
Definition rig_state.h:178
int ptt_share
Definition rig_state.h:147
rig_ptr_t priv
Definition rig_state.h:116
HL_DEPRECATED struct rig_cache_deprecated cache
Definition rig_state.h:138
int lock_mode
Definition rig_state.h:175
freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:78
freq_range_t rx_range_list2[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:218
int use_cached_mode
Definition rig_state.h:172
struct multicast_s * multicast
Definition rig_state.h:181
freq_t current_freq
Definition rig_state.h:121
void * multicast_receiver_priv_data
Definition rig_state.h:240
client_t client
Definition rig_state.h:247
hamlib_port_t dcdport
Definition rig_state.h:167
enum serial_handshake_e serial_handshake
Definition rig_state.h:200
freq_t offset_vfoa
Definition rig_state.h:179
pthread_mutex_t api_mutex
Definition rig_state.h:248
rig_port_t port_type
Definition rig_state.h:194
int depth
Definition rig_state.h:174
const char * mfg_name
Definition rig_state.h:187
powerstat_t powerstat
Definition rig_state.h:176
char * multicast_cmd_addr
Definition rig_state.h:237
freq_t offset_vfob
Definition rig_state.h:180
int chan_desc_sz
Definition rig_state.h:215
time_t twiddle_time
Definition rig_state.h:133
vfo_t tx_vfo
Definition rig_state.h:125
int deprecated_itu_region
Definition rig_state.h:76
int power_min
Definition rig_state.h:149
double vfo_comp
Definition rig_state.h:74
setting_t has_set_level
Definition rig_state.h:100
hamlib_port_t_deprecated pttport_deprecated
Definition rig_state.h:71
int async_data_supported
Definition rig_state.h:206
volatile int multicast_publisher_run
Definition rig_state.h:158
shortfreq_t max_xit
Definition rig_state.h:89
int post_ptt_delay
Definition rig_state.h:244
hamlib_port_t rigport
Definition rig_state.h:165
int power_now
Definition rig_state.h:148
freq_range_t rx_range_list4[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:222
chan_t chan_list[HAMLIB_CHANLSTSIZ]
Definition rig_state.h:86
enum rig_spectrum_mode_e spectrum_modes[HAMLIB_MAX_SPECTRUM_MODES]
Definition rig_state.h:227
const char * model_name
Definition rig_state.h:186
int twiddle_timeout
Definition rig_state.h:134
int poll_interval
Definition rig_state.h:120
int spectrum_attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:230
int rig_type
Definition rig_state.h:191
unsigned char disable_yaesu_bandselect
Definition rig_state.h:151
int auto_power_off
Definition rig_state.h:142
dcd_type_t dcd_type
Definition rig_state.h:193
int multicast_cmd_port
Definition rig_state.h:238
int serial_rate_min
Definition rig_state.h:195
enum rig_status_e status
Definition rig_state.h:190
enum serial_parity_e serial_parity
Definition rig_state.h:199
setting_t has_get_parm
Definition rig_state.h:101
int preamp[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:94
vfo_t current_vfo
Definition rig_state.h:113
struct FIFO_RIG_s * fifo_morse
Definition rig_state.h:233
freq_range_t rx_range_list5[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:224
enum agc_level_e agc_levels[HAMLIB_MAX_AGC_LEVELS]
Definition rig_state.h:208
hamlib_port_t_deprecated dcdport_deprecated
Definition rig_state.h:72
volatile int morse_data_handler_thread_run
Definition rig_state.h:231
int auto_disable_screensaver
Definition rig_state.h:144
void * async_data_handler_priv_data
Definition rig_state.h:161
int comm_state
Definition rig_state.h:115
struct timespec freq_event_elapsed
Definition rig_state.h:245
vfo_op_t vfo_ops
Definition rig_state.h:211
int targetable_vfo
Definition rig_state.h:205
int vfo_list
Definition rig_state.h:114
ptt_type_t ptt_type
Definition rig_state.h:192
setting_t has_get_level
Definition rig_state.h:99
setting_t has_get_func
Definition rig_state.h:97
int transmit
Definition rig_state.h:129
ann_t announces
Definition rig_state.h:92
int serial_rate_max
Definition rig_state.h:196
cal_table_t str_cal
Definition rig_state.h:84
rig_model_t rig_model
Definition rig_state.h:185
char device_id[HAMLIB_RIGNAMSIZ]
Definition rig_state.h:242
const char * version
Definition rig_state.h:188
scan_t scan_ops
Definition rig_state.h:212
shortfreq_t max_ifshift
Definition rig_state.h:90
volatile unsigned int snapshot_packet_sequence_number
Definition rig_state.h:156
char * multicast_data_addr
Definition rig_state.h:235
int multicast_data_port
Definition rig_state.h:236
void * multicast_publisher_priv_data
Definition rig_state.h:159
freq_range_t tx_range_list4[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:223
hamlib_port_t pttport
Definition rig_state.h:166
int serial_stop_bits
Definition rig_state.h:198
freq_range_t tx_range_list1[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:217
struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ]
Definition rig_state.h:80
char * tuner_control_pathname
Definition rig_state.h:177
Tuning step definition.
Definition rig.h:1511