Hamlib 4.7.1
Loading...
Searching...
No Matches
port.h
Go to the documentation of this file.
1/*
2 * Hamlib Interface - Port 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 _HL_PORT_H
25#define _HL_PORT_H 1
26
27
28__BEGIN_DECLS
29
34
43
55typedef struct hamlib_port {
56 union {
60 } type;
61
62 int fd;
63 void *handle;
64
67
68 struct {
69 int tv_sec, tv_usec;
71
72 int timeout;
73 short retry;
74 short flushx;
75
76 char pathname[HAMLIB_FILPATHLEN];
77
78 union {
79 struct {
80 int rate;
88
89 struct {
90 int pin;
92
93 struct {
96
97 struct {
98 int vid;
99 int pid;
100 int conf;
101 int iface;
102 int alt;
104 char *product;
105 } usb;
106
107 struct {
109 int value;
111 } parm;
115#if defined(_WIN32)
116 hamlib_async_pipe_t *sync_data_pipe;
117 hamlib_async_pipe_t *sync_data_error_pipe;
118#else
123#endif
125// DO NOT ADD ANYTHING HERE UNTIL 5.0!!
127
128
138 union {
142 } type;
143
144 int fd;
145 void *handle;
146
149
150 struct {
151 int tv_sec, tv_usec;
153
155 short retry;
156 short flushx;
157
158 char pathname[HAMLIB_FILPATHLEN];
159
160 union {
161 struct {
162 int rate;
170
171 struct {
172 int pin;
174
175 struct {
178
179 struct {
180 int vid;
181 int pid;
182 int conf;
183 int iface;
184 int alt;
186 char *product;
187 } usb;
188
189 struct {
191 int value;
193 } parm;
197
198#if !defined(__APPLE__) || !defined(__cplusplus)
201
204#endif
205
208#define HAMLIB_RIGPORT(r) ((hamlib_port_t *)rig_data_pointer((r), RIG_PTRX_RIGPORT))
209#define HAMLIB_PTTPORT(r) ((hamlib_port_t *)rig_data_pointer((r), RIG_PTRX_PTTPORT))
210#define HAMLIB_DCDPORT(r) ((hamlib_port_t *)rig_data_pointer((r), RIG_PTRX_DCDPORT))
211#define HAMLIB_AMPPORT(a) ((hamlib_port_t *)amp_data_pointer((a), RIG_PTRX_AMPPORT))
212#define HAMLIB_ROTPORT(r) ((hamlib_port_t *)rot_data_pointer((r), RIG_PTRX_ROTPORT))
213#define HAMLIB_ROTPORT2(r) ((hamlib_port_t *)rot_data_pointer((r), RIG_PTRX_ROTPORT2))
215
216__END_DECLS
217
218#endif /* _HL_PORT_H */
219
struct hamlib_port_deprecated hamlib_port_t_deprecated
hamlib_port_t_deprecated port_t_deprecated
Definition port.h:200
hamlib_port_t port_t
Short type name of the hamlib_port structure.
Definition port.h:203
struct hamlib_port hamlib_port_t
Port definition.
serial_parity_e
Serial parity.
Definition rig.h:348
serial_control_state_e
Serial control state.
Definition rig.h:370
enum rig_port_e rig_port_t
Port type.
enum ptt_type_e ptt_type_t
PTT (Push To Talk) type.
serial_handshake_e
Serial handshake.
Definition rig.h:360
struct s_rig RIG
Rig structure definition (see rig for details).
Definition rig.h:277
enum dcd_type_e dcd_type_t
DCD (Data Carrier Detect) type.
Definition port.h:137
int post_write_delay
Definition port.h:148
int client_port
Definition port.h:194
struct hamlib_port_deprecated::@214067050242023205056144021067016333054022355105::@221165217334263343117026331254260144364024034136 parallel
int pid
Definition port.h:181
int alt
Definition port.h:184
rig_port_t rig
Definition port.h:139
int iface
Definition port.h:183
int ptt_bitnum
Definition port.h:176
enum serial_parity_e parity
Definition port.h:165
short flushx
Definition port.h:156
struct hamlib_port_deprecated::@214067050242023205056144021067016333054022355105::@170202114063312141053065025000260125016054323273 usb
int on_value
Definition port.h:190
char * vendor_name
Definition port.h:185
void * handle
Definition port.h:145
struct hamlib_port_deprecated::@214067050242023205056144021067016333054022355105::@007154316172146327360336061241216240221107172233 gpio
int data_bits
Definition port.h:163
struct hamlib_port_deprecated::@220255234026232271113015027255040154174137242103 post_write_date
int write_delay
Definition port.h:147
enum serial_control_state_e rts_state
Definition port.h:167
int conf
Definition port.h:182
ptt_type_t ptt
Definition port.h:140
struct hamlib_port_deprecated::@214067050242023205056144021067016333054022355105::@342152071131026055335062042204304040021252225027 cm108
int rate
Definition port.h:162
int timeout
Definition port.h:154
char * product
Definition port.h:186
dcd_type_t dcd
Definition port.h:141
enum serial_handshake_e handshake
Definition port.h:166
int stop_bits
Definition port.h:164
short retry
Definition port.h:155
int value
Definition port.h:191
int pin
Definition port.h:172
struct hamlib_port_deprecated::@214067050242023205056144021067016333054022355105::@012332307070322075020104161136316322024116115010 serial
int fd
Definition port.h:144
char pathname[HAMLIB_FILPATHLEN]
Definition port.h:158
enum serial_control_state_e dtr_state
Definition port.h:168
int vid
Definition port.h:180
Port definition.
Definition port.h:55
void * handle
Definition port.h:63
int asyncio
Definition port.h:114
int alt
Definition port.h:102
int conf
Definition port.h:100
short retry
Definition port.h:73
enum serial_control_state_e rts_state
Definition port.h:85
int ptt_bitnum
Definition port.h:94
struct hamlib_port::@066155303301306210062263124353365211234331250047::@201170036265220073240360362345125205040231256002 serial
int pin
Definition port.h:90
short flushx
Definition port.h:74
int data_bits
Definition port.h:81
int fd_sync_read
Definition port.h:120
char * product
Definition port.h:104
int fd_sync_error_write
Definition port.h:121
int rate
Definition port.h:80
short timeout_retry
Definition port.h:124
int fd_sync_error_read
Definition port.h:122
struct hamlib_port::@066155303301306210062263124353365211234331250047::@015033361121143237127213330367325162344200003105 gpio
struct hamlib_port::@066155303301306210062263124353365211234331250047::@242106200016356312313145212267031102151103074276 parallel
int iface
Definition port.h:101
enum serial_control_state_e dtr_state
Definition port.h:86
int fd_sync_write
Definition port.h:119
int pid
Definition port.h:99
int vid
Definition port.h:98
enum serial_handshake_e handshake
Definition port.h:84
char * vendor_name
Definition port.h:103
int on_value
Definition port.h:108
rig_port_t rig
Definition port.h:57
int timeout
Definition port.h:72
int fd
Definition port.h:62
int client_port
Definition port.h:112
struct hamlib_port::@066155303301306210062263124353365211234331250047::@137137235300344132052006027235161211344100371041 cm108
int post_write_delay
Definition port.h:66
char pathname[HAMLIB_FILPATHLEN]
Definition port.h:76
enum serial_parity_e parity
Definition port.h:83
int stop_bits
Definition port.h:82
int value
Definition port.h:109
struct hamlib_port::@340060214140164143353363256363216255172152117115 post_write_date
dcd_type_t dcd
Definition port.h:59
ptt_type_t ptt
Definition port.h:58
int write_delay
Definition port.h:65
struct hamlib_port::@066155303301306210062263124353365211234331250047::@337101320241116132155107242370372372342140355106 usb