|
|
@@ -274,12 +274,18 @@ static inline void auto_pause_process(void) {
|
|
|
System.tracking_auto_paused = 0;
|
|
|
auto_pause.prev_distance = System.distance;
|
|
|
auto_pause.point_counter = 0;
|
|
|
+ auto_pause.speed_counter = 0;
|
|
|
return;
|
|
|
}
|
|
|
- if (System.speed >= System.conf.auto_pause_speed) { /* immediately unpause when set speed is exceeded */
|
|
|
- auto_pause.point_counter = 0;
|
|
|
- auto_unpause();
|
|
|
- return;
|
|
|
+ if (System.speed >= System.conf.auto_pause_speed) { /* unpause when set speed is exceeded for 3 consecutive measurements */
|
|
|
+ if (++auto_pause.speed_counter >= 3) {
|
|
|
+ auto_pause.point_counter = 0;
|
|
|
+ auto_pause.speed_counter = 0;
|
|
|
+ auto_unpause();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ auto_pause.speed_counter = 0;
|
|
|
}
|
|
|
if (++auto_pause.point_counter < System.conf.auto_pause_time)
|
|
|
return;
|