This provides dummy implementations of the input/output pin [embedded-hal
] traits.
This is useful when dealing with setups where a certain pin is handled by hardware in a way
that the software does not need to know about, for example.
In addition to the no-op, zero-cost DummyPin
, this crate provides an implementation of LastStateDummyPin
,
which stores the last state set at runtime and returns it when read.
This example demonstrates how the same driver can operate with either a real or a dummy output pin.
```rust use dummypin::DummyPin; use embeddedhal::digital::v2::OutputPin; use linuxembeddedhal::Pin;
struct Driver
{ output: P, }
impl
Driver
where
P: OutputPin
fn do_something(&mut self) -> Result<(), E> {
// ...
self.output.set_high()
}
}
fn main() { // The same driver can operate with either a real or a dummy pin. let realpin = Pin::new(25); let mut driverwithrealpin = Driver::new(realpin); driverwithrealpin.do_something().unwrap();
let dummy_pin = DummyPin::new_low();
let mut driver_with_dummy_pin = Driver::new(dummy_pin);
driver_with_dummy_pin.do_something().unwrap();
} ```
For questions, issues, feature requests, and other changes, please file an issue in the github project.
This crate is guaranteed to compile on stable Rust 1.35 and up. It might compile with older versions but that may change in any new patch release.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.