aboutsummaryrefslogtreecommitdiffstats
path: root/src/systemtask/SystemTask.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemtask/SystemTask.h')
-rw-r--r--src/systemtask/SystemTask.h21
1 files changed, 7 insertions, 14 deletions
diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h
index 72e88875..0060e360 100644
--- a/src/systemtask/SystemTask.h
+++ b/src/systemtask/SystemTask.h
@@ -15,7 +15,6 @@
#include "systemtask/SystemMonitor.h"
#include "components/ble/NimbleController.h"
#include "components/ble/NotificationManager.h"
-#include "components/timer/TimerController.h"
#include "components/alarm/AlarmController.h"
#include "components/fs/FS.h"
#include "touchhandler/TouchHandler.h"
@@ -53,7 +52,7 @@ namespace Pinetime {
namespace System {
class SystemTask {
public:
- enum class SystemTaskState { Sleeping, Running, GoingToSleep, WakingUp };
+ enum class SystemTaskState { Sleeping, Running, GoingToSleep, AODSleeping };
SystemTask(Drivers::SpiMaster& spi,
Pinetime::Drivers::SpiNorFlash& spiNorFlash,
Drivers::TwiMaster& twiMaster,
@@ -61,7 +60,6 @@ namespace Pinetime {
Controllers::Battery& batteryController,
Controllers::Ble& bleController,
Controllers::DateTime& dateTimeController,
- Controllers::TimerController& timerController,
Controllers::AlarmController& alarmController,
Drivers::Watchdog& watchdog,
Pinetime::Controllers::NotificationManager& notificationManager,
@@ -79,17 +77,16 @@ namespace Pinetime {
void Start();
void PushMessage(Messages msg);
- void OnTouchEvent();
-
- void OnIdle();
- void OnDim();
+ bool IsSleepDisabled() {
+ return wakeLocksHeld > 0;
+ }
Pinetime::Controllers::NimbleController& nimble() {
return nimbleController;
};
bool IsSleeping() const {
- return state == SystemTaskState::Sleeping || state == SystemTaskState::WakingUp;
+ return state != SystemTaskState::Running;
}
private:
@@ -103,7 +100,6 @@ namespace Pinetime {
Pinetime::Controllers::Ble& bleController;
Pinetime::Controllers::DateTime& dateTimeController;
- Pinetime::Controllers::TimerController& timerController;
Pinetime::Controllers::AlarmController& alarmController;
QueueHandle_t systemTasksMsgQueue;
Pinetime::Drivers::Watchdog& watchdog;
@@ -123,20 +119,17 @@ namespace Pinetime {
static void Process(void* instance);
void Work();
- void ReloadIdleTimer();
bool isBleDiscoveryTimerRunning = false;
uint8_t bleDiscoveryTimer = 0;
- TimerHandle_t dimTimer;
- TimerHandle_t idleTimer;
TimerHandle_t measureBatteryTimer;
- bool doNotGoToSleep = false;
- bool isDimmed = false;
+ uint8_t wakeLocksHeld = 0;
SystemTaskState state = SystemTaskState::Running;
void HandleButtonAction(Controllers::ButtonActions action);
bool fastWakeUpDone = false;
void GoToRunning();
+ void GoToSleep();
void UpdateMotion();
bool stepCounterMustBeReset = false;
static constexpr TickType_t batteryMeasurementPeriod = pdMS_TO_TICKS(10 * 60 * 1000);