aboutsummaryrefslogtreecommitdiffstats
path: root/src/systemtask
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemtask')
-rw-r--r--src/systemtask/Messages.h1
-rw-r--r--src/systemtask/SystemTask.cpp68
-rw-r--r--src/systemtask/SystemTask.h8
3 files changed, 9 insertions, 68 deletions
diff --git a/src/systemtask/Messages.h b/src/systemtask/Messages.h
index 3768ae9b..d92755b7 100644
--- a/src/systemtask/Messages.h
+++ b/src/systemtask/Messages.h
@@ -12,7 +12,6 @@ namespace Pinetime {
OnTimerDone,
OnNewCall,
BleConnected,
- UpdateTimeOut,
BleFirmwareUpdateStarted,
BleFirmwareUpdateFinished,
OnTouchEvent,
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index 041cb209..539ff895 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -27,20 +27,6 @@ namespace {
}
}
-void DimTimerCallback(TimerHandle_t xTimer) {
-
- NRF_LOG_INFO("DimTimerCallback");
- auto* sysTask = static_cast<SystemTask*>(pvTimerGetTimerID(xTimer));
- sysTask->OnDim();
-}
-
-void IdleTimerCallback(TimerHandle_t xTimer) {
-
- NRF_LOG_INFO("IdleTimerCallback");
- auto* sysTask = static_cast<SystemTask*>(pvTimerGetTimerID(xTimer));
- sysTask->OnIdle();
-}
-
void MeasureBatteryTimerCallback(TimerHandle_t xTimer) {
auto* sysTask = static_cast<SystemTask*>(pvTimerGetTimerID(xTimer));
sysTask->PushMessage(Pinetime::System::Messages::MeasureBatteryTimerExpired);
@@ -189,10 +175,7 @@ void SystemTask::Work() {
batteryController.MeasureVoltage();
- idleTimer = xTimerCreate("idleTimer", pdMS_TO_TICKS(2000), pdFALSE, this, IdleTimerCallback);
- dimTimer = xTimerCreate("dimTimer", pdMS_TO_TICKS(settingsController.GetScreenTimeOut() - 2000), pdFALSE, this, DimTimerCallback);
measureBatteryTimer = xTimerCreate("measureBattery", batteryMeasurementPeriod, pdTRUE, this, MeasureBatteryTimerCallback);
- xTimerStart(dimTimer, 0);
xTimerStart(measureBatteryTimer, portMAX_DELAY);
#pragma clang diagnostic push
@@ -209,14 +192,11 @@ void SystemTask::Work() {
if (!bleController.IsFirmwareUpdating()) {
doNotGoToSleep = false;
}
- ReloadIdleTimer();
+ displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
break;
case Messages::DisableSleeping:
doNotGoToSleep = true;
break;
- case Messages::UpdateTimeOut:
- xTimerChangePeriod(dimTimer, pdMS_TO_TICKS(settingsController.GetScreenTimeOut() - 2000), 0);
- break;
case Messages::GoToRunning:
spi.Wakeup();
@@ -225,7 +205,6 @@ void SystemTask::Work() {
touchPanel.Wakeup();
}
- xTimerStart(dimTimer, 0);
spiNorFlash.Wakeup();
displayApp.PushMessage(Pinetime::Applications::Display::Messages::GoToRunning);
@@ -236,7 +215,6 @@ void SystemTask::Work() {
}
state = SystemTaskState::Running;
- isDimmed = false;
break;
case Messages::TouchWakeUp: {
if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
@@ -258,13 +236,11 @@ void SystemTask::Work() {
}
state = SystemTaskState::GoingToSleep; // Already set in PushMessage()
NRF_LOG_INFO("[systemtask] Going to sleep");
- xTimerStop(idleTimer, 0);
- xTimerStop(dimTimer, 0);
displayApp.PushMessage(Pinetime::Applications::Display::Messages::GoToSleep);
heartRateApp.PushMessage(Pinetime::Applications::HeartRateTask::Messages::GoToSleep);
break;
case Messages::OnNewTime:
- ReloadIdleTimer();
+ displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
displayApp.PushMessage(Pinetime::Applications::Display::Messages::UpdateDateTime);
if (alarmController.State() == Controllers::AlarmController::AlarmState::Set) {
alarmController.ScheduleAlarm();
@@ -275,7 +251,7 @@ void SystemTask::Work() {
if (state == SystemTaskState::Sleeping) {
GoToRunning();
} else {
- ReloadIdleTimer();
+ displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
}
displayApp.PushMessage(Pinetime::Applications::Display::Messages::NewNotification);
}
@@ -293,7 +269,7 @@ void SystemTask::Work() {
displayApp.PushMessage(Pinetime::Applications::Display::Messages::AlarmTriggered);
break;
case Messages::BleConnected:
- ReloadIdleTimer();
+ displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
isBleDiscoveryTimerRunning = true;
bleDiscoveryTimer = 5;
break;
@@ -309,7 +285,6 @@ void SystemTask::Work() {
NVIC_SystemReset();
}
doNotGoToSleep = false;
- xTimerStart(dimTimer, 0);
break;
case Messages::StartFileTransfer:
NRF_LOG_INFO("[systemtask] FS Started");
@@ -322,12 +297,10 @@ void SystemTask::Work() {
case Messages::StopFileTransfer:
NRF_LOG_INFO("[systemtask] FS Stopped");
doNotGoToSleep = false;
- xTimerStart(dimTimer, 0);
// TODO add intent of fs access icon or something
break;
case Messages::OnTouchEvent:
if (touchHandler.ProcessTouchInfo(touchPanel.GetTouchInfo())) {
- ReloadIdleTimer();
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
}
break;
@@ -395,7 +368,6 @@ void SystemTask::Work() {
case Messages::OnChargingEvent:
batteryController.ReadPowerState();
displayApp.PushMessage(Applications::Display::Messages::OnChargingEvent);
- ReloadIdleTimer();
if (state == SystemTaskState::Sleeping) {
GoToRunning();
}
@@ -481,7 +453,7 @@ void SystemTask::HandleButtonAction(Controllers::ButtonActions action) {
return;
}
- ReloadIdleTimer();
+ displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
using Actions = Controllers::ButtonActions;
@@ -542,33 +514,3 @@ void SystemTask::PushMessage(System::Messages msg) {
xQueueSend(systemTasksMsgQueue, &msg, portMAX_DELAY);
}
}
-
-void SystemTask::OnDim() {
- if (doNotGoToSleep) {
- return;
- }
- NRF_LOG_INFO("Dim timeout -> Dim screen")
- displayApp.PushMessage(Pinetime::Applications::Display::Messages::DimScreen);
- xTimerStart(idleTimer, 0);
- isDimmed = true;
-}
-
-void SystemTask::OnIdle() {
- if (doNotGoToSleep) {
- return;
- }
- NRF_LOG_INFO("Idle timeout -> Going to sleep")
- PushMessage(Messages::GoToSleep);
-}
-
-void SystemTask::ReloadIdleTimer() {
- if (state != SystemTaskState::Running) {
- return;
- }
- if (isDimmed) {
- displayApp.PushMessage(Pinetime::Applications::Display::Messages::RestoreBrightness);
- isDimmed = false;
- }
- xTimerReset(dimTimer, 0);
- xTimerStop(idleTimer, 0);
-}
diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h
index 72e88875..22d268be 100644
--- a/src/systemtask/SystemTask.h
+++ b/src/systemtask/SystemTask.h
@@ -84,6 +84,10 @@ namespace Pinetime {
void OnIdle();
void OnDim();
+ bool IsSleepDisabled() {
+ return doNotGoToSleep;
+ }
+
Pinetime::Controllers::NimbleController& nimble() {
return nimbleController;
};
@@ -123,14 +127,10 @@ 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;
SystemTaskState state = SystemTaskState::Running;
void HandleButtonAction(Controllers::ButtonActions action);