|
@@ -288,23 +288,23 @@ static inline void auto_pause_process(void) {
|
|
|
System.tracking_auto_paused = 0;
|
|
|
auto_pause.prev_distance = System.distance;
|
|
|
auto_pause.point_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();
|
|
|
} else {
|
|
|
- if (System.speed >= System.conf.auto_pause_speed) { /* immediately unpause when set speed is exceeded */
|
|
|
- auto_pause.point_counter = 0;
|
|
|
- auto_unpause();
|
|
|
+ if (++auto_pause.point_counter < System.conf.auto_pause_time)
|
|
|
+ return;
|
|
|
+ auto_pause.point_counter = 0;
|
|
|
+ if ((System.distance - auto_pause.prev_distance)/100 > System.conf.auto_pause_dist) {
|
|
|
+ if (System.tracking_auto_paused)
|
|
|
+ auto_unpause(); /* unpause when distance not too low */
|
|
|
} else {
|
|
|
- if (++auto_pause.point_counter >= System.conf.auto_pause_time) {
|
|
|
- auto_pause.point_counter = 0;
|
|
|
- if ((System.distance - auto_pause.prev_distance)/100 > System.conf.auto_pause_dist) {
|
|
|
- if (System.tracking_auto_paused)
|
|
|
- auto_unpause(); /* unpause when distance not too low */
|
|
|
- } else {
|
|
|
- if (!System.tracking_auto_paused)
|
|
|
- auto_pause_activate(); /* pause otherwise */
|
|
|
- }
|
|
|
- auto_pause.prev_distance = System.distance;
|
|
|
- }
|
|
|
+ if (!System.tracking_auto_paused)
|
|
|
+ auto_pause_activate(); /* pause otherwise */
|
|
|
}
|
|
|
+ auto_pause.prev_distance = System.distance;
|
|
|
}
|
|
|
}
|
|
|
|