pub struct DeviceRuntime<M: RawMutex + 'static, const RX: usize, const TX: usize> {
pub input: &'static InputChannel<M>,
pub radio: &'static Channels<M, RX, TX>,
pub ctl: &'static DeviceControl<M>,
pub out: &'static TransportChannels<M>,
pub session_gen: &'static AtomicU32,
}Expand description
The driver’s 'static wiring: the channels and control blocks the
loop shares with the board’s transport and radio tasks.
Fields§
§input: &'static InputChannel<M>Inbound frames and connection edges from every transport task.
radio: &'static Channels<M, RX, TX>The session’s radio endpoint — its private virtual Channels
bundle served by the board’s radio mux (never the real radio
bundle directly).
ctl: &'static DeviceControl<M>Runtime radio settings / RSSI sampling into the radio runner.
out: &'static TransportChannels<M>Outbound frame queues drained by the transport output tasks.
session_gen: &'static AtomicU32Published session epoch, checked by each transport at framing
edges (transport_policy::generation_checked).
Auto Trait Implementations§
impl<M, const RX: usize, const TX: usize> Freeze for DeviceRuntime<M, RX, TX>
impl<M, const RX: usize, const TX: usize> !RefUnwindSafe for DeviceRuntime<M, RX, TX>
impl<M, const RX: usize, const TX: usize> Send for DeviceRuntime<M, RX, TX>where
M: Sync,
impl<M, const RX: usize, const TX: usize> Sync for DeviceRuntime<M, RX, TX>where
M: Sync,
impl<M, const RX: usize, const TX: usize> Unpin for DeviceRuntime<M, RX, TX>
impl<M, const RX: usize, const TX: usize> !UnwindSafe for DeviceRuntime<M, RX, TX>
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more