mmdvm/lib.rs
1// Portions of this file are derived from MMDVMHost by Jonathan Naylor
2// G4KLX, Copyright (C) 2015-2026, licensed under GPL-2.0-or-later.
3// See LICENSE for full attribution.
4
5//! Tokio async shell for the MMDVM digital voice modem protocol.
6//!
7//! Builds on the sans-io [`mmdvm-core`] crate to provide an async
8//! handle-and-loop architecture for talking to MMDVM modems like the
9//! Kenwood TH-D75, Pi-Star hotspots, `ZumSpot`, and similar hardware.
10//!
11//! The top-level entry point is [`tokio_shell::AsyncModem::spawn`].
12//!
13//! Mirrors the reference C++ implementation at `ref/MMDVMHost/`:
14//! periodic 250 ms `GetStatus` polls correct local buffer-space
15//! estimates, and per-mode TX queues are drained only when the
16//! modem reports FIFO slot availability.
17//!
18//! [`mmdvm-core`]: https://github.com/swiftraccoon/kenwood/tree/main/mmdvm-core
19
20pub mod error;
21pub mod tokio_shell;
22pub mod transport;
23
24pub use error::ShellError;
25pub use mmdvm_core as core;
26pub use tokio_shell::{AsyncModem, Event};
27pub use transport::Transport;