summaryrefslogtreecommitdiff
path: root/include/hybbx/packet_radio.h
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-08 03:54:55 +0000
commit20cb29c2f8c5c87bc590896854a20b1473ceb358 (patch)
tree2857f41513a56ad41af97b57362639298aa7f033 /include/hybbx/packet_radio.h
#2
Diffstat (limited to 'include/hybbx/packet_radio.h')
-rw-r--r--include/hybbx/packet_radio.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/hybbx/packet_radio.h b/include/hybbx/packet_radio.h
new file mode 100644
index 0000000..51f79a0
--- /dev/null
+++ b/include/hybbx/packet_radio.h
@@ -0,0 +1,57 @@
+#ifndef HYBBX_PACKET_RADIO_H
+#define HYBBX_PACKET_RADIO_H
+
+#include "hybbx/types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** Default line speed for packet radio (2400 baud). */
+#define HYBBX_PACKET_RADIO_DEFAULT_BAUD 2400
+
+/** Default USB AX.25 TNC/modem device (Linux). */
+#define HYBBX_PACKET_RADIO_DEFAULT_DEVICE_USB "/dev/ttyUSB0"
+
+#if defined(_WIN32)
+#define HYBBX_PACKET_RADIO_DEFAULT_DEVICE_SERIAL "COM1"
+#elif defined(__AMIGA__)
+#define HYBBX_PACKET_RADIO_DEFAULT_DEVICE_SERIAL "serial.device"
+#else
+#define HYBBX_PACKET_RADIO_DEFAULT_DEVICE_SERIAL "/dev/ttyS0"
+#endif
+
+typedef enum hybbx_packet_radio_device_type {
+ HYBBX_PACKET_RADIO_DEVICE_USB = 1,
+ HYBBX_PACKET_RADIO_DEVICE_SERIAL = 2
+} hybbx_packet_radio_device_type_t;
+
+struct hybbx_packet_radio_config;
+
+/**
+ * Parse a semicolon-separated key=value transport config string.
+ * Missing keys receive HyBBX defaults (TNC2C, USB, KISS @ 2400 baud).
+ * Full config type: include hybbx/tnc.h.
+ */
+hybbx_result_t hybbx_packet_radio_config_parse(const char *config,
+ struct hybbx_packet_radio_config *out);
+
+void hybbx_packet_radio_config_free(struct hybbx_packet_radio_config *config);
+
+/**
+ * Non-zero when @p config starts a local TNC (device/tnc/protocol/circuit_host).
+ * Main bridge-registry rows (link_id only) return zero.
+ */
+int hybbx_packet_radio_section_is_local_edge(const char *config);
+
+/**
+ * Return non-zero when @p baud is valid for packet radio configuration.
+ * HyBBX accepts any positive host baud rate; TNC2C documents 300..38400.
+ */
+int hybbx_packet_radio_baud_valid(unsigned int baud);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HYBBX_PACKET_RADIO_H */
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com