idfxx 1.0.0
Modern C++23 components for ESP-IDF
Loading...
Searching...
No Matches
idfxx::rotary_encoder::config Struct Reference

Rotary encoder configuration. More...

Public Attributes

idfxx::gpio pin_a = gpio::nc()
 Encoder pin A (required)
 
idfxx::gpio pin_b = gpio::nc()
 Encoder pin B (required)
 
std::optional< gpio::pull_modeencoder_pins_pull_mode = gpio::pull_mode::pullup
 Pull mode for encoder pins A and B, or std::nullopt to leave unchanged.
 
std::chrono::milliseconds acceleration_threshold {200}
 Acceleration starts below this interval.
 
std::chrono::milliseconds acceleration_cap {4}
 Minimum interval (limits max acceleration)
 
std::chrono::microseconds polling_interval {std::chrono::milliseconds{1}}
 GPIO polling interval.
 
std::move_only_function< void(int32_t)> callback
 Event callback (required)
 

Detailed Description

Rotary encoder configuration.

All fields have sensible defaults, but you must define pin_a, pin_b, and callback at minimum.

The pull mode field defaults to pullup as a convenience, but external pull-up resistors are recommended. When using external pull-ups, set the pull mode field to gpio::pull_mode::floating to disable internal pull resistors, or to std::nullopt if the pins have already been configured.

.pin_a = idfxx::gpio_4,
.pin_b = idfxx::gpio_5,
.callback = [](int32_t diff) {
// handle rotation
},
});
Incremental rotary encoder driver.
constexpr gpio gpio_4
Definition gpio.hpp:812
constexpr gpio gpio_5
Definition gpio.hpp:815
std::expected< T, std::error_code > result
result type wrapping a value or error code.
Definition error.hpp:120

Definition at line 62 of file rotary_encoder.hpp.

Member Data Documentation

◆ acceleration_cap

std::chrono::milliseconds idfxx::rotary_encoder::config::acceleration_cap {4}

Minimum interval (limits max acceleration)

Definition at line 68 of file rotary_encoder.hpp.

◆ acceleration_threshold

std::chrono::milliseconds idfxx::rotary_encoder::config::acceleration_threshold {200}

Acceleration starts below this interval.

Definition at line 67 of file rotary_encoder.hpp.

◆ callback

std::move_only_function<void(int32_t)> idfxx::rotary_encoder::config::callback

Event callback (required)

Definition at line 70 of file rotary_encoder.hpp.

◆ encoder_pins_pull_mode

std::optional<gpio::pull_mode> idfxx::rotary_encoder::config::encoder_pins_pull_mode = gpio::pull_mode::pullup

Pull mode for encoder pins A and B, or std::nullopt to leave unchanged.

Definition at line 66 of file rotary_encoder.hpp.

◆ pin_a

idfxx::gpio idfxx::rotary_encoder::config::pin_a = gpio::nc()

Encoder pin A (required)

Definition at line 63 of file rotary_encoder.hpp.

◆ pin_b

idfxx::gpio idfxx::rotary_encoder::config::pin_b = gpio::nc()

Encoder pin B (required)

Definition at line 64 of file rotary_encoder.hpp.

◆ polling_interval

std::chrono::microseconds idfxx::rotary_encoder::config::polling_interval {std::chrono::milliseconds{1}}

GPIO polling interval.

Definition at line 69 of file rotary_encoder.hpp.


The documentation for this struct was generated from the following file: