From: ian Date: Sun, 4 May 2008 21:12:06 +0000 (+0000) Subject: do not panic on interference detection X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=6e6c3cf29bc2a165c327b44392b1672a6a08f374;p=trains.git do not panic on interference detection --- diff --git a/hostside/safety.c b/hostside/safety.c index 69774f9..f1bb81e 100644 --- a/hostside/safety.c +++ b/hostside/safety.c @@ -814,10 +814,20 @@ static void detection_report_problem(Train *tra, Segment *seg, void safety_notify_detection(Segment *seg) { Train *tra; ErrorCode ec; + Segment *interferer; if (seg->det_ignore) return; - if (!seg->det_expected) - safety_panic(0,seg, "unexpected detection"); + if (!seg->det_expected) { + interferer= segment_interferes(0,seg); + if (!interferer) safety_panic(0,seg, "unexpected detection"); + if (interferer->det_ignore) return; + if (!interferer->det_expected) + safety_panic(0,seg, "unexpected detection, perhaps really at %s", + interferer->i->pname); + oprintf(DUPO("safety") "detection %s using interferer %s", + seg->i->pname, interferer->i->pname); + seg= interferer; + } tra= seg->owner; if (seg->movposcomb < 0)