Commit Graph

37 Commits

Author SHA1 Message Date
apilat
a6cd3679eb Only inhibit sleep if motion notifications are enabled, not just Bluetooth 2024-01-23 14:58:21 +01:00
FintasticMan
0f9f606b78
lowersleep: Implement Lower to Sleep functionality (#827) 2023-08-27 18:15:21 +02:00
Finlay Davidson
2b1eae7f59 raisewake: Improve raise to wake algorithm
This new algorithm calculates the number of degrees that the wrist has
rolled, and checks if that is above a threshold.

First it checks if the wrist is still enough for the acceleration values
to be considered mostly from gravity. It does this by calculating the
mean over the past 2 SystemTask loops, and checking that the variance
from that mean is below a threshold.
Then it calculates the angle the wrist is being held at, and calculates
the difference from the angle some time ago. If this difference is above
the threshold, it wakes the watch.
2023-08-17 21:21:22 +02:00
Finlay Davidson
cfe21103ea 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.
2023-08-17 21:21:22 +02:00
Finlay Davidson
3085bb3990 motioncontroller: Store acceleration history
Store history of acceleration values for the y and z axes.
2023-08-17 21:21:22 +02:00
Finlay Davidson
47ca403857 shakewake: Slightly improve accuracy
The accumulated speed was calculated by dividing first and multiplying
after, which results in more rounding errors than if you multiply first
and then divide. The values aren't big enough to overflow.
2023-08-17 21:21:22 +02:00
Isaac
9e128c838e
ShakeWake: Fixed instant wake after sleep issue in certain positions (#1691)
* ShakeWake: Fixed instant wake after sleep issue in certain positions

Add lastX var to track the previous x acceleration for correct calculation of speed.

Reorder axes for clarity.

---------

Co-authored-by: Isaac <114504394+isaacc27@users.noreply.github.com>
Co-authored-by: FintasticMan <52415484+FintasticMan@users.noreply.github.com>
2023-06-17 17:37:53 +02:00
Riku Isokoski
4d93ae6d27 MotionController: Remove IsOk variable
We should be able to assume MotionController is safe to use.
2023-04-16 14:15:49 +00:00
Finlay Davidson
e55a76f740 raisewake: Change names in line with the style guide 2023-03-09 10:17:03 +02:00
Finlay Davidson
49ad5be742 motioncontroller: Fix clang-tidy warnings
Also move one-line functions to header.
2023-03-09 10:17:03 +02:00
Finlay Davidson
76e79df375 shakewake: Switch to more generic timekeeping
Could be used for other motion-based algorithms in the future.
2023-03-09 10:17:03 +02:00
Finlay Davidson
a43463762c shakewake: Simplify return code 2023-03-09 10:17:03 +02:00
Finlay Davidson
6cf6455313 shakewake: Switch to more generic last* vars
These could be used for other motion-based algorithms in the future.
Also fix includes.
2023-03-09 10:17:03 +02:00
Finlay Davidson
f993311830 shakewake: Fix names according to style guide 2023-03-09 10:17:03 +02:00
Finlay Davidson
96165a8541 Format header files
In my PR updating clang-format, I forgot to also format the headers.
2023-01-09 21:41:21 +01:00
Finlay Davidson
eda96ffadc Update clang-{format,tidy} to 14
Also add configuration options only available in 13 and 14.
Fixes warning about -fstack-usage in clang-tidy check.
2023-01-04 17:15:33 +01:00
Riku Isokoski
afea7ca0d1
Update clang-tidy configuration and fix some warnings (#1474)
Don't enable coding conventions from unrelated projects. Only enable
generic checks.
2022-12-18 18:14:36 +01:00
Tim Keller
5c13200238 Fix crash upon leaving app.
Code formatting
2022-01-04 02:00:03 +00:00
Tim Keller
d2510d7926 Better Sensitivity UI, Calibration button added 2022-01-04 02:00:02 +00:00
Tim Keller
6d74820698 Add averaging to wake threshold. Makes it take more then just a "flick" to turn on 2022-01-04 01:59:01 +00:00
Tim Keller
3ebf002f9d Add start of settings app for senstivity.
really just debugging. I want to make it more configurable then high med low.
Position of setting needs a new location...dynamicly adding it currently at the end. Which honestly im fine with.
2022-01-04 01:59:01 +00:00
Tim Keller
ad42cdf120 Cleanup 2022-01-04 01:57:18 +00:00
Tim Keller
d270275bd2 Added Shake to wake 2022-01-04 01:57:18 +00:00
Stephanie
e0013e7304 Ran clang-format 2021-12-30 21:51:43 +01:00
Stephanie
a65f173e3c Renamed confusing variables and general cleanup 2021-12-30 21:51:43 +01:00
Stephanie
f7d1b3f368 Moved trip meter update to MotionController and changed trip meter logic 2021-12-30 21:51:43 +01:00
Stephanie
fb87fdb2d9 Changed lap counter to trip meter 2021-12-30 21:51:43 +01:00
Stephanie
d034bd131e Added "lap" button to step counter 2021-12-30 21:51:43 +01:00
Reinhold Gschweicher
ac7b2da611 Update includes to to be relative to src directory
Don't use relative imports like `../foo.h` as those depend on the
relative position of both files. Rather than that use imports relative
to the `src` directory, which explicitly is part of the include
directories.
2021-11-15 22:02:49 +01:00
Jean-François Milants
60a49af886 Add MotionService : expose step count and RAW X/Y/Z values to the host. 2021-10-17 08:23:44 +02:00
JF002
c6dca25b9f
Add support for BMA425 acceleration sensor. (#440)
* Add support for BMA425 acceleration sensor.
2021-06-19 20:27:59 +02:00
Joaquim
cd0d85dff9 Merge branch 'develop' of
https://github.com/JF002/InfiniTime into StepsApp
2021-04-26 21:29:48 +01:00
Avamander
6989854519 Changed access modified indentation 2021-04-24 12:00:45 +03:00
Avamander
40d45d923b Reformatted all the files according to clang-format style 2021-04-24 11:39:53 +03:00
Joaquim
cd4a3e1dfe New Steps app
Settings to set the steps goal
More detail in Motion app
New 42px Font
2021-04-19 15:28:38 +01:00
Jean-François Milants
52a90288fd Handle return code from BMA driver, and set a flag is the initialization fails. This allows to boot InfiniTime even if the device cannot initialize. 2021-04-04 15:56:11 +02:00
Jean-François Milants
68bdaee1cc 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". 2021-04-04 15:56:04 +02:00