Skip to main content

Module telemetry

Module telemetry 

Source
Expand description

Bounded ground-side delivery to caller-owned telemetry consumers. Pull-based delivery after native archival, independent of UI processing.

One publisher owns reception; one reader owns consumption. Unread frames are overwritten oldest first. Status is coalesced separately, so a paused reader can still inspect recording health. This host-only exchange adds no robot task-path work. Publish only after a successful NativeArchive::accept.

Storage is allocated at construction: a ring, a status slot, and one reader frame. Frames move without cloning. Payload-owned allocations and user-owned projections are outside this bound. Queue operations use Crossbeam atomics; they do not wait for capacity or for user processing, but are not an RT wait-free primitive. Frame destructors and registered wakers must not block.

Structs§

TelemetryPublisher
The sole producer of archived frames and current receiver status.
TelemetryRead
A stable borrow of one frame, valid until the next mutable reader operation.
TelemetryReader
A single consumer cursor. User code chooses when to read and what to retain.

Functions§

telemetry_channel
Creates a preallocated circular delivery buffer and independent status slot.