Skip to main content

Module queues

Module queues 

Source
Expand description

Real-time safe command queues for automation

§Non-blocking queues for the dual-thread architecture

This module provides queues for safe data exchange between the control thread (soft RT) and the signal processing thread (hard RT).

§Components

Re-exports§

pub use error::QueueError;
pub use error::QueueResult;
pub use mpsc::MpscQueue;
pub use rt_queue::RtQueue;
pub use spsc::SpscQueue;
pub use telemetry_block::TelemetryBlock;
pub use signal::AutomatonCommand;
pub use signal::CalibrationKind;
pub use signal::CommandEnum;
pub use signal::MappingType;
pub use signal::SensorCommand;
pub use signal::ServoCommand;
pub use signal::SetParameter;
pub use signal::SignalOrigin;

Modules§

command
Command trait for actor message types.
control_event
Signal and command types for automation. Control events — hardware input events decoded from sensors.
error
Queue error types. Queue operation error types.
mpsc
Multi-producer single-consumer queue for automation.
ring
Lock-free ring buffer for real-time use.
rt_queue
Base real-time queue implementation.
signal
Signal and command types for queues.
spsc
Lock-free single-producer single-consumer queue.
telemetry
Telemetry data types (future functionality). Telemetry types — event data from the signal processing world.
telemetry_block
Telemetry block batching utilities.

Structs§

QueueStats
Live queue statistics collected inside the queue.
QueueStatsSnapshot
Point-in-time snapshot of queue statistics.

Enums§

OverflowPolicy
Overflow behaviour policy for bounded queues.
UnderflowPolicy
Underflow behaviour policy for bounded queues.

Traits§

RtQueueBase
Base trait for all real-time safe queues.

Functions§

is_power_of_two
Return true if n is a power of two.
next_power_of_two
Compute the next power of two greater than or equal to n.