From 6e6c3cf29bc2a165c327b44392b1672a6a08f374 Mon Sep 17 00:00:00 2001 From: ian Date: Sun, 4 May 2008 21:12:06 +0000 Subject: [PATCH] do not panic on interference detection --- hostside/safety.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) 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) -- 2.30.2