diff options
author | JF <jf@codingfield.com> | 2020-04-05 19:59:22 +0200 |
---|---|---|
committer | Gitea <gitea@fake.local> | 2020-04-05 19:59:22 +0200 |
commit | 86d5732b960fbe7f81ed711b2de7e6b79293c96a (patch) | |
tree | 8447f6b7bbff0f423e9cf5d15ed709c630bed25e /src/SystemTask | |
parent | a91c68c931cc8308e87acd796afb46ba70ae3dc2 (diff) | |
parent | 6e1bd118c5ecc53016548072501591b329500870 (diff) |
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/SystemTask')
-rw-r--r-- | src/SystemTask/SystemTask.cpp | 31 | ||||
-rw-r--r-- | src/SystemTask/SystemTask.h | 17 |
2 files changed, 30 insertions, 18 deletions
diff --git a/src/SystemTask/SystemTask.cpp b/src/SystemTask/SystemTask.cpp index e90672d9..e65abb61 100644 --- a/src/SystemTask/SystemTask.cpp +++ b/src/SystemTask/SystemTask.cpp @@ -5,15 +5,19 @@ #include <hal/nrf_rtc.h> #include <BLE/BleManager.h> #include <softdevice/common/nrf_sdh_freertos.h> +#include <Components/Ble/NotificationManager.h> #include "SystemTask.h" #include "../main.h" using namespace Pinetime::System; -SystemTask::SystemTask(Pinetime::Drivers::SpiMaster &spi, Pinetime::Drivers::St7789 &lcd, - Pinetime::Drivers::Cst816S &touchPanel, Pinetime::Components::LittleVgl &lvgl, - Pinetime::Controllers::Battery &batteryController, Pinetime::Controllers::Ble &bleController, - Pinetime::Controllers::DateTime& dateTimeController) : - spi{spi}, lcd{lcd}, touchPanel{touchPanel}, lvgl{lvgl}, batteryController{batteryController}, bleController{bleController}, dateTimeController{dateTimeController} { +SystemTask::SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd, Drivers::Cst816S &touchPanel, + Components::LittleVgl &lvgl, + Controllers::Battery &batteryController, Controllers::Ble &bleController, + Controllers::DateTime &dateTimeController, + Pinetime::Controllers::NotificationManager& notificationManager) : + spi{spi}, lcd{lcd}, touchPanel{touchPanel}, lvgl{lvgl}, batteryController{batteryController}, + bleController{bleController}, dateTimeController{dateTimeController}, + watchdog{}, watchdogView{watchdog}, notificationManager{notificationManager} { systemTaksMsgQueue = xQueueCreate(10, 1); } @@ -33,16 +37,17 @@ void SystemTask::Work() { watchdog.Start(); NRF_LOG_INFO("Last reset reason : %s", Pinetime::Drivers::Watchdog::ResetReasonToString(watchdog.ResetReason())); APP_GPIOTE_INIT(2); - bool erase_bonds=false; -// ble_manager_init_peer_manager(); -// nrf_sdh_freertos_init(ble_manager_start_advertising, &erase_bonds); + bool erase_bonds=true; + ble_manager_init_peer_manager(); + nrf_sdh_freertos_init(ble_manager_start_advertising, &erase_bonds); spi.Init(); lcd.Init(); touchPanel.Init(); batteryController.Init(); - displayApp.reset(new Pinetime::Applications::DisplayApp(lcd, lvgl, touchPanel, batteryController, bleController, dateTimeController, *this)); + displayApp.reset(new Pinetime::Applications::DisplayApp(lcd, lvgl, touchPanel, batteryController, bleController, + dateTimeController, watchdogView, *this, notificationManager)); displayApp->Start(); batteryController.Update(); @@ -82,11 +87,18 @@ void SystemTask::Work() { NRF_LOG_INFO("[SystemTask] Going to sleep"); displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::GoToSleep); isSleeping = true; break; + case Messages::OnNewTime: + displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::UpdateDateTime); + break; + case Messages::OnNewNotification: + displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::NewNotification); + break; default: break; } } uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG); dateTimeController.UpdateTime(systick_counter); + batteryController.Update(); if(!nrf_gpio_pin_read(pinButton)) watchdog.Kick(); @@ -103,7 +115,6 @@ void SystemTask::OnButtonPushed() { NRF_LOG_INFO("[SystemTask] Button pushed, waking up"); displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::GoToRunning); isSleeping = false; - batteryController.Update(); displayApp->PushMessage(Pinetime::Applications::DisplayApp::Messages::UpdateBatteryLevel); } } diff --git a/src/SystemTask/SystemTask.h b/src/SystemTask/SystemTask.h index f5ba2d75..a1ba277a 100644 --- a/src/SystemTask/SystemTask.h +++ b/src/SystemTask/SystemTask.h @@ -13,15 +13,14 @@ namespace Pinetime { namespace System { class SystemTask { public: - enum class Messages {GoToSleep, GoToRunning}; + enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification + }; - SystemTask(Pinetime::Drivers::SpiMaster& spi, - Pinetime::Drivers::St7789& lcd, - Pinetime::Drivers::Cst816S& touchPanel, - Pinetime::Components::LittleVgl& lvgl, - Pinetime::Controllers::Battery& batteryController, - Pinetime::Controllers::Ble& bleController, - Pinetime::Controllers::DateTime& dateTimeController); + SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd, Drivers::Cst816S &touchPanel, + Components::LittleVgl &lvgl, + Controllers::Battery &batteryController, Controllers::Ble &bleController, + Controllers::DateTime &dateTimeController, + Pinetime::Controllers::NotificationManager& manager); void Start(); @@ -43,6 +42,8 @@ namespace Pinetime { QueueHandle_t systemTaksMsgQueue; bool isSleeping = false; Pinetime::Drivers::Watchdog watchdog; + Pinetime::Drivers::WatchdogView watchdogView; + Pinetime::Controllers::NotificationManager& notificationManager; static constexpr uint8_t pinSpiSck = 2; |