Expand description
This provides implementations of the input/output pin embedded-hal traits with inverted logic.
For example, an InvertedPin can wrap an OutputPin and when setting it low, it will set the
wrapped OutputPin high. It works similarly for an InputPin as well.
This is useful when dealing with pins that use a logic that is inverted with respect to what the rest of the system expects.
Since an InvertedPin implements the OutputPin and InputPin traits as well, it can be used
just like any other OutputPin or InputPin and serves as a drop-in replacement of the wrapped pin.
§Usage examples
§Output InvertedPin interaction
use linux_embedded_hal::SysfsPin;
use inverted_pin::InvertedPin;
let pin = SysfsPin::new(25);
let mut inverted_pin = InvertedPin::new(pin);
// This calls `pin.set_low()`
inverted_pin.set_high().unwrap();§Input InvertedPin interaction
use linux_embedded_hal::SysfsPin;
use inverted_pin::InvertedPin;
let pin = SysfsPin::new(25);
let mut inverted_pin = InvertedPin::new(pin);
// This returns the result of calling `pin.is_low()`
inverted_pin.is_high().unwrap();Structs§
- Inverted
Pin - Inverted input/output pin