refactor tree, add ecad, mcad

This commit is contained in:
2019-08-28 23:23:48 -07:00
parent d5ddd76bef
commit ae837eef12
45 changed files with 4629 additions and 169 deletions

View File

@@ -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) {};