summaryrefslogtreecommitdiff
path: root/src/systemtask
diff options
context:
space:
mode:
authorKieran Cawthray <kieranc@gmail.com>2021-07-20 15:30:07 +0200
committerKieran Cawthray <kieranc@gmail.com>2021-07-20 15:30:07 +0200
commitdb784fc2fb4e9095f3c1a0168a4b6978e8bfa76d (patch)
tree84bbed8c3a9ae57ad2fdbe92b0f61e8eadbc5fbc /src/systemtask
parent5c183bef8549368ca8709f98215d52f8e150ad57 (diff)
parent57b339707861c5688f5d432f1506a99df6bb0fce (diff)
Merge remote-tracking branch 'upstream/develop' into pinetimestyle-colorpicker
Diffstat (limited to 'src/systemtask')
-rw-r--r--src/systemtask/SystemTask.cpp23
-rw-r--r--src/systemtask/SystemTask.h2
2 files changed, 16 insertions, 9 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index 17e78230..d8b965b1 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -211,7 +211,7 @@ void SystemTask::Work() {
twiMaster.Wakeup();
// Double Tap needs the touch screen to be in normal mode
- if (settingsController.getWakeUpMode() != Pinetime::Controllers::Settings::WakeUpMode::DoubleTap) {
+ if (!settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
touchPanel.Wakeup();
}
@@ -232,9 +232,9 @@ void SystemTask::Work() {
auto touchInfo = touchPanel.GetTouchInfo();
twiMaster.Sleep();
if (touchInfo.isTouch and ((touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap and
- settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap) or
+ settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) or
(touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::SingleTap and
- settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap))) {
+ settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
GoToRunning();
}
} break;
@@ -296,7 +296,7 @@ void SystemTask::Work() {
spi.Sleep();
// Double Tap needs the touch screen to be in normal mode
- if (settingsController.getWakeUpMode() != Pinetime::Controllers::Settings::WakeUpMode::DoubleTap) {
+ if (!settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
touchPanel.Sleep();
}
twiMaster.Sleep();
@@ -330,6 +330,11 @@ void SystemTask::Work() {
}
}
+ if (xTaskGetTickCount() - batteryNotificationTick > batteryNotificationPeriod) {
+ nimbleController.NotifyBatteryLevel(batteryController.PercentRemaining());
+ batteryNotificationTick = xTaskGetTickCount();
+ }
+
monitor.Process();
uint32_t systick_counter = nrf_rtc_counter_get(portNRF_RTC_REG);
dateTimeController.UpdateTime(systick_counter);
@@ -343,7 +348,7 @@ void SystemTask::UpdateMotion() {
if (isGoingToSleep or isWakingUp)
return;
- if (isSleeping && settingsController.getWakeUpMode() != Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist)
+ if (isSleeping && !settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist))
return;
if (isSleeping)
@@ -394,10 +399,10 @@ void SystemTask::OnTouchEvent() {
PushMessage(Messages::OnTouchEvent);
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
} else if (!isWakingUp) {
- if (settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None or
- settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist)
- return;
- PushMessage(Messages::TouchWakeUp);
+ if (settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap) or
+ settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
+ PushMessage(Messages::TouchWakeUp);
+ }
}
}
diff --git a/src/systemtask/SystemTask.h b/src/systemtask/SystemTask.h
index bfb97264..f8cf6370 100644
--- a/src/systemtask/SystemTask.h
+++ b/src/systemtask/SystemTask.h
@@ -135,6 +135,8 @@ namespace Pinetime {
void GoToRunning();
void UpdateMotion();
bool stepCounterMustBeReset = false;
+ static constexpr TickType_t batteryNotificationPeriod = 1000 * 60 * 10; // 1 tick ~= 1ms. 1ms * 60 * 10 = 10 minutes
+ TickType_t batteryNotificationTick = 0;
#if configUSE_TRACE_FACILITY == 1
SystemMonitor<FreeRtosMonitor> monitor;