Move button's underlying gpio to be public
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
4773801101
commit
5a24602d86
@ -27,17 +27,19 @@ public:
|
|||||||
using gpio = G;
|
using gpio = G;
|
||||||
using hal = H;
|
using hal = H;
|
||||||
|
|
||||||
|
gpio sw;
|
||||||
|
|
||||||
static constexpr std::uint32_t TIMEOUT_SHORT_PRESS = 50;
|
static constexpr std::uint32_t TIMEOUT_SHORT_PRESS = 50;
|
||||||
static constexpr std::uint32_t TIMEOUT_LONG_PRESS = 500;
|
static constexpr std::uint32_t TIMEOUT_LONG_PRESS = 500;
|
||||||
|
|
||||||
Button() = delete;
|
Button() = delete;
|
||||||
explicit Button(const gpio& sw)
|
explicit Button(const gpio& sw)
|
||||||
: _sw(sw)
|
: sw(sw)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void update()
|
void update()
|
||||||
{
|
{
|
||||||
const bool is_pressed = _sw.Read();
|
const bool is_pressed = sw.Read();
|
||||||
ButtonPress new_state = ButtonPress::NOT_PRESSED;
|
ButtonPress new_state = ButtonPress::NOT_PRESSED;
|
||||||
|
|
||||||
if (is_pressed && !_was_pressed)
|
if (is_pressed && !_was_pressed)
|
||||||
@ -64,8 +66,6 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
gpio _sw;
|
|
||||||
|
|
||||||
bool _was_pressed = false;
|
bool _was_pressed = false;
|
||||||
std::uint32_t _time_pressed_down = 0;
|
std::uint32_t _time_pressed_down = 0;
|
||||||
ButtonPress _current_state = ButtonPress::NOT_PRESSED;
|
ButtonPress _current_state = ButtonPress::NOT_PRESSED;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user