InputPinAsync

Struct InputPinAsync 

Source
pub struct InputPinAsync { /* private fields */ }

Implementations§

Source§

impl InputPinAsync

Source

pub fn new(pin: Input, irq: Interrupt) -> Self

Create a new asynchronous input pin from an Input pin. The interrupt ID to be used must be passed as well and is used to route and enable the interrupt.

Please note that the interrupt handler itself must be provided by the user and the generic on_interrupt_for_async_gpio_for_port function must be called inside that function for the asynchronous functionality to work.

Source

pub async fn wait_for_high(&mut self)

Asynchronously wait until the pin is high.

This returns immediately if the pin is already high.

Source

pub async fn wait_for_low(&mut self)

Asynchronously wait until the pin is low.

This returns immediately if the pin is already high.

Source

pub async fn wait_for_falling_edge(&mut self)

Asynchronously wait until the pin sees a falling edge.

Source

pub async fn wait_for_rising_edge(&mut self)

Asynchronously wait until the pin sees a rising edge.

Source

pub async fn wait_for_any_edge(&mut self)

Asynchronously wait until the pin sees any edge (either rising or falling).

Source

pub fn release(self) -> Input

Trait Implementations§

Source§

impl ErrorType for InputPinAsync

Source§

type Error = Infallible

Error type
Source§

impl Wait for InputPinAsync

Source§

async fn wait_for_high(&mut self) -> Result<(), Self::Error>

Wait until the pin is high. If it is already high, return immediately. Read more
Source§

async fn wait_for_low(&mut self) -> Result<(), Self::Error>

Wait until the pin is low. If it is already low, return immediately. Read more
Source§

async fn wait_for_rising_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo a transition from low to high. Read more
Source§

async fn wait_for_falling_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo a transition from high to low. Read more
Source§

async fn wait_for_any_edge(&mut self) -> Result<(), Self::Error>

Wait for the pin to undergo any transition, i.e low to high OR high to low.

Auto Trait Implementations§

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.