diff options
Diffstat (limited to 'src/systemtask')
| -rw-r--r-- | src/systemtask/Messages.h | 1 | ||||
| -rw-r--r-- | src/systemtask/SystemTask.cpp | 13 | ||||
| -rw-r--r-- | src/systemtask/SystemTask.h | 3 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h index 1210bbc..760cb7d 100644 --- a/src/systemtask/Messages.h +++ b/src/systemtask/Messages.h @@ -8,6 +8,7 @@ namespace Pinetime { TouchWakeUp, OnNewTime, OnNewNotification, + OnTimerDone, OnNewCall, BleConnected, UpdateTimeOut, diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index 6f32843..8e6f257 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -56,6 +56,7 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, + Controllers::TimerController& timerController, Controllers::AlarmController& alarmController, Drivers::Watchdog& watchdog, Pinetime::Controllers::NotificationManager& notificationManager, @@ -75,6 +76,7 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi, batteryController {batteryController}, bleController {bleController}, dateTimeController {dateTimeController}, + timerController {timerController}, alarmController {alarmController}, watchdog {watchdog}, notificationManager {notificationManager}, @@ -114,6 +116,8 @@ void SystemTask::Work() { NRF_LOG_INFO("Last reset reason : %s", Pinetime::Drivers::Watchdog::ResetReasonToString(watchdog.ResetReason())); APP_GPIOTE_INIT(2); + app_timer_init(); + spi.Init(); spiNorFlash.Init(); spiNorFlash.Wakeup(); @@ -135,6 +139,8 @@ void SystemTask::Work() { batteryController.Register(this); motorController.Init(); motionSensor.SoftReset(); + timerController.Register(this); + timerController.Init(); alarmController.Init(this); // Reset the TWI device because the motion sensor chip most probably crashed it... @@ -278,6 +284,13 @@ void SystemTask::Work() { displayApp.PushMessage(Pinetime::Applications::Display::Messages::NewNotification); } break; + case Messages::OnTimerDone: + if (isSleeping && !isWakingUp) { + GoToRunning(); + } + motorController.RunForDuration(35); + displayApp.PushMessage(Pinetime::Applications::Display::Messages::TimerDone); + break; case Messages::SetOffAlarm: if (isSleeping && !isWakingUp) { GoToRunning(); diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index 8fc48f1..fa28626 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -15,6 +15,7 @@ #include "components/ble/NimbleController.h" #include "components/ble/NotificationManager.h" #include "components/motor/MotorController.h" +#include "components/timer/TimerController.h" #include "components/alarm/AlarmController.h" #include "touchhandler/TouchHandler.h" #include "buttonhandler/ButtonHandler.h" @@ -58,6 +59,7 @@ namespace Pinetime { Controllers::Battery& batteryController, Controllers::Ble& bleController, Controllers::DateTime& dateTimeController, + Controllers::TimerController& timerController, Controllers::AlarmController& alarmController, Drivers::Watchdog& watchdog, Pinetime::Controllers::NotificationManager& notificationManager, @@ -98,6 +100,7 @@ namespace Pinetime { Pinetime::Controllers::Ble& bleController; Pinetime::Controllers::DateTime& dateTimeController; + Pinetime::Controllers::TimerController& timerController; Pinetime::Controllers::AlarmController& alarmController; QueueHandle_t systemTasksMsgQueue; std::atomic<bool> isSleeping {false}; |
