Skip to content

Commit 5ab255b

Browse files
committed
SystemTask: Move MotorController to DisplayApp
Vibrations should be associated with something happening on the UI. Therefore SystemTask should not be controlling the motor.
1 parent 255b070 commit 5ab255b

9 files changed

Lines changed: 25 additions & 27 deletions

File tree

src/components/alarm/AlarmController.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,5 +104,4 @@ void AlarmController::StopAlerting() {
104104
// set next instance
105105
ScheduleAlarm();
106106
}
107-
systemTask->PushMessage(System::Messages::StopRinging);
108107
}

src/displayapp/DisplayApp.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ void DisplayApp::Process(void* instance) {
127127
void DisplayApp::InitHw() {
128128
brightnessController.Init();
129129
ApplyBrightness();
130+
motorController.Init();
130131
}
131132

132133
void DisplayApp::Refresh() {
@@ -206,6 +207,7 @@ void DisplayApp::Refresh() {
206207
} else {
207208
LoadNewScreen(Apps::Timer, DisplayApp::FullRefreshDirections::Up);
208209
}
210+
motorController.RunForDuration(35);
209211
break;
210212
case Messages::AlarmTriggered:
211213
if (currentApp == Apps::Alarm) {
@@ -217,6 +219,7 @@ void DisplayApp::Refresh() {
217219
break;
218220
case Messages::ShowPairingKey:
219221
LoadNewScreen(Apps::PassKey, DisplayApp::FullRefreshDirections::Up);
222+
motorController.RunForDuration(35);
220223
break;
221224
case Messages::TouchEvent: {
222225
if (state != States::Running) {
@@ -307,8 +310,12 @@ void DisplayApp::Refresh() {
307310
// Added to remove warning
308311
// What should happen here?
309312
break;
310-
case Messages::Clock:
313+
case Messages::Chime:
311314
LoadNewScreen(Apps::Clock, DisplayApp::FullRefreshDirections::None);
315+
motorController.RunForDuration(35);
316+
break;
317+
case Messages::OnChargingEvent:
318+
motorController.RunForDuration(15);
312319
break;
313320
}
314321
}
@@ -342,6 +349,7 @@ void DisplayApp::LoadNewScreen(Apps app, DisplayApp::FullRefreshDirections direc
342349
void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections direction) {
343350
lvgl.CancelTap();
344351
ApplyBrightness();
352+
motorController.StopRinging();
345353

346354
currentScreen.reset(nullptr);
347355
SetFullRefresh(direction);
@@ -399,7 +407,8 @@ void DisplayApp::LoadScreen(Apps app, DisplayApp::FullRefreshDirections directio
399407
currentScreen = std::make_unique<Screens::Timer>(this, timerController);
400408
break;
401409
case Apps::Alarm:
402-
currentScreen = std::make_unique<Screens::Alarm>(this, alarmController, settingsController.GetClockType(), *systemTask);
410+
currentScreen =
411+
std::make_unique<Screens::Alarm>(this, alarmController, settingsController.GetClockType(), *systemTask, motorController);
403412
break;
404413

405414
// Settings

src/displayapp/Messages.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ namespace Pinetime {
2222
RestoreBrightness,
2323
ShowPairingKey,
2424
AlarmTriggered,
25-
Clock,
26-
BleRadioEnableToggle
25+
Chime,
26+
BleRadioEnableToggle,
27+
OnChargingEvent,
2728
};
2829
}
2930
}

src/displayapp/screens/Alarm.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ static void StopAlarmTaskCallback(lv_task_t* task) {
4343
Alarm::Alarm(DisplayApp* app,
4444
Controllers::AlarmController& alarmController,
4545
Controllers::Settings::ClockType clockType,
46-
System::SystemTask& systemTask)
47-
: Screen(app), alarmController {alarmController}, systemTask {systemTask} {
46+
System::SystemTask& systemTask,
47+
Controllers::MotorController& motorController)
48+
: Screen(app), alarmController {alarmController}, systemTask {systemTask}, motorController {motorController} {
4849

4950
hourCounter.Create();
5051
lv_obj_align(hourCounter.GetObject(), nullptr, LV_ALIGN_IN_TOP_LEFT, 0, 0);
@@ -200,11 +201,13 @@ void Alarm::SetAlerting() {
200201
lv_obj_set_hidden(enableSwitch, true);
201202
lv_obj_set_hidden(btnStop, false);
202203
taskStopAlarm = lv_task_create(StopAlarmTaskCallback, pdMS_TO_TICKS(60 * 1000), LV_TASK_PRIO_MID, this);
204+
motorController.StartRinging();
203205
systemTask.PushMessage(System::Messages::DisableSleeping);
204206
}
205207

206208
void Alarm::StopAlerting() {
207209
alarmController.StopAlerting();
210+
motorController.StopRinging();
208211
SetSwitchState(LV_ANIM_OFF);
209212
if (taskStopAlarm != nullptr) {
210213
lv_task_del(taskStopAlarm);

src/displayapp/screens/Alarm.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ namespace Pinetime {
3131
Alarm(DisplayApp* app,
3232
Controllers::AlarmController& alarmController,
3333
Controllers::Settings::ClockType clockType,
34-
System::SystemTask& systemTask);
34+
System::SystemTask& systemTask,
35+
Controllers::MotorController& motorController);
3536
~Alarm() override;
3637
void SetAlerting();
3738
void OnButtonEvent(lv_obj_t* obj, lv_event_t event);
@@ -43,6 +44,7 @@ namespace Pinetime {
4344
private:
4445
Controllers::AlarmController& alarmController;
4546
System::SystemTask& systemTask;
47+
Controllers::MotorController& motorController;
4648

4749
lv_obj_t *btnStop, *txtStop, *btnRecur, *txtRecur, *btnInfo, *enableSwitch;
4850
lv_obj_t* lblampm = nullptr;

src/main.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ Pinetime::System::SystemTask systemTask(spi,
146146
alarmController,
147147
watchdog,
148148
notificationManager,
149-
motorController,
150149
heartRateSensor,
151150
motionController,
152151
motionSensor,

src/systemtask/Messages.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ namespace Pinetime {
2727
OnChargingEvent,
2828
OnPairing,
2929
SetOffAlarm,
30-
StopRinging,
3130
MeasureBatteryTimerExpired,
3231
BatteryPercentageUpdated,
3332
LowBattery,

src/systemtask/SystemTask.cpp

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
6161
Controllers::AlarmController& alarmController,
6262
Drivers::Watchdog& watchdog,
6363
Pinetime::Controllers::NotificationManager& notificationManager,
64-
Pinetime::Controllers::MotorController& motorController,
6564
Pinetime::Drivers::Hrs3300& heartRateSensor,
6665
Pinetime::Controllers::MotionController& motionController,
6766
Pinetime::Drivers::Bma421& motionSensor,
@@ -85,7 +84,6 @@ SystemTask::SystemTask(Drivers::SpiMaster& spi,
8584
alarmController {alarmController},
8685
watchdog {watchdog},
8786
notificationManager {notificationManager},
88-
motorController {motorController},
8987
heartRateSensor {heartRateSensor},
9088
motionSensor {motionSensor},
9189
settingsController {settingsController},
@@ -149,7 +147,6 @@ void SystemTask::Work() {
149147
touchPanel.Init();
150148
dateTimeController.Register(this);
151149
batteryController.Register(this);
152-
motorController.Init();
153150
motionSensor.SoftReset();
154151
timerController.Init(this);
155152
alarmController.Init(this);
@@ -295,19 +292,14 @@ void SystemTask::Work() {
295292
if (state == SystemTaskState::Sleeping) {
296293
GoToRunning();
297294
}
298-
motorController.RunForDuration(35);
299295
displayApp.PushMessage(Pinetime::Applications::Display::Messages::TimerDone);
300296
break;
301297
case Messages::SetOffAlarm:
302298
if (state == SystemTaskState::Sleeping) {
303299
GoToRunning();
304300
}
305-
motorController.StartRinging();
306301
displayApp.PushMessage(Pinetime::Applications::Display::Messages::AlarmTriggered);
307302
break;
308-
case Messages::StopRinging:
309-
motorController.StopRinging();
310-
break;
311303
case Messages::BleConnected:
312304
ReloadIdleTimer();
313305
isBleDiscoveryTimerRunning = true;
@@ -394,9 +386,8 @@ void SystemTask::Work() {
394386
alarmController.State() != AlarmController::AlarmState::Alerting) {
395387
if (state == SystemTaskState::Sleeping) {
396388
GoToRunning();
397-
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Clock);
389+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Chime);
398390
}
399-
motorController.RunForDuration(35);
400391
}
401392
break;
402393
case Messages::OnNewHalfHour:
@@ -406,14 +397,13 @@ void SystemTask::Work() {
406397
alarmController.State() != AlarmController::AlarmState::Alerting) {
407398
if (state == SystemTaskState::Sleeping) {
408399
GoToRunning();
409-
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Clock);
400+
displayApp.PushMessage(Pinetime::Applications::Display::Messages::Chime);
410401
}
411-
motorController.RunForDuration(35);
412402
}
413403
break;
414404
case Messages::OnChargingEvent:
415405
batteryController.ReadPowerState();
416-
motorController.RunForDuration(15);
406+
displayApp.PushMessage(Applications::Display::Messages::OnChargingEvent);
417407
ReloadIdleTimer();
418408
if (state == SystemTaskState::Sleeping) {
419409
GoToRunning();
@@ -439,7 +429,6 @@ void SystemTask::Work() {
439429
if (state == SystemTaskState::Sleeping) {
440430
GoToRunning();
441431
}
442-
motorController.RunForDuration(35);
443432
displayApp.PushMessage(Pinetime::Applications::Display::Messages::ShowPairingKey);
444433
break;
445434
case Messages::BleRadioEnableToggle:

src/systemtask/SystemTask.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "systemtask/SystemMonitor.h"
1616
#include "components/ble/NimbleController.h"
1717
#include "components/ble/NotificationManager.h"
18-
#include "components/motor/MotorController.h"
1918
#include "components/timer/TimerController.h"
2019
#include "components/alarm/AlarmController.h"
2120
#include "components/fs/FS.h"
@@ -70,7 +69,6 @@ namespace Pinetime {
7069
Controllers::AlarmController& alarmController,
7170
Drivers::Watchdog& watchdog,
7271
Pinetime::Controllers::NotificationManager& notificationManager,
73-
Pinetime::Controllers::MotorController& motorController,
7472
Pinetime::Drivers::Hrs3300& heartRateSensor,
7573
Pinetime::Controllers::MotionController& motionController,
7674
Pinetime::Drivers::Bma421& motionSensor,
@@ -116,7 +114,6 @@ namespace Pinetime {
116114
QueueHandle_t systemTasksMsgQueue;
117115
Pinetime::Drivers::Watchdog& watchdog;
118116
Pinetime::Controllers::NotificationManager& notificationManager;
119-
Pinetime::Controllers::MotorController& motorController;
120117
Pinetime::Drivers::Hrs3300& heartRateSensor;
121118
Pinetime::Drivers::Bma421& motionSensor;
122119
Pinetime::Controllers::Settings& settingsController;

0 commit comments

Comments
 (0)