Trait Configuration

Source
pub trait Configuration {
    type Inner: Device;

Show 18 methods // Required method fn device(&mut self) -> &mut Self::Inner; // Provided methods fn flush_rx( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn flush_tx( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn get_frequency( &mut self, ) -> Result<u8, <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_frequency( &mut self, freq_offset: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_rf( &mut self, rate: &DataRate, power: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_crc( &mut self, mode: CrcMode, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } 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> { ... } fn set_pipes_rx_enable( &mut self, bools: &[bool; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_rx_addr( &mut self, pipe_no: usize, addr: &[u8], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_tx_addr( &mut self, addr: &[u8], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_auto_retransmit( &mut self, delay: u8, count: u8, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn get_auto_ack( &mut self, ) -> Result<[bool; 6], <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_auto_ack( &mut self, bools: &[bool; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn get_address_width( &mut self, ) -> Result<u8, <<Self as Configuration>::Inner as Device>::Error> { ... } fn get_interrupts( &mut self, ) -> Result<(bool, bool, bool), <<Self as Configuration>::Inner as Device>::Error> { ... } fn clear_interrupts( &mut self, ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... } fn set_pipes_rx_lengths( &mut self, lengths: &[Option<u8>; 6], ) -> Result<(), <<Self as Configuration>::Inner as Device>::Error> { ... }
}
Expand description

Configuration methods

These seem to work in all modes

Required Associated Types§

Required Methods§

Source

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

Get a mutable reference to the underlying device

Provided Methods§

Source

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

Flush RX queue

Discards all received packets that have not yet been read from the RX FIFO

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

When an interrupt mask is set to true, the interrupt is masked and will not fire on the IRQ pin. When set to false, it will trigger the IRQ pin.

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

To disable, call as set_auto_retransmit(0, 0).

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

TODO: handle switching tx/rx modes when auto-retransmit is enabled

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
  • None: Dynamic payload length
  • Some(len): Static payload length len

Implementors§