Add button tests

This is implemented by connecting the DTR pin of the serial device to the BTN_UP pin of the watch.

Also, make it possible to flash different applications with the Makefile.

Resolves #4
This commit is contained in:
2020-06-11 16:39:51 +00:00
parent cdf0f4ffc9
commit 573504547c
9 changed files with 260 additions and 65 deletions

View File

@@ -27,10 +27,13 @@
using BSP::Schedule::Task;
using BSP::Schedule::NextTime;
using BSP::ReturnCode;
using BSP::ButtonManager;
using Button = ButtonManager::Button;
using ButtonState = ButtonManager::ButtonState;
ScreenManager::ScreenManager(BSP::Schedule::TaskScheduler &scheduler,
BSP::DisplayDriver &display,
BSP::ButtonManager &buttons)
ButtonManager &buttons)
: m_scheduler(scheduler)
, m_screen_stack{nullptr}
, m_screen_stack_depth(0)
@@ -43,23 +46,23 @@ ScreenManager::ScreenManager(BSP::Schedule::TaskScheduler &scheduler,
ReturnCode ScreenManager::init()
{
m_buttons.set_callback(
BSP::ButtonManager::Button::UP,
[this](BSP::ButtonManager::ButtonState state) {
if (state == BSP::ButtonManager::ButtonState::PRESSED) {
Button::UP,
[this](ButtonState state) {
if (state == ButtonState::PRESSED) {
current_screen()->notify_up_button();
}});
m_buttons.set_callback(
BSP::ButtonManager::Button::MID,
[this](BSP::ButtonManager::ButtonState state) {
if (state == BSP::ButtonManager::ButtonState::PRESSED) {
Button::MID,
[this](ButtonState state) {
if (state == ButtonState::PRESSED) {
return current_screen()->notify_middle_button();
}});
m_buttons.set_callback(
BSP::ButtonManager::Button::DOWN,
[this](BSP::ButtonManager::ButtonState state) {
if (state == BSP::ButtonManager::ButtonState::PRESSED) {
Button::DOWN,
[this](ButtonState state) {
if (state == ButtonState::PRESSED) {
current_screen()->notify_down_button();
}});