Expand description
Wire format for the UMSH Local Control Protocol (ULCP).
This crate implements the byte-level grammar specified in
docs/protocol/src/ulcp-core.md: packed unsigned
integers, the frame header and command layer, property/stream/status
identifiers, the STR_PHY_RAW metadata envelopes
(ulcp-transport.md), and HDLC-Lite framing for asynchronous serial
transports (UART, USB-CDC).
It is shared between the host side (a umsh-hal::Radio
implementation that drives a companion radio over a serial link) and
the device firmware side (the session that exposes the local radio).
Every wire-format detail lives here and only here.
The crate is no_std, allocation-free, and has no dependencies.
Callers provide byte buffers; encoders return the number of bytes
written and decoders borrow from the input.
Re-exports§
pub use alert::AlertState;pub use battery::BatteryChargeState;pub use battery::BatteryError;pub use battery::BatteryStatus;pub use describe::FrameDescription;pub use describe::capability_name;pub use describe::property_name;pub use frame::Cmd;pub use frame::Frame;pub use frame::FrameWriter;pub use frame::Header;pub use frame::PropPayload;pub use frame::StreamPayload;pub use gnss::FixKind;pub use gnss::GnssError;pub use gnss::GnssSnapshot;pub use meta::BufferedRxMeta;pub use meta::RxMeta;pub use meta::TxMeta;pub use status::Status;
Modules§
- airtime
- LoRa airtime estimation.
- alert
- The locate-alert enumeration (
PROP_ALERT). - battery
- Battery status snapshot codec (
PROP_BATTERY). - describe
- Allocation-free human-readable descriptions of ULCP values.
- frame
- ULCP frame grammar.
- gatt
- Service-agnostic frame segmentation and reassembly for GATT links.
- gnss
- Codecs for the positioning properties (
PROP_GNSS_*). - hdlc
- HDLC-Lite framing for asynchronous serial links (UART, USB-CDC).
- host
- Transport-independent host transaction primitives.
- ids
- Property, stream, and capability identifiers, plus protocol
constants. The complete allocation is in
docs/protocol/src/ulcp-index.md. - items
- Item codecs for the full protocol’s multi-value properties.
- meta
STR_PHY_RAWmetadata envelopes.- pui
- Packed Unsigned Integers (PUIs).
- status
- Status codes carried in
PROP_LAST_STATUS.