summaryrefslogtreecommitdiff
path: root/src/systemtask
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemtask')
-rw-r--r--src/systemtask/SystemTask.cpp44
-rw-r--r--src/systemtask/SystemTask.h20
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: