pub struct ButtonConfig {
pub debounce_ms: Millis,
pub double_click_ms: Millis,
pub hold_ms: Millis,
pub multi_click_count: u8,
pub multi_click_timeout_ms: Millis,
pub active_level: ActiveLevel,
}Expand description
Button timing and polarity configuration.
Fields§
§debounce_ms: MillisTime the raw pin state must remain unchanged before it is accepted as the stable debounced state.
double_click_ms: MillisMaximum interval between two short releases that still counts as a double click.
hold_ms: MillisTime after which a continuously pressed button reports a hold event.
multi_click_count: u8Number of short clicks required to emit ButtonEvents::multi_click.
Values 0 and 1 disable the multi-click detector.
multi_click_timeout_ms: MillisMaximum pause between short clicks in one multi-click sequence.
active_level: ActiveLevelElectrical level that represents the pressed state.
Implementations§
Source§impl ButtonConfig
impl ButtonConfig
Sourcepub const DEFAULT_DEBOUNCE_MS: Millis = 20
pub const DEFAULT_DEBOUNCE_MS: Millis = 20
Default debounce time.
Sourcepub const DEFAULT_DOUBLE_CLICK_MS: Millis = 300
pub const DEFAULT_DOUBLE_CLICK_MS: Millis = 300
Default double-click interval.
Sourcepub const DEFAULT_HOLD_MS: Millis = 800
pub const DEFAULT_HOLD_MS: Millis = 800
Default hold threshold.
Sourcepub const DEFAULT_MULTI_CLICK_COUNT: u8 = 0
pub const DEFAULT_MULTI_CLICK_COUNT: u8 = 0
Default multi-click target count. 0 keeps the detector disabled.
Sourcepub const DEFAULT_MULTI_CLICK_TIMEOUT_MS: Millis = 3_000
pub const DEFAULT_MULTI_CLICK_TIMEOUT_MS: Millis = 3_000
Default timeout for the multi-click detector.
Sourcepub const fn active_low() -> Self
pub const fn active_low() -> Self
Creates a configuration for the common pull-up wiring where the pressed state is low.
Sourcepub const fn active_high() -> Self
pub const fn active_high() -> Self
Creates a configuration where the pressed state is high.
Sourcepub const fn with_debounce_ms(self, debounce_ms: Millis) -> Self
pub const fn with_debounce_ms(self, debounce_ms: Millis) -> Self
Returns the configuration with a different debounce time.
Sourcepub const fn with_double_click_ms(self, double_click_ms: Millis) -> Self
pub const fn with_double_click_ms(self, double_click_ms: Millis) -> Self
Returns the configuration with a different double-click interval.
Sourcepub const fn with_hold_ms(self, hold_ms: Millis) -> Self
pub const fn with_hold_ms(self, hold_ms: Millis) -> Self
Returns the configuration with a different hold threshold.
Sourcepub const fn with_multi_click_count(self, multi_click_count: u8) -> Self
pub const fn with_multi_click_count(self, multi_click_count: u8) -> Self
Returns the configuration with a different multi-click target count.
Values 0 and 1 disable the detector. Use 2 for a configurable
double click, 5 for five short clicks, and so on.
Sourcepub const fn with_multi_click_timeout_ms(
self,
multi_click_timeout_ms: Millis,
) -> Self
pub const fn with_multi_click_timeout_ms( self, multi_click_timeout_ms: Millis, ) -> Self
Returns the configuration with a different multi-click timeout.
The timeout is the maximum pause between two short clicks in the same sequence. If the pause is greater than this value, the sequence count is reset.
Sourcepub const fn with_multi_click(
self,
multi_click_count: u8,
multi_click_timeout_ms: Millis,
) -> Self
pub const fn with_multi_click( self, multi_click_count: u8, multi_click_timeout_ms: Millis, ) -> Self
Returns the configuration with a multi-click target and timeout.
Trait Implementations§
Source§impl Clone for ButtonConfig
impl Clone for ButtonConfig
Source§fn clone(&self) -> ButtonConfig
fn clone(&self) -> ButtonConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ButtonConfig
Source§impl Debug for ButtonConfig
impl Debug for ButtonConfig
Source§impl Default for ButtonConfig
impl Default for ButtonConfig
impl Eq for ButtonConfig
Source§impl PartialEq for ButtonConfig
impl PartialEq for ButtonConfig
Source§fn eq(&self, other: &ButtonConfig) -> bool
fn eq(&self, other: &ButtonConfig) -> bool
self and other values to be equal, and is used by ==.