diff options
Diffstat (limited to 'src/systemtask')
| -rw-r--r-- | src/systemtask/Messages.h | 1 | ||||
| -rw-r--r-- | src/systemtask/SystemTask.cpp | 68 | ||||
| -rw-r--r-- | src/systemtask/SystemTask.h | 8 |
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); |
