summaryrefslogtreecommitdiff
path: root/src/systemtask/SystemTask.cpp
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2021-08-28 16:54:40 +0300
committerRiku Isokoski <riksu9000@gmail.com>2021-08-28 16:54:40 +0300
commit085c9ab2e15b35af01d73e823a87994a7a24a76f (patch)
tree159c492ca36007f6239739fa46f7deb95be2d3bf /src/systemtask/SystemTask.cpp
parent044036e884039237ade739d46b682e586a36e8df (diff)
parentfab49f8557ef8ff38fe4f607e33b18fb5a1aeb9a (diff)
Merge branch 'develop' into timer_battery_reading
Diffstat (limited to 'src/systemtask/SystemTask.cpp')
-rw-r--r--src/systemtask/SystemTask.cpp34
1 files changed, 14 insertions, 20 deletions
diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index 00932f63..0b181de7 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -72,7 +72,8 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
Pinetime::Controllers::HeartRateController& heartRateController,
Pinetime::Applications::DisplayApp& displayApp,
Pinetime::Applications::HeartRateTask& heartRateApp,
- Pinetime::Controllers::FS& fs)
+ Pinetime::Controllers::FS& fs,
+ Pinetime::Controllers::TouchHandler& touchHandler)
: spi {spi},
lcd {lcd},
spiNorFlash {spiNorFlash},
@@ -84,18 +85,18 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
dateTimeController {dateTimeController},
timerController {timerController},
watchdog {watchdog},
- notificationManager{notificationManager},
+ notificationManager {notificationManager},
motorController {motorController},
heartRateSensor {heartRateSensor},
motionSensor {motionSensor},
settingsController {settingsController},
- heartRateController{heartRateController},
- motionController{motionController},
- displayApp{displayApp},
+ heartRateController {heartRateController},
+ motionController {motionController},
+ displayApp {displayApp},
heartRateApp(heartRateApp),
- fs{fs},
+ fs {fs},
+ touchHandler {touchHandler},
nimbleController(*this, bleController, dateTimeController, notificationManager, batteryController, spiNorFlash, heartRateController) {
-
}
void SystemTask::Start() {
@@ -121,7 +122,7 @@ void SystemTask::Work() {
spi.Init();
spiNorFlash.Init();
spiNorFlash.Wakeup();
-
+
fs.Init();
nimbleController.Init();
@@ -220,7 +221,6 @@ void SystemTask::Work() {
break;
case Messages::GoToRunning:
spi.Wakeup();
- twiMaster.Wakeup();
// Double Tap needs the touch screen to be in normal mode
if (!settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
@@ -240,10 +240,8 @@ void SystemTask::Work() {
isDimmed = false;
break;
case Messages::TouchWakeUp: {
- twiMaster.Wakeup();
auto touchInfo = touchPanel.GetTouchInfo();
- twiMaster.Sleep();
- if (touchInfo.isTouch and ((touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap and
+ if (touchInfo.touching and ((touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::DoubleTap and
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) or
(touchInfo.gesture == Pinetime::Drivers::Cst816S::Gestures::SingleTap and
settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::SingleTap)))) {
@@ -294,6 +292,9 @@ void SystemTask::Work() {
xTimerStart(dimTimer, 0);
break;
case Messages::OnTouchEvent:
+ if (touchHandler.GetNewTouchInfo()) {
+ touchHandler.UpdateLvglTouchPoint();
+ }
ReloadIdleTimer();
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TouchEvent);
break;
@@ -314,7 +315,6 @@ void SystemTask::Work() {
if (!settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::DoubleTap)) {
touchPanel.Sleep();
}
- twiMaster.Sleep();
isSleeping = true;
isGoingToSleep = false;
@@ -371,17 +371,12 @@ void SystemTask::UpdateMotion() {
if (isSleeping && !settingsController.isWakeUpModeOn(Pinetime::Controllers::Settings::WakeUpMode::RaiseWrist))
return;
- if (isSleeping)
- twiMaster.Wakeup();
-
if (stepCounterMustBeReset) {
motionSensor.ResetStepCounter();
stepCounterMustBeReset = false;
}
auto motionValues = motionSensor.Process();
- if (isSleeping)
- twiMaster.Sleep();
motionController.IsSensorOk(motionSensor.IsOk());
motionController.Update(motionValues.x, motionValues.y, motionValues.z, motionValues.steps);
@@ -429,14 +424,13 @@ void SystemTask::PushMessage(System::Messages msg) {
isGoingToSleep = true;
}
- if(in_isr()) {
+ if (in_isr()) {
BaseType_t xHigherPriorityTaskWoken;
xHigherPriorityTaskWoken = pdFALSE;
xQueueSendFromISR(systemTasksMsgQueue, &msg, &xHigherPriorityTaskWoken);
if (xHigherPriorityTaskWoken) {
/* Actual macro used here is port specific. */
portYIELD_FROM_ISR(xHigherPriorityTaskWoken);
-
}
} else {
xQueueSend(systemTasksMsgQueue, &msg, portMAX_DELAY);