#define MARGIN_STOPTIME 50 /*ms*/
#define MARGIN_AUTOPOINTTIME 500 /*ms*/
#define MARGIN_POLARISETIME 50 /*ms*/
+#define UNMARGIN_ROUNDING 1e-4 /* mm/ms; for 1s, leads to max err of 100um */
#endif /*SAFETY_H*/
static const SpeedRange *stop_info(Train *tra, double speed) {
int i;
for (i=0; i<tra->n_speedregimes; i++)
- if (speed <= tra->speedregimes[i].speed)
+ if (speed <= tra->speedregimes[i].speed + UNMARGIN_ROUNDING)
return &tra->speedregimes[i];
abort();
}