diff options
Diffstat (limited to 'src/systemtask')
-rw-r--r-- | src/systemtask/SystemTask.cpp | 44 | ||||
-rw-r--r-- | src/systemtask/SystemTask.h | 20 |
2 files changed, 38 insertions, 26 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp index dac4ce29..9cd2f5e9 100644 --- a/src/systemtask/SystemTask.cpp +++ b/src/systemtask/SystemTask.cpp @@ -1,19 +1,27 @@ -#include <libraries/log/nrf_log.h> -#include <libraries/gpiote/app_gpiote.h> -#include <drivers/Cst816s.h> -#include "displayapp/LittleVgl.h" -#include <hal/nrf_rtc.h> -#include "components/ble/NotificationManager.h" -#include <host/ble_gatt.h> -#include <host/ble_hs_adv.h> #include "SystemTask.h" -#include <nimble/hci_common.h> +#define min // workaround: nimble's min/max macros conflict with libstdc++ +#define max #include <host/ble_gap.h> +#include <host/ble_gatt.h> +#include <host/ble_hs_adv.h> #include <host/util/util.h> -#include <drivers/InternalFlash.h> +#include <nimble/hci_common.h> +#undef max +#undef min +#include <hal/nrf_rtc.h> +#include <libraries/gpiote/app_gpiote.h> +#include <libraries/log/nrf_log.h> + +#include "BootloaderVersion.h" +#include "components/ble/BleController.h" +#include "displayapp/LittleVgl.h" +#include "drivers/Cst816s.h" +#include "drivers/St7789.h" +#include "drivers/InternalFlash.h" +#include "drivers/SpiMaster.h" +#include "drivers/SpiNorFlash.h" +#include "drivers/TwiMaster.h" #include "main.h" -#include "components/ble/NimbleController.h" -#include "../BootloaderVersion.h" using namespace Pinetime::System; @@ -107,21 +115,22 @@ void SystemTask::Work() { while(true) { uint8_t msg; if (xQueueReceive(systemTasksMsgQueue, &msg, isSleeping ? 2500 : 1000)) { + batteryController.Update(); Messages message = static_cast<Messages >(msg); switch(message) { case Messages::GoToRunning: spi.Wakeup(); twiMaster.Wakeup(); + nimbleController.StartAdvertising(); + xTimerStart(idleTimer, 0); spiNorFlash.Wakeup(); - lcd.Wakeup(); touchPanel.Wakeup(); + lcd.Wakeup(); displayApp->PushMessage(Applications::DisplayApp::Messages::GoToRunning); displayApp->PushMessage(Applications::DisplayApp::Messages::UpdateBatteryLevel); - xTimerStart(idleTimer, 0); - nimbleController.StartAdvertising(); isSleeping = false; isWakingUp = false; break; @@ -190,12 +199,9 @@ void SystemTask::Work() { } } + monitor.Process(); uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG); dateTimeController.UpdateTime(systick_counter); - batteryController.Update(); - - monitor.Process(); - if(!nrf_gpio_pin_read(pinButton)) watchdog.Kick(); } diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h index 6ef0cfbf..fe6e7cbe 100644 --- a/src/systemtask/SystemTask.h +++ b/src/systemtask/SystemTask.h @@ -4,17 +4,23 @@ #include <FreeRTOS.h> #include <task.h> -#include <drivers/SpiMaster.h> -#include <drivers/St7789.h> -#include "components/battery/BatteryController.h" -#include "displayapp/DisplayApp.h" -#include <drivers/Watchdog.h> -#include <drivers/SpiNorFlash.h> +#include <timers.h> + #include "SystemMonitor.h" +#include "components/battery/BatteryController.h" #include "components/ble/NimbleController.h" -#include "timers.h" +#include "components/ble/NotificationManager.h" +#include "displayapp/DisplayApp.h" +#include "drivers/Watchdog.h" namespace Pinetime { + namespace Drivers { + class Cst816S; + class SpiMaster; + class SpiNorFlash; + class St7789; + class TwiMaster; + } namespace System { class SystemTask { public: |