Struct embedded_controls::DebouncedInput
source · pub struct DebouncedInput<Switch: InputSwitch, Config: DebouncedInputConfig> { /* private fields */ }Expand description
Concrete implementation of debounced input.
Type Params
Switch - InputSwitch that provides input for debouncing.
Config - DebouncedInputConfig that provides configs for debouncing.
Example
ⓘ
debounced_input_config!(
SomeDebouncedInputConfig,
debounce_timer: MyElapsedTimer = MyElapsedTimer::new(20.millis())
);
type MyDebouncedInput<Switch> = DebouncedInput<Switch, SomeDebouncedInputConfig>;
let mut clock = SysClock::new();
let mut debounced_input = MyDebouncedInput::new(pin.into_active_low_switch());
loop {
match debounced_input.update(clock.now()).unwrap() {
DebouncedInputEvent::Low => do_something_when_low(),
DebouncedInputEvent::High => do_something_when_high(),
DebouncedInputEvent::Rise => do_something_upon_rise(),
DebouncedInputEvent::Fall => do_something_upon_fall(),
}
}Implementations
sourceimpl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
impl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
sourcepub fn new(input_switch: Switch) -> Self
pub fn new(input_switch: Switch) -> Self
Creates a new DebouncedInput<Switch, Config> from a concrete Switch.
input_switch - an concrete instance of Switch.
sourcepub fn borrow_input_switch(&self) -> &Switch
pub fn borrow_input_switch(&self) -> &Switch
Borrow Switch.
sourcepub fn release_input_switch(self) -> Switch
pub fn release_input_switch(self) -> Switch
Consumes self and release Switch.
Trait Implementations
sourceimpl<Switch: InputSwitch, Config: DebouncedInputConfig> Control for DebouncedInput<Switch, Config>
impl<Switch: InputSwitch, Config: DebouncedInputConfig> Control for DebouncedInput<Switch, Config>
type Timestamp = <<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp
type Event = DebouncedInputEvent
type Error = <Switch as InputSwitch>::Error
Auto Trait Implementations
impl<Switch, Config> RefUnwindSafe for DebouncedInput<Switch, Config>where
Config: RefUnwindSafe,
Switch: RefUnwindSafe,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: RefUnwindSafe,
impl<Switch, Config> Send for DebouncedInput<Switch, Config>where
Config: Send,
Switch: Send,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Send,
impl<Switch, Config> Sync for DebouncedInput<Switch, Config>where
Config: Sync,
Switch: Sync,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Sync,
impl<Switch, Config> Unpin for DebouncedInput<Switch, Config>where
Config: Unpin,
Switch: Unpin,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: Unpin,
impl<Switch, Config> UnwindSafe for DebouncedInput<Switch, Config>where
Config: UnwindSafe,
Switch: UnwindSafe,
<<Config as DebouncedInputConfig>::Timer as ElapsedTimer>::Timestamp: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more