Hamlib 4.7.2
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 {
88
89 struct {
90 int pin;
91 } parallel;
92
93 struct {
94 int ptt_bitnum;
95 } cm108;
96
97 struct {
98 int vid;
99 int pid;
100 int conf;
101 int iface;
102 int alt;
103 char *vendor_name;
104 char *product;
105 } usb;
106
107 struct {
108 int on_value;
109 int value;
110 } gpio;
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;
163 int data_bits;
164 int stop_bits;
169 } serial;
170
171 struct {
172 int pin;
173 } parallel;
174
175 struct {
176 int ptt_bitnum;
177 } cm108;
178
179 struct {
180 int vid;
181 int pid;
182 int conf;
183 int iface;
184 int alt;
185 char *vendor_name;
186 char *product;
187 } usb;
188
189 struct {
190 int on_value;
191 int value;
192 } gpio;
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:346
serial_control_state_e
Serial control state.
Definition rig.h:368
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:358
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
union hamlib_port_deprecated::@305311217216000035260066360007362023177273235126 parm
short flushx
Definition port.h:156
RIG * rig
Definition port.h:195
struct hamlib_port_deprecated::@000223350032112107244007167117037254247212266064 post_write_date
void * handle
Definition port.h:145
int write_delay
Definition port.h:147
int timeout
Definition port.h:154
short retry
Definition port.h:155
int fd
Definition port.h:144
char pathname[HAMLIB_FILPATHLEN]
Definition port.h:158
Port definition.
Definition port.h:55
void * handle
Definition port.h:63
int asyncio
Definition port.h:114
short retry
Definition port.h:73
short flushx
Definition port.h:74
int fd_sync_read
Definition port.h:120
int fd_sync_error_write
Definition port.h:121
short timeout_retry
Definition port.h:124
int fd_sync_error_read
Definition port.h:122
union hamlib_port::@147055141360315117175354205071070217175261143220 parm
int fd_sync_write
Definition port.h:119
struct hamlib_port::@077330211250007120160332353142301070354273003040 post_write_date
int timeout
Definition port.h:72
int fd
Definition port.h:62
int client_port
Definition port.h:112
int post_write_delay
Definition port.h:66
char pathname[HAMLIB_FILPATHLEN]
Definition port.h:76
RIG * rig
Definition port.h:113
int write_delay
Definition port.h:65
struct hamlib_port::@147055141360315117175354205071070217175261143220::@360322352124044355177140322164123034363237173051 cm108
struct hamlib_port::@147055141360315117175354205071070217175261143220::@233135027057156233215270254221311200120067254102 parallel
struct hamlib_port::@147055141360315117175354205071070217175261143220::@362352146311332015277377320056044162077222214320 usb
struct hamlib_port::@147055141360315117175354205071070217175261143220::@103272155056216263130051043351275036043365072163 gpio
struct hamlib_port::@147055141360315117175354205071070217175261143220::@015001166055121256226137215046357026206123114364 serial
struct hamlib_port_deprecated::@305311217216000035260066360007362023177273235126::@036047160323217302260116213256311010114300201324 parallel
struct hamlib_port_deprecated::@305311217216000035260066360007362023177273235126::@353213077104332117255254156373173263051032313317 serial
struct hamlib_port_deprecated::@305311217216000035260066360007362023177273235126::@163076200265216352227221030355256117156006342356 cm108
struct hamlib_port_deprecated::@305311217216000035260066360007362023177273235126::@267354354002115102134235060203014326337217265354 gpio
struct hamlib_port_deprecated::@305311217216000035260066360007362023177273235126::@064346153307367106213341050167047116071150203121 usb