embassy-nrf

Crates

git

Versions

nrf52820

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.