Struct RxMode

Source
pub struct RxMode<D: Device> { /* private fields */ }
Expand description

Represents RX Mode

Implementations§

Source§

impl<D: Device> RxMode<D>

Source

pub fn standby(self) -> StandbyMode<D>

Disable CE so that you can switch into TX mode.

Source

pub fn can_read(&mut self) -> Result<Option<u8>, D::Error>

Is there any incoming data to read? Return the pipe number.

This function acknowledges all interrupts even if there are more received packets, so the caller must repeat the call until the function returns None before waiting for the next RX interrupt.

Source

pub fn has_carrier(&mut self) -> Result<bool, D::Error>

Is an in-band RF signal detected?

The internal carrier detect signal must be high for 40μs (NRF24L01+) or 128μs (NRF24L01) before the carrier detect register is set. Note that changing from standby to receive mode also takes 130μs.

Source

pub fn is_empty(&mut self) -> Result<bool, D::Error>

Is the RX queue empty?

Source

pub fn is_full(&mut self) -> Result<bool, D::Error>

Is the RX queue full?

Source

pub fn read(&mut self) -> Result<Payload, D::Error>

Read the next received packet

Trait Implementations§

Source§

impl<D: Device> Configuration for RxMode<D>

Source§

type Inner = D

Underlying trait Device
Source§

fn device(&mut self) -> &mut Self::Inner

Get a mutable reference to the underlying device
Source§

fn flush_rx( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Flush RX queue Read more
Source§

fn flush_tx( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Flush TX queue, discarding any unsent packets
Source§

fn get_frequency( &mut self, ) -> Result<u8, <<Self as Configuration>::Inner as Device>::Error>

Get frequency offset (channel)
Source§

fn set_frequency( &mut self, freq_offset: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Set frequency offset (channel)
Source§

fn set_rf( &mut self, rate: &DataRate, power: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

power: 0: -18 dBm, 3: 0 dBm
Source§

fn set_crc( &mut self, mode: CrcMode, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Set CRC mode
Source§

fn set_interrupt_mask( &mut self, data_ready_rx: bool, data_sent_tx: bool, max_retransmits_tx: bool, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Sets the interrupt mask Read more
Source§

fn set_pipes_rx_enable( &mut self, bools: &[bool; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Configure which RX pipes to enable
Source§

fn set_rx_addr( &mut self, pipe_no: usize, addr: &[u8], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Set address addr of pipe number pipe_no
Source§

fn set_tx_addr( &mut self, addr: &[u8], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Set address of the TX pipe
Source§

fn set_auto_retransmit( &mut self, delay: u8, count: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Configure auto-retransmit Read more
Source§

fn get_auto_ack( &mut self, ) -> Result<[bool; 6], <<Self as Configuration>::Inner as Device>::Error>

Obtain auto-acknowledgment configuration for all pipes
Source§

fn set_auto_ack( &mut self, bools: &[bool; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Configure auto-acknowledgment for all RX pipes Read more
Source§

fn get_address_width( &mut self, ) -> Result<u8, <<Self as Configuration>::Inner as Device>::Error>

Get address width configuration
Source§

fn get_interrupts( &mut self, ) -> Result<(bool, bool, bool), <<Self as Configuration>::Inner as Device>::Error>

Obtain interrupt pending status as (RX_DR, TX_DR, MAX_RT) where RX_DR indicates new data in the RX FIFO, TX_DR indicates that a packet has been sent, and MAX_RT indicates maximum retransmissions without auto-ack.
Source§

fn clear_interrupts( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

Clear all interrupts
Source§

fn set_pipes_rx_lengths( &mut self, lengths: &[Option<u8>; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error>

bools Read more
Source§

impl<D: Device> Debug for RxMode<D>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<D> Freeze for RxMode<D>
where D: Freeze,

§

impl<D> RefUnwindSafe for RxMode<D>
where D: RefUnwindSafe,

§

impl<D> Send for RxMode<D>
where D: Send,

§

impl<D> Sync for RxMode<D>
where D: Sync,

§

impl<D> Unpin for RxMode<D>
where D: Unpin,

§

impl<D> UnwindSafe for RxMode<D>
where D: UnwindSafe,

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.