Crate umsh_ulcp

Crate umsh_ulcp 

Source
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_RAW metadata envelopes.
pui
Packed Unsigned Integers (PUIs).
status
Status codes carried in PROP_LAST_STATUS.