Hamlib 4.7~git
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
55struct rig_state {
56 /********* ENSURE ANY NEW ITEMS ARE ADDED AT BOTTOM OF THIS STRUCTURE *********/
57 /*
58 * overridable fields
59 */
60 // moving the hamlib_port_t to the end of rig_state and making it a pointer
61 // this should allow changes to hamlib_port_t without breaking shared libraries
62 // these will maintain a copy of the new port_t for backwards compatibility
63 // to these offsets -- note these must stay until a major version update is done like 5.0
67
68 double vfo_comp;
69
71 freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
72 freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
73
74 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
75
76 struct filter_list filters[HAMLIB_FLTLSTSIZ];
77
79
80 chan_t chan_list[HAMLIB_CHANLSTSIZ];
81
85
87
88 int preamp[HAMLIB_MAXDBLSTSIZ];
89 int attenuator[HAMLIB_MAXDBLSTSIZ];
90
97
100
101
102 /*
103 * non overridable fields, internal use
104 */
105
110 rig_ptr_t priv;
111 rig_ptr_t obj;
112
117 //rmode_t current_modeB; /*!< Mode currently set VFOB */
121 // mode_list is used by some
122 // so anything added to this structure must be below here
129 // uplink allows gpredict to behave better by no reading the uplink VFO
130 int uplink;
131 HL_DEPRECATED
149
150 volatile unsigned int snapshot_packet_sequence_number;
151
158 pthread_mutex_t mutex_set_transaction;
162 /********* DO NOT ADD or CHANGE anything (or than to rename) ABOVE THIS LINE *********/
163 /********* ENSURE ANY NEW ITEMS ARE ADDED AFTER HERE *********/
164 /* flags instructing the rig_get routines to use cached values when asyncio is in use */
168 int depth;
172 char client_version[32];
176 // Adding a number of items so netrigctl can see the real rig information
177 // Eventually may want to add these so that rigctld can see more of the backend
178 // But that will come later if requested -- for now they just fill out dumpstate.c
180 const char *model_name;
181 const char *mfg_name;
182 const char *version;
183 const char *copyright;
198 int retry;
202 enum agc_level_e agc_levels[HAMLIB_MAX_AGC_LEVELS];
210 freq_range_t rx_range_list1[HAMLIB_FRQRANGESIZ];
211 freq_range_t tx_range_list1[HAMLIB_FRQRANGESIZ];
212 freq_range_t rx_range_list2[HAMLIB_FRQRANGESIZ];
213 freq_range_t tx_range_list2[HAMLIB_FRQRANGESIZ];
214 freq_range_t rx_range_list3[HAMLIB_FRQRANGESIZ];
215 freq_range_t tx_range_list3[HAMLIB_FRQRANGESIZ];
216 freq_range_t rx_range_list4[HAMLIB_FRQRANGESIZ];
217 freq_range_t tx_range_list4[HAMLIB_FRQRANGESIZ];
218 freq_range_t rx_range_list5[HAMLIB_FRQRANGESIZ];
219 freq_range_t tx_range_list5[HAMLIB_FRQRANGESIZ];
220 struct rig_spectrum_scope spectrum_scopes[HAMLIB_MAX_SPECTRUM_SCOPES];
221 enum rig_spectrum_mode_e spectrum_modes[HAMLIB_MAX_SPECTRUM_MODES];
222 freq_t spectrum_spans[HAMLIB_MAX_SPECTRUM_SPANS];
223 struct rig_spectrum_avg_mode spectrum_avg_modes[HAMLIB_MAX_SPECTRUM_AVG_MODES];
224 int spectrum_attenuator[HAMLIB_MAXDBLSTSIZ];
235 rig_comm_status_t comm_status;
236 char device_id[HAMLIB_RIGNAMSIZ];
239 struct timespec freq_event_elapsed;
242 pthread_mutex_t api_mutex;
243// New rig_state items go before this line ============================================
244};
245
246//---Start cut here---
258 /********* ENSURE YOU DO NOT EVER MODIFY THIS STRUCTURE *********/
259 /********* It will remain forever to provide DLL backwards compatibility ******/
260 /*
261 * overridable fields
262 */
263 // moving the hamlib_port_t to the end of rig_state and making it a pointer
264 // this should allow changes to hamlib_port_t without breaking shared libraries
265 // these will maintain a copy of the new port_t for backwards compatibility
266 // to these offsets -- note these must stay until a major version update is done like 5.0
270
271 double vfo_comp;
272
274 freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ];
275 freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ];
276
277 struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ];
278
279 struct filter_list filters[HAMLIB_FLTLSTSIZ];
280
282
283 chan_t chan_list[HAMLIB_CHANLSTSIZ];
284
288
290
291 int preamp[HAMLIB_MAXDBLSTSIZ];
292 int attenuator[HAMLIB_MAXDBLSTSIZ];
293
300
303
304
305 /*
306 * non overridable fields, internal use
307 */
308
313 rig_ptr_t priv;
314 rig_ptr_t obj;
315
320 //rmode_t current_modeB; /*!< Mode currently set VFOB */
324 // mode_list is used by some
325 // so anything added to this structure must be below here
332 // uplink allows gpredict to behave better by no reading the uplink VFO
333 int uplink;
351
352 volatile unsigned int snapshot_packet_sequence_number;
353
360 pthread_mutex_t mutex_set_transaction;
364 /********* DO NOT ADD or CHANGE anything (or than to rename) ABOVE THIS LINE *********/
365 /********* ENSURE ANY NEW ITEMS ARE ADDED AFTER HERE *********/
366 /* flags instructing the rig_get routines to use cached values when asyncio is in use */
370 int depth;
374 char client_version[32];
378};
379//---End cut here---
380
381#if defined(IN_HAMLIB)
382#define STATE(r) (&(r)->state)
383#endif
397#define HAMLIB_STATE(r) ((struct rig_state *)rig_data_pointer(r, RIG_PTRX_STATE))
398
399__END_DECLS
400
401#endif /* _RIG_STATE_H */
402
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:544
struct chan_list chan_t
chan_t type
Definition rig.h:1748
enum client_e client_t
serial_parity_e
Serial parity.
Definition rig.h:359
struct cal_table cal_table_t
calibration table type
Definition rig.h:1797
uint64_t rmode_t
Radio mode.
Definition rig.h:1392
shortfreq_t pbwidth_t
Definition rig.h:676
enum rig_port_e rig_port_t
Port type.
ann_t
Announce.
Definition rig.h:958
uint64_t setting_t
Setting bit mask.
Definition rig.h:1234
powerstat_t
Radio power state.
Definition rig.h:738
scan_t
Rig Scan operation.
Definition rig.h:877
double freq_t
Frequency type.
Definition rig.h:484
struct freq_range_list freq_range_t
Frequency range.
vfo_op_t
VFO operation.
Definition rig.h:784
enum ptt_type_e ptt_type_t
PTT (Push To Talk) type.
signed long shortfreq_t
Short frequency type.
Definition rig.h:506
serial_handshake_e
Serial handshake.
Definition rig.h:371
agc_level_e
AGC delay settings.
Definition rig.h:409
unsigned int tone_t
CTCSS and DCS type definition.
Definition rig.h:328
#define RIG_SETTING_MAX
Maximum # of rig settings.
Definition rig.h:1240
enum dcd_type_e dcd_type_t
DCD (Data Carrier Detect) type.
struct gran gran_t
gran_t type
Definition rig.h:1771
rig_status_e
Development status of the backend.
Definition rig.h:443
rig_spectrum_mode_e
Spectrum scope modes.
Definition rig.h:1851
uint32_t rig_model_t
Definition riglist.h:1125
Definition rig.h:176
Filter definition.
Definition rig.h:1557
Multicast data items the are unique per rig instantiation This is meant for internal Hamlib use only.
Definition rig.h:2571
Rig cache data.
Definition rig.h:2491
Spectrum scope averaging modes.
Definition rig.h:1863
Spectrum scope.
Definition rig.h:1843
Deprecated Rig state containing live data and customized fields.
Definition rig_state.h:257
int comm_state
Definition rig_state.h:312
vfo_t current_vfo
Definition rig_state.h:310
shortfreq_t max_xit
Definition rig_state.h:286
freq_t current_freq
Definition rig_state.h:318
int auto_power_off
Definition rig_state.h:338
int auto_power_on
Definition rig_state.h:336
hamlib_port_t rigport
Definition rig_state.h:361
int use_cached_mode
Definition rig_state.h:368
hamlib_port_t pttport
Definition rig_state.h:362
hamlib_port_t dcdport
Definition rig_state.h:363
volatile int async_data_handler_thread_run
Definition rig_state.h:356
struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ]
Definition rig_state.h:277
gran_t level_gran[RIG_SETTING_MAX]
Definition rig_state.h:301
freq_t offset_vfob
Definition rig_state.h:376
pthread_mutex_t mutex_set_transaction
Definition rig_state.h:360
hamlib_port_t_deprecated pttport_deprecated
Definition rig_state.h:268
hamlib_port_t_deprecated dcdport_deprecated
Definition rig_state.h:269
int lock_mode
Definition rig_state.h:371
freq_t lo_freq
Definition rig_state.h:329
int async_data_enabled
Definition rig_state.h:316
int attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:292
setting_t has_set_func
Definition rig_state.h:295
rig_ptr_t obj
Definition rig_state.h:314
void * poll_routine_priv_data
Definition rig_state.h:359
powerstat_t powerstat
Definition rig_state.h:372
int depth
Definition rig_state.h:370
int ptt_share
Definition rig_state.h:343
freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:275
int vfo_opt
Definition rig_state.h:335
unsigned char disable_yaesu_bandselect
Definition rig_state.h:347
struct filter_list filters[HAMLIB_FLTLSTSIZ]
Definition rig_state.h:279
int twiddle_rit
Definition rig_state.h:348
pbwidth_t current_width
Definition rig_state.h:321
int use_cached_freq
Definition rig_state.h:367
int transaction_active
Definition rig_state.h:309
rig_ptr_t priv
Definition rig_state.h:313
rmode_t current_mode
Definition rig_state.h:319
int poll_interval
Definition rig_state.h:317
setting_t has_get_func
Definition rig_state.h:294
double vfo_comp
Definition rig_state.h:271
int power_min
Definition rig_state.h:345
gran_t parm_gran[RIG_SETTING_MAX]
Definition rig_state.h:302
int twiddle_state
Definition rig_state.h:349
shortfreq_t max_ifshift
Definition rig_state.h:287
struct multicast_s * multicast
Definition rig_state.h:377
setting_t has_set_parm
Definition rig_state.h:299
setting_t has_set_level
Definition rig_state.h:297
void * async_data_handler_priv_data
Definition rig_state.h:357
time_t twiddle_time
Definition rig_state.h:330
freq_t offset_vfoa
Definition rig_state.h:375
chan_t chan_list[HAMLIB_CHANLSTSIZ]
Definition rig_state.h:283
void * multicast_publisher_priv_data
Definition rig_state.h:355
char client_version[32]
Definition rig_state.h:374
struct rig_cache_deprecated cache
Definition rig_state.h:334
int deprecated_itu_region
Definition rig_state.h:273
setting_t has_get_parm
Definition rig_state.h:298
int auto_disable_screensaver
Definition rig_state.h:340
vfo_t rx_vfo
Definition rig_state.h:350
shortfreq_t max_rit
Definition rig_state.h:285
int preamp[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:291
volatile int multicast_publisher_run
Definition rig_state.h:354
int uplink
Definition rig_state.h:333
ann_t announces
Definition rig_state.h:289
setting_t has_get_level
Definition rig_state.h:296
vfo_t tx_vfo
Definition rig_state.h:322
int vfo_list
Definition rig_state.h:311
char * tuner_control_pathname
Definition rig_state.h:373
hamlib_port_t_deprecated rigport_deprecated
Definition rig_state.h:267
int twiddle_timeout
Definition rig_state.h:331
rmode_t mode_list
Definition rig_state.h:323
volatile int poll_routine_thread_run
Definition rig_state.h:358
cal_table_t str_cal
Definition rig_state.h:281
int power_max
Definition rig_state.h:346
volatile unsigned int snapshot_packet_sequence_number
Definition rig_state.h:352
int use_cached_ptt
Definition rig_state.h:369
int power_now
Definition rig_state.h:344
freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:274
int transmit
Definition rig_state.h:326
Rig state containing live data and customized fields.
Definition rig_state.h:55
int auto_power_on
Definition rig_state.h:134
int bank_qty
Definition rig_state.h:208
int transaction_active
Definition rig_state.h:106
rig_comm_status_t comm_status
Definition rig_state.h:235
int serial_data_bits
Definition rig_state.h:191
pthread_mutex_t mutex_set_transaction
Definition rig_state.h:158
int attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:89
int vfo_opt
Definition rig_state.h:133
int twiddle_rit
Definition rig_state.h:146
setting_t has_set_parm
Definition rig_state.h:96
gran_t level_gran[RIG_SETTING_MAX]
Definition rig_state.h:98
int dual_watch
Definition rig_state.h:237
rmode_t mode_list
Definition rig_state.h:120
int async_data_enabled
Definition rig_state.h:113
shortfreq_t max_rit
Definition rig_state.h:82
int timeout
Definition rig_state.h:197
volatile int async_data_handler_thread_run
Definition rig_state.h:154
volatile int multicast_receiver_run
Definition rig_state.h:233
freq_t lo_freq
Definition rig_state.h:126
int power_max
Definition rig_state.h:144
void * morse_data_handler_priv_data
Definition rig_state.h:226
volatile int poll_routine_thread_run
Definition rig_state.h:156
freq_range_t rx_range_list3[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:214
struct rig_spectrum_scope spectrum_scopes[HAMLIB_MAX_SPECTRUM_SCOPES]
Definition rig_state.h:220
struct rig_spectrum_avg_mode spectrum_avg_modes[HAMLIB_MAX_SPECTRUM_AVG_MODES]
Definition rig_state.h:223
int write_delay
Definition rig_state.h:195
gran_t parm_gran[RIG_SETTING_MAX]
Definition rig_state.h:99
freq_range_t rx_range_list1[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:210
freq_range_t rx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:71
hamlib_port_t_deprecated rigport_deprecated
Definition rig_state.h:64
freq_range_t tx_range_list3[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:215
int post_write_delay
Definition rig_state.h:196
int transceive
Definition rig_state.h:207
int retry
Definition rig_state.h:198
int use_cached_ptt
Definition rig_state.h:167
freq_range_t tx_range_list5[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:219
vfo_t rx_vfo
Definition rig_state.h:148
int agc_level_count
Definition rig_state.h:201
rmode_t current_mode
Definition rig_state.h:116
int freq_skip
Definition rig_state.h:240
freq_range_t tx_range_list2[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:213
const char * copyright
Definition rig_state.h:183
setting_t has_set_func
Definition rig_state.h:92
int uplink
Definition rig_state.h:130
int use_cached_freq
Definition rig_state.h:165
int doppler
Definition rig_state.h:228
tone_t * ctcss_list
Definition rig_state.h:203
tone_t * dcs_list
Definition rig_state.h:204
rig_ptr_t obj
Definition rig_state.h:111
void * poll_routine_priv_data
Definition rig_state.h:157
int twiddle_state
Definition rig_state.h:147
struct filter_list filters[HAMLIB_FLTLSTSIZ]
Definition rig_state.h:76
pbwidth_t current_width
Definition rig_state.h:118
freq_t spectrum_spans[HAMLIB_MAX_SPECTRUM_SPANS]
Definition rig_state.h:222
char client_version[32]
Definition rig_state.h:172
int ptt_share
Definition rig_state.h:141
rig_ptr_t priv
Definition rig_state.h:110
HL_DEPRECATED struct rig_cache_deprecated cache
Definition rig_state.h:132
int lock_mode
Definition rig_state.h:169
freq_range_t tx_range_list[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:72
freq_range_t rx_range_list2[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:212
int use_cached_mode
Definition rig_state.h:166
struct multicast_s * multicast
Definition rig_state.h:175
freq_t current_freq
Definition rig_state.h:115
void * multicast_receiver_priv_data
Definition rig_state.h:234
client_t client
Definition rig_state.h:241
hamlib_port_t dcdport
Definition rig_state.h:161
enum serial_handshake_e serial_handshake
Definition rig_state.h:194
freq_t offset_vfoa
Definition rig_state.h:173
pthread_mutex_t api_mutex
Definition rig_state.h:242
rig_port_t port_type
Definition rig_state.h:188
int depth
Definition rig_state.h:168
FIFO_RIG * fifo_morse
Definition rig_state.h:227
const char * mfg_name
Definition rig_state.h:181
powerstat_t powerstat
Definition rig_state.h:170
char * multicast_cmd_addr
Definition rig_state.h:231
freq_t offset_vfob
Definition rig_state.h:174
int chan_desc_sz
Definition rig_state.h:209
time_t twiddle_time
Definition rig_state.h:127
vfo_t tx_vfo
Definition rig_state.h:119
int deprecated_itu_region
Definition rig_state.h:70
int power_min
Definition rig_state.h:143
double vfo_comp
Definition rig_state.h:68
setting_t has_set_level
Definition rig_state.h:94
hamlib_port_t_deprecated pttport_deprecated
Definition rig_state.h:65
int async_data_supported
Definition rig_state.h:200
volatile int multicast_publisher_run
Definition rig_state.h:152
shortfreq_t max_xit
Definition rig_state.h:83
int post_ptt_delay
Definition rig_state.h:238
hamlib_port_t rigport
Definition rig_state.h:159
int power_now
Definition rig_state.h:142
freq_range_t rx_range_list4[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:216
chan_t chan_list[HAMLIB_CHANLSTSIZ]
Definition rig_state.h:80
enum rig_spectrum_mode_e spectrum_modes[HAMLIB_MAX_SPECTRUM_MODES]
Definition rig_state.h:221
const char * model_name
Definition rig_state.h:180
int twiddle_timeout
Definition rig_state.h:128
int poll_interval
Definition rig_state.h:114
int spectrum_attenuator[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:224
int rig_type
Definition rig_state.h:185
unsigned char disable_yaesu_bandselect
Definition rig_state.h:145
int auto_power_off
Definition rig_state.h:136
dcd_type_t dcd_type
Definition rig_state.h:187
int multicast_cmd_port
Definition rig_state.h:232
int serial_rate_min
Definition rig_state.h:189
enum rig_status_e status
Definition rig_state.h:184
enum serial_parity_e serial_parity
Definition rig_state.h:193
setting_t has_get_parm
Definition rig_state.h:95
int preamp[HAMLIB_MAXDBLSTSIZ]
Definition rig_state.h:88
vfo_t current_vfo
Definition rig_state.h:107
freq_range_t rx_range_list5[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:218
enum agc_level_e agc_levels[HAMLIB_MAX_AGC_LEVELS]
Definition rig_state.h:202
hamlib_port_t_deprecated dcdport_deprecated
Definition rig_state.h:66
volatile int morse_data_handler_thread_run
Definition rig_state.h:225
int auto_disable_screensaver
Definition rig_state.h:138
void * async_data_handler_priv_data
Definition rig_state.h:155
int comm_state
Definition rig_state.h:109
struct timespec freq_event_elapsed
Definition rig_state.h:239
vfo_op_t vfo_ops
Definition rig_state.h:205
int targetable_vfo
Definition rig_state.h:199
int vfo_list
Definition rig_state.h:108
ptt_type_t ptt_type
Definition rig_state.h:186
setting_t has_get_level
Definition rig_state.h:93
setting_t has_get_func
Definition rig_state.h:91
int transmit
Definition rig_state.h:123
ann_t announces
Definition rig_state.h:86
int serial_rate_max
Definition rig_state.h:190
cal_table_t str_cal
Definition rig_state.h:78
rig_model_t rig_model
Definition rig_state.h:179
char device_id[HAMLIB_RIGNAMSIZ]
Definition rig_state.h:236
const char * version
Definition rig_state.h:182
scan_t scan_ops
Definition rig_state.h:206
shortfreq_t max_ifshift
Definition rig_state.h:84
volatile unsigned int snapshot_packet_sequence_number
Definition rig_state.h:150
char * multicast_data_addr
Definition rig_state.h:229
int multicast_data_port
Definition rig_state.h:230
void * multicast_publisher_priv_data
Definition rig_state.h:153
freq_range_t tx_range_list4[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:217
hamlib_port_t pttport
Definition rig_state.h:160
int serial_stop_bits
Definition rig_state.h:192
freq_range_t tx_range_list1[HAMLIB_FRQRANGESIZ]
Definition rig_state.h:211
struct tuning_step_list tuning_steps[HAMLIB_TSLSTSIZ]
Definition rig_state.h:74
char * tuner_control_pathname
Definition rig_state.h:171
Tuning step definition.
Definition rig.h:1522