Skip to main content

ButtonConfig

Struct ButtonConfig 

Source
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: Millis

Time the raw pin state must remain unchanged before it is accepted as the stable debounced state.

§double_click_ms: Millis

Maximum interval between two short releases that still counts as a double click.

§hold_ms: Millis

Time after which a continuously pressed button reports a hold event.

§multi_click_count: u8

Number of short clicks required to emit ButtonEvents::multi_click.

Values 0 and 1 disable the multi-click detector.

§multi_click_timeout_ms: Millis

Maximum pause between short clicks in one multi-click sequence.

§active_level: ActiveLevel

Electrical level that represents the pressed state.

Implementations§

Source§

impl ButtonConfig

Source

pub const DEFAULT_DEBOUNCE_MS: Millis = 20

Default debounce time.

Source

pub const DEFAULT_DOUBLE_CLICK_MS: Millis = 300

Default double-click interval.

Source

pub const DEFAULT_HOLD_MS: Millis = 800

Default hold threshold.

Source

pub const DEFAULT_MULTI_CLICK_COUNT: u8 = 0

Default multi-click target count. 0 keeps the detector disabled.

Source

pub const DEFAULT_MULTI_CLICK_TIMEOUT_MS: Millis = 3_000

Default timeout for the multi-click detector.

Source

pub const fn active_low() -> Self

Creates a configuration for the common pull-up wiring where the pressed state is low.

Source

pub const fn active_high() -> Self

Creates a configuration where the pressed state is high.

Source

pub const fn with_debounce_ms(self, debounce_ms: Millis) -> Self

Returns the configuration with a different debounce time.

Source

pub const fn with_double_click_ms(self, double_click_ms: Millis) -> Self

Returns the configuration with a different double-click interval.

Source

pub const fn with_hold_ms(self, hold_ms: Millis) -> Self

Returns the configuration with a different hold threshold.

Source

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.

Source

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.

Source

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

Source§

fn clone(&self) -> ButtonConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ButtonConfig

Source§

impl Debug for ButtonConfig

Source§

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

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

impl Default for ButtonConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Eq for ButtonConfig

Source§

impl PartialEq for ButtonConfig

Source§

fn eq(&self, other: &ButtonConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for ButtonConfig

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.