diff options
| author | Finlay Davidson <finlay.davidson@coderclass.nl> | 2023-06-25 15:59:34 +0200 |
|---|---|---|
| committer | JF <JF002@users.noreply.github.com> | 2023-08-17 21:21:22 +0200 |
| commit | cfe21103ea197f98555d5002d389d0c24e7b5544 (patch) | |
| tree | 31c2a1eb02de94ef6e954d2d9dd03b9331341d00 /src/components/motion/MotionController.h | |
| parent | 3085bb39901cd71c4e2fe006ad0c0967a66f7a80 (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.h | 16 |
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; |
