embassy-nrf

Crates

git

Versions

nrf5340-app-ns

Flavors

embassy_nrf::nfct

Struct NfcT

Source
pub struct NfcT<'d> { /* private fields */ }
Expand description

NFC tag emulator driver.

Implementations§

Source§

impl<'d> NfcT<'d>

Source

pub fn new( _p: impl Peripheral<P = NFCT> + 'd, _irq: impl Binding<NFCT, InterruptHandler> + 'd, config: &Config, ) -> Self

Create an Nfc Tag driver

Source

pub async fn activate(&mut self)

Wait for field on and select.

This waits for the field to become on, and then for a reader to select us. The ISO14443-3 sense, anticollision and select procedure is handled entirely in hardware.

When this returns, we have successfully been selected as a card. You must then loop calling receive and responding with transmit.

Source

pub async fn transmit(&mut self, buf: &[u8]) -> Result<(), Error>

Transmit an ISO14443-3 frame to the reader.

You must call this only after receiving a frame with receive, and only once. Higher-layer protocols usually define timeouts, so calling this too late can cause things to fail.

This will fail with Error::Deactivated if we have been deselected due to either the field being switched off or due to the ISO14443 state machine. When this happens, you must stop calling receive and transmit, reset all protocol state, and go back to calling activate.

Source

pub async fn receive(&mut self, buf: &mut [u8]) -> Result<usize, Error>

Receive an ISO14443-3 frame from the reader.

After calling this, you must send back a response with transmit, and only once. Higher-layer protocols usually define timeouts, so calling this too late can cause things to fail.

Auto Trait Implementations§

§

impl<'d> Freeze for NfcT<'d>

§

impl<'d> RefUnwindSafe for NfcT<'d>

§

impl<'d> Send for NfcT<'d>

§

impl<'d> Sync for NfcT<'d>

§

impl<'d> Unpin for NfcT<'d>

§

impl<'d> !UnwindSafe for NfcT<'d>

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.