Struct InputPin

Source
pub struct InputPin(/* private fields */);
Expand description

Provides embedded_hal::digital traits for a gpiocdev::Request containing a single input pin.

Holding the InputPin grants exclusive access to the pin.

Do NOT drop the InputPin until you are completely done with it. Dropping and re-requesting the line is far more expensive than getting the value.

Implementations§

Source§

impl InputPin

Source

pub fn new<P>(chip: P, offset: u32) -> Result<Self, Error>
where P: AsRef<Path>,

Creates a new input pin for the given offset on the given chip.

use embedded_hal::digital::InputPin;

let mut pin = gpiocdev_embedded_hal::InputPin::new("/dev/gpiochip0", 4)?;
if pin.is_high()? {
    println!("Input is high.");
}
Source

pub fn into_output_pin(self, state: PinState) -> Result<OutputPin, Error>

Set this pin to output mode.

Source

pub fn from_found_line(fl: FoundLine) -> Result<Self, Error>

Create an InputPin from a gpiocdev::FoundLine.

§Examples
use embedded_hal::digital::InputPin;

let sensor0 = gpiocdev::find_named_line("SENSOR0").unwrap();
let mut pin = gpiocdev_embedded_hal::InputPin::from_found_line(sensor0)?;
if pin.is_low()? {
    println!("Input is low.");
}
Source

pub fn from_name(name: &str) -> Result<Self, Error>

Create an InputPin given a line name.

§Examples
use embedded_hal::digital::InputPin;

let mut gpio22 = gpiocdev_embedded_hal::InputPin::from_name("GPIO22")?;
if gpio22.is_low()? {
    println!("Input is low.");
}

Trait Implementations§

Source§

impl Debug for InputPin

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl ErrorType for InputPin

Source§

type Error = Error

Errors returned by InputPin.

Source§

impl From<InputPin> for InputPin

Source§

fn from(pin: InputPin) -> Self

Convert a synchronous InputPin into a tokio InputPin.

Source§

impl From<InputPin> for InputPin

Source§

fn from(pin: InputPin) -> Self

Convert a tokio InputPin into a synchronous InputPin.

Source§

impl From<InputPin> for InputPin

Source§

fn from(pin: InputPin) -> Self

Convert a synchronous InputPin into an async_io InputPin.

Source§

impl From<InputPin> for InputPin

Source§

fn from(pin: InputPin) -> Self

Convert an async_io InputPin into a synchronous InputPin.

Source§

impl From<InputPin> for Request

Source§

fn from(pin: InputPin) -> Self

Convert the InputPin into the contained Request.

Source§

impl InputPin for InputPin

Source§

fn is_high(&mut self) -> Result<bool, Self::Error>

Is the input pin high?
Source§

fn is_low(&mut self) -> Result<bool, Self::Error>

Is the input pin low?
Source§

impl TryFrom<Request> for InputPin

Source§

fn try_from(req: Request) -> Result<Self, Self::Error>

Convert any single input line gpiocdev::Request into a InputPin.

This allows for advanced configurations such as setting bias or using the active_low flag to flip the line polarity. InputPin::new<P>() should be used for less complex configurations.

Source§

type Error = Error

The type returned in the event of a conversion error.

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

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more