summaryrefslogtreecommitdiff
path: root/firmware/s1224/include/afsk_soft.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/s1224/include/afsk_soft.h')
-rw-r--r--firmware/s1224/include/afsk_soft.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/firmware/s1224/include/afsk_soft.h b/firmware/s1224/include/afsk_soft.h
new file mode 100644
index 0000000..5a23141
--- /dev/null
+++ b/firmware/s1224/include/afsk_soft.h
@@ -0,0 +1,32 @@
+/**
+ * Softmodem AFSK — PWM/DDS TX + Goertzel RX (ADC when wired).
+ * Profile tones selected at compile time via S1224_BITRATE=300|1200|2400.
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+#ifndef S1224_AFSK_SOFT_H
+#define S1224_AFSK_SOFT_H
+
+#include <stddef.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifndef S1224_BITRATE
+#define S1224_BITRATE 1200
+#endif
+
+void afsk_soft_init(void);
+
+/** Transmit HDLC info payload (AX.25 frame without flags/FCS). Auto-PTT. */
+bool afsk_tx_frame(const uint8_t *info, size_t info_len);
+
+typedef void (*afsk_rx_frame_fn)(const uint8_t *info, size_t len);
+void afsk_rx_set_callback(afsk_rx_frame_fn fn);
+void afsk_rx_poll(void);
+
+bool afsk_tx_busy(void);
+unsigned afsk_bitrate(void);
+
+/** Carrier/energy sense for UI (softmodem — not chip CDT). */
+bool afsk_rx_carrier_active(void);
+
+#endif /* S1224_AFSK_SOFT_H */
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com