Skip to content

Commit d98f8e9

Browse files
committed
Add support for sleepSteps in MotionController
1 parent 7c9b630 commit d98f8e9

5 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/components/motion/MotionController.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ namespace {
3535
}
3636
}
3737

38+
MotionController::MotionController(Controllers::Settings& settingsController) : settingsController {settingsController} {
39+
}
40+
3841
void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) {
3942
if (this->nbSteps != nbSteps && service != nullptr) {
4043
service->OnNewStepCountValue(nbSteps);

src/components/motion/MotionController.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@
66

77
#include "drivers/Bma421.h"
88
#include "components/ble/MotionService.h"
9+
#include "components/settings/Settings.h"
910
#include "utility/CircularBuffer.h"
1011

1112
namespace Pinetime {
1213
namespace Controllers {
1314
class MotionController {
1415
public:
16+
MotionController(Controllers::Settings& settingsController);
17+
1518
enum class DeviceTypes {
1619
Unknown,
1720
BMA421,
@@ -33,7 +36,10 @@ namespace Pinetime {
3336
}
3437

3538
uint32_t NbSteps() const {
36-
return nbSteps;
39+
if (nbSteps > settingsController.sleepSteps) {
40+
return nbSteps - settingsController.sleepSteps;
41+
}
42+
return 0;
3743
}
3844

3945
void ResetTrip() {
@@ -100,6 +106,7 @@ namespace Pinetime {
100106

101107
DeviceTypes deviceType = DeviceTypes::Unknown;
102108
Pinetime::Controllers::MotionService* service = nullptr;
109+
Controllers::Settings& settingsController;
103110
};
104111
}
105112
}

src/components/settings/Settings.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ namespace Pinetime {
270270
}
271271

272272
bool sleepDisabledBle = false;
273+
uint32_t sleepSteps = 0;
273274

274275
void setSleepOption(SleepOption option, bool enabled) {
275276
if (enabled != isSleepOptionOn(option)) {

src/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Pinetime::Controllers::MotorController motorController {};
103103
Pinetime::Controllers::DateTime dateTimeController {settingsController};
104104
Pinetime::Drivers::Watchdog watchdog;
105105
Pinetime::Controllers::NotificationManager notificationManager;
106-
Pinetime::Controllers::MotionController motionController;
106+
Pinetime::Controllers::MotionController motionController {settingsController};
107107
Pinetime::Controllers::AlarmController alarmController {dateTimeController, fs};
108108
Pinetime::Controllers::TouchHandler touchHandler;
109109
Pinetime::Controllers::ButtonHandler buttonHandler;

src/systemtask/SystemTask.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,7 @@ void SystemTask::Work() {
321321
// We might be sleeping (with TWI device disabled.
322322
// Remember we'll have to reset the counter next time we're awake
323323
stepCounterMustBeReset = true;
324+
settingsController.sleepSteps = 0;
324325
break;
325326
case Messages::OnNewHour:
326327
case Messages::OnNewHalfHour:

0 commit comments

Comments
 (0)