-
Notifications
You must be signed in to change notification settings - Fork 1
Description
The data field looks at the 'current speed' to determine if the device is moving or not. Due to GPS drift, the devices report some movement even when stationary. The challenge is to improve accuracy with the limited data available (to a data field).
The first layer of not-movement detection is awareness of the device timer state (stopped, paused, etc). This is clear cut, but lots of people don't use pause (especially on watches). And a prime motivation of this data field is that it just works. So timer state detection is 'a layer'.
Another method I am trying to use is jitter detection.
Currently I am think of double-incrementing the 'stops' and single decrementing the 'moves'. This means we pause-fast and restart slow. The actual timing on the counter would still be accurate if movement had started. But with more weight given to the 0.0 speed readings, it may be more accurate.
Here are there speed readings from a stationary Edge 840:
0.000
0.000
0.000
0.196
0.261
0.196
0.000
0.000
0.000
0.196
0.000
0.336
0.205
0.000
0.280
0.308
0.420
0.205
0.000
I could do GPS location calculations, to determine if the device moves > 50 metres in X minutes. But that adds a lot of code and extra CPU (battery usage) requirements. So I'd prefer to explore simpler methods for now.