aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/motion/MotionController.h
diff options
context:
space:
mode:
authorFinlay Davidson <finlay.davidson@coderclass.nl>2023-06-25 15:59:34 +0200
committerJF <JF002@users.noreply.github.com>2023-08-17 21:21:22 +0200
commitcfe21103ea197f98555d5002d389d0c24e7b5544 (patch)
tree31c2a1eb02de94ef6e954d2d9dd03b9331341d00 /src/components/motion/MotionController.h
parent3085bb39901cd71c4e2fe006ad0c0967a66f7a80 (diff)
motioncontroller: Add functions for analysis
These are functions for converting acceleration due to gravity to angles in degrees, and some statistical analysis including the mean and variance.
Diffstat (limited to 'src/components/motion/MotionController.h')
-rw-r--r--src/components/motion/MotionController.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/components/motion/MotionController.h b/src/components/motion/MotionController.h
index c967530b..de86d44c 100644
--- a/src/components/motion/MotionController.h
+++ b/src/components/motion/MotionController.h
@@ -68,6 +68,22 @@ namespace Pinetime {
TickType_t lastTime = 0;
TickType_t time = 0;
+ struct AccelStats {
+ static constexpr uint8_t numHistory = 2;
+
+ int16_t yMean = 0;
+ int16_t zMean = 0;
+ int16_t prevYMean = 0;
+ int16_t prevZMean = 0;
+
+ uint32_t yVariance = 0;
+ uint32_t zVariance = 0;
+ };
+
+ AccelStats GetAccelStats() const;
+
+ AccelStats stats = {};
+
int16_t lastX = 0;
int16_t x = 0;
int16_t lastYForRaiseWake = 0;