aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/motion/MotionController.cpp
diff options
context:
space:
mode:
authorHunman <sanyi.exe@gmail.com>2025-11-08 21:58:23 +0100
committerGitHub <noreply@github.com>2025-11-08 20:58:23 +0000
commit716deff7d0456cdd9eb1d152d3b29f1f39c7a231 (patch)
tree8cb2e940071bf3a0db4219b326038ad85b30be68 /src/components/motion/MotionController.cpp
parent9093d18efc1df0be5366444fd72129dae19b2f20 (diff)
Step counter history
Store 2 days steps history and display yesterday's steps on the Steps screen
Diffstat (limited to 'src/components/motion/MotionController.cpp')
-rw-r--r--src/components/motion/MotionController.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp
index 6cfff61f..ce959f0e 100644
--- a/src/components/motion/MotionController.cpp
+++ b/src/components/motion/MotionController.cpp
@@ -35,8 +35,17 @@ namespace {
}
}
+void MotionController::AdvanceDay() {
+ --nbSteps; // Higher index = further in the past
+ SetSteps(Days::Today, 0);
+ if (service != nullptr) {
+ service->OnNewStepCountValue(NbSteps(Days::Today));
+ }
+}
+
void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) {
- if (this->nbSteps != nbSteps && service != nullptr) {
+ uint32_t oldSteps = NbSteps(Days::Today);
+ if (oldSteps != nbSteps && service != nullptr) {
service->OnNewStepCountValue(nbSteps);
}
@@ -64,11 +73,11 @@ void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps)
stats = GetAccelStats();
- int32_t deltaSteps = nbSteps - this->nbSteps;
+ int32_t deltaSteps = nbSteps - oldSteps;
if (deltaSteps > 0) {
currentTripSteps += deltaSteps;
}
- this->nbSteps = nbSteps;
+ SetSteps(Days::Today, nbSteps);
}
MotionController::AccelStats MotionController::GetAccelStats() const {