From 68bdaee1cc301a2aca1849f38d2596debe7d67d1 Mon Sep 17 00:00:00 2001 From: Jean-François Milants Date: Wed, 31 Mar 2021 19:47:27 +0200 Subject: First integration of the motion sensor (bma 421) : step counting + wake on wrist rotation + app to see the value of the 3 axis in "real time". --- src/components/motion/MotionController.cpp | 33 ++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/components/motion/MotionController.cpp (limited to 'src/components/motion/MotionController.cpp') diff --git a/src/components/motion/MotionController.cpp b/src/components/motion/MotionController.cpp new file mode 100644 index 00000000..bad9d45f --- /dev/null +++ b/src/components/motion/MotionController.cpp @@ -0,0 +1,33 @@ +#include "MotionController.h" + +using namespace Pinetime::Controllers; + +void MotionController::Update(int16_t x, int16_t y, int16_t z, uint32_t nbSteps) { + this->x = x; + this->y = y; + this->z = z; + this->nbSteps = nbSteps; +} + +bool MotionController::ShouldWakeUp(bool isSleeping) { + if ((x + 335) <= 670 && z < 0) { + if (not isSleeping) { + if (y <= 0) { + return false; + } else { + lastYForWakeUp = 0; + return false; + } + } + + if (y >= 0) { + lastYForWakeUp = 0; + return false; + } + if (y + 230 < lastYForWakeUp) { + lastYForWakeUp = y; + return true; + } + } + return false; +} -- cgit v1.2.3-70-g09d2