embassy-nrf

Crates

git

Versions

nrf5340-net

Flavors

embassy_nrf::radio::ieee802154

Struct Radio

Source
pub struct Radio<'d, T: Instance> { /* private fields */ }
Expand description

IEEE 802.15.4 radio driver.

Implementations§

Source§

impl<'d, T: Instance> Radio<'d, T>

Source

pub fn new( radio: impl Peripheral<P = T> + 'd, _irq: impl Binding<T::Interrupt, InterruptHandler<T>> + 'd, ) -> Self

Create a new IEEE 802.15.4 radio driver.

Source

pub fn set_channel(&mut self, channel: u8)

Changes the radio channel

Source

pub fn set_cca(&mut self, cca: Cca)

Changes the Clear Channel Assessment method

Source

pub fn set_sfd(&mut self, sfd: u8)

Changes the Start of Frame Delimiter (SFD)

Source

pub fn clear_all_interrupts(&mut self)

Clear interrupts

Source

pub fn set_transmission_power(&mut self, power: i8)

Changes the radio transmission power

Source

pub async fn receive(&mut self, packet: &mut Packet) -> Result<(), Error>

Receives one radio packet and copies its contents into the given packet buffer

This methods returns the Ok variant if the CRC included the packet was successfully validated by the hardware; otherwise it returns the Err variant. In either case, packet will be updated with the received packet’s data

Source

pub async fn try_send(&mut self, packet: &mut Packet) -> Result<(), Error>

Tries to send the given packet

This method performs Clear Channel Assessment (CCA) first and sends the packet only if the channel is observed to be clear (no transmission is currently ongoing), otherwise no packet is transmitted and the Err variant is returned

NOTE this method will not modify the packet argument. The mutable reference is used to ensure the packet buffer is allocated in RAM, which is required by the RADIO peripheral

Auto Trait Implementations§

§

impl<'d, T> Freeze for Radio<'d, T>
where T: Freeze,

§

impl<'d, T> RefUnwindSafe for Radio<'d, T>
where T: RefUnwindSafe,

§

impl<'d, T> Send for Radio<'d, T>

§

impl<'d, T> Sync for Radio<'d, T>
where T: Sync,

§

impl<'d, T> Unpin for Radio<'d, T>
where T: Unpin,

§

impl<'d, T> !UnwindSafe for Radio<'d, T>

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.