Fix wake up lock in twi

optimize battery code
This commit is contained in:
Joaquim
2021-04-05 15:22:10 +01:00
parent 96961709f3
commit 365e68e6cc
5 changed files with 52 additions and 46 deletions

View File

@@ -167,6 +167,21 @@ void SystemTask::Work() {
isSleeping = false;
isWakingUp = false;
break;
case Messages::TouchWakeUp: {
auto touchInfo = touchPanel.GetTouchInfo();
if( touchInfo.isTouch and
(
( touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap and
settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap
) or
( touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::SingleTap and
settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap
)
)
) {
GoToRunning();
}
} break;
case Messages::GoToSleep:
isGoingToSleep = true;
NRF_LOG_INFO("[systemtask] Going to sleep");
@@ -276,16 +291,7 @@ void SystemTask::OnTouchEvent() {
} else if(!isWakingUp) {
if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::None or
settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist ) return;
if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::SingleTap ) {
GoToRunning();
} else if( settingsController.getWakeUpMode() == Pinetime::Controllers::Settings::WakeUpMode::DoubleTap ) {
auto info = touchPanel.GetTouchInfo();
if( info.isTouch and info.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap ) {
GoToRunning();
}
}
PushMessage(Messages::TouchWakeUp);
}
}

View File

@@ -37,7 +37,7 @@ namespace Pinetime {
namespace System {
class SystemTask {
public:
enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, OnNewCall, BleConnected, UpdateTimeOut,
enum class Messages {GoToSleep, GoToRunning, TouchWakeUp, OnNewTime, OnNewNotification, OnNewCall, BleConnected, UpdateTimeOut,
BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping, EnableSleeping, DisableSleeping
};