refactor tree, add ecad, mcad
This commit is contained in:
@@ -29,13 +29,13 @@
|
||||
|
||||
namespace BSP {
|
||||
|
||||
class ButtonManager : public Common::Schedule::Task {
|
||||
class ButtonManager : public BSP::Schedule::Task {
|
||||
public:
|
||||
ButtonManager(Common::Schedule::TaskScheduler &scheduler,
|
||||
ButtonManager(BSP::Schedule::TaskScheduler &scheduler,
|
||||
uint8_t up_gpio_idx,
|
||||
uint8_t mid_gpio_idx,
|
||||
uint8_t down_gpio_idx,
|
||||
Common::time_t debounce_time)
|
||||
BSP::time_t debounce_time)
|
||||
: m_scheduler(scheduler)
|
||||
, m_buttons
|
||||
{
|
||||
@@ -66,9 +66,9 @@ public:
|
||||
|
||||
using ChangeCallback = std::function<void(ButtonState)>;
|
||||
|
||||
Common::Schedule::NextTime execute() override;
|
||||
BSP::Schedule::NextTime execute() override;
|
||||
|
||||
Common::ReturnCode init();
|
||||
BSP::ReturnCode init();
|
||||
void set_callback(Button btn, ChangeCallback callback);
|
||||
void remove_callback(Button btn);
|
||||
|
||||
@@ -79,7 +79,7 @@ private:
|
||||
struct button_state {
|
||||
|
||||
button_state(uint8_t gpio_index,
|
||||
Common::time_t debounce_time,
|
||||
BSP::time_t debounce_time,
|
||||
ChangeCallback callback)
|
||||
: m_gpio_idx(gpio_index)
|
||||
, m_debounce_time(debounce_time)
|
||||
@@ -88,15 +88,15 @@ private:
|
||||
, m_callback(callback)
|
||||
{}
|
||||
uint8_t const m_gpio_idx;
|
||||
Common::time_t const m_debounce_time;
|
||||
BSP::time_t const m_debounce_time;
|
||||
|
||||
ButtonState m_prev_call_state; /*<! The last state the button was in when it the callback was called */
|
||||
ButtonState m_state; /*<! The state the button was in during the last iteration */
|
||||
Common::time_t m_state_change_ts; /*<! The system time when the button entered its current state */
|
||||
BSP::time_t m_state_change_ts; /*<! The system time when the button entered its current state */
|
||||
ChangeCallback m_callback; /*<! The callback to call when the button has changed states (post-debounce) */
|
||||
};
|
||||
|
||||
Common::Schedule::TaskScheduler &m_scheduler;
|
||||
BSP::Schedule::TaskScheduler &m_scheduler;
|
||||
button_state m_buttons[Button::Count];
|
||||
|
||||
static void nop_callback(ButtonState) {};
|
||||
|
||||
Reference in New Issue
Block a user