Struct EsbApp

Source
pub struct EsbApp<const OUT: usize, const IN: usize> { /* private fields */ }
Expand description

This is the primary Application-side interface.

It is intended to be used outside of the RADIO interrupt, and allows for sending or receiving frames from the ESB Radio hardware.

Implementations§

Source§

impl<const OUT: usize, const IN: usize> EsbApp<OUT, IN>

Source

pub fn split(self) -> (EsbAppSender<OUT>, EsbAppReceiver<IN>)

Source

pub fn grant_packet( &mut self, header: EsbHeader, ) -> Result<PayloadW<OUT>, Error>

Obtain a grant for an outgoing packet to be sent over the Radio

When space is available, this function will return a PayloadW, which can be written into for data to be sent over the radio. If the given parameters are incorrect, or if no space is available, or if a grant is already in progress, an error will be returned.

§Notes

Once a grant has been created, the maximum size of the grant can not be increased, only shrunk. If a larger grant is needed, you must drop the old grant, and create a new one.

Only one grant may be active at a time.

Source

pub fn start_tx(&mut self)

Starts the radio sending all packets in the queue.

The radio will send until the queue has been drained. This method must be called again if the queue is completely drained before the user commits new packets.

Source

pub fn msg_ready(&mut self) -> bool

Is there a received message that is ready to be read?

Returns true if a call to read_packet would return Some.

Source

pub fn read_packet(&mut self) -> Option<PayloadR<IN>>

Attempt to read a packet that has been received via the radio.

Returns Some(PayloadR) if a packet is ready to be read, otherwise None.

Source

pub async fn wait_read_packet(&mut self) -> PayloadR<IN>

Source

pub fn maximum_payload_size(&self) -> usize

Gets the maximum payload size (in bytes) that the driver was configured to use.

Auto Trait Implementations§

§

impl<const OUT: usize, const IN: usize> Freeze for EsbApp<OUT, IN>

§

impl<const OUT: usize, const IN: usize> !RefUnwindSafe for EsbApp<OUT, IN>

§

impl<const OUT: usize, const IN: usize> Send for EsbApp<OUT, IN>

§

impl<const OUT: usize, const IN: usize> Sync for EsbApp<OUT, IN>

§

impl<const OUT: usize, const IN: usize> Unpin for EsbApp<OUT, IN>

§

impl<const OUT: usize, const IN: usize> !UnwindSafe for EsbApp<OUT, IN>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.