From 5ab255b26b4f23ca4b6fab2a660f8cf55fcda48b Mon Sep 17 00:00:00 2001 From: Riku Isokoski Date: Sat, 25 Feb 2023 10:25:38 +0200 Subject: SystemTask: Move MotorController to DisplayApp Vibrations should be associated with something happening on the UI. Therefore SystemTask should not be controlling the motor. --- src/displayapp/DisplayApp.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/displayapp/DisplayApp.cpp') diff --git a/src/displayapp/DisplayApp.cpp b/src/displayapp/DisplayApp.cpp index 41e73f33..055a6a80 100644 --- a/src/displayapp/DisplayApp.cpp +++ b/src/displayapp/DisplayApp.cpp @@ -127,6 +127,7 @@ void DisplayApp::Process(void* instance) { void DisplayApp::InitHw() { brightnessController.Init(); ApplyBrightness(); + motorController.Init(); } void DisplayApp::Refresh() { @@ -206,6 +207,7 @@ void DisplayApp::Refresh() { } else { LoadNewScreen(Apps::Timer, DisplayApp::FullRefreshDirections::Up); } + motorController.RunForDuration(35); break; case Messages::AlarmTriggered: if (currentApp == Apps::Alarm) { @@ -217,6 +219,7 @@ void DisplayApp::Refresh() { break; case Messages::ShowPairingKey: LoadNewScreen(Apps::PassKey, DisplayApp::FullRefreshDirections::Up); + motorController.RunForDuration(35); break; case Messages::TouchEvent: { if (state != States::Running) { @@ -307,8 +310,12 @@ void DisplayApp::Refresh() { // Added to remove warning // What should happen here? break; - case Messages::Clock: + case Messages::Chime: LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None); + motorController.RunForDuration(35); + break; + case Messages::OnChargingEvent: + motorController.RunForDuration(15); break; } } @@ -342,6 +349,7 @@ void DisplayApp::LoadNewScreen(Apps app, DisplayApp::FullRefreshDirections direc void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections direction) { lvgl.CancelTap(); ApplyBrightness(); + motorController.StopRinging(); currentScreen.reset(nullptr); SetFullRefresh(direction); @@ -399,7 +407,8 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio currentScreen = std::make_unique(this, timerController); break; case Apps::Alarm: - currentScreen = std::make_unique(this, alarmController, settingsController.GetClockType(), *systemTask); + currentScreen = + std::make_unique(this, alarmController, settingsController.GetClockType(), *systemTask, motorController); break; // Settings -- cgit v1.2.3-70-g09d2