From: ian Date: Sun, 8 Jun 2008 00:55:16 +0000 (+0000) Subject: speed on startup more or less works X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=365623c522071d617ecbe39472377153e00d9946;p=trains.git speed on startup more or less works --- diff --git a/hostside/multiplex b/hostside/multiplex index e82c0ea..2b2a038 100755 --- a/hostside/multiplex +++ b/hostside/multiplex @@ -551,11 +551,13 @@ proc realtime-inputline {dummy l} { set pri 70 } elseif {[regexp {^(stastate) (.*)$} $l dummy key value]} { switch -exact -- $value { - Settling { clear-replay-detects } + Settling { + clear-replay-detects + savereplay-clear-re {^60 train \S+ speed } + } Resolving { catch { unset replay("50 resolution") } } } set pri 10 - savereplay-clear-re {^60 train \S+ speed } } elseif {[regexp {^(resolution) (.*)$} $l dummy key addvalue]} { set pri 50 } elseif {[regexp {^(picio out) (on|off)$} $l dummy key value]} { diff --git a/hostside/speed.c b/hostside/speed.c index d957766..305b2d0 100644 --- a/hostside/speed.c +++ b/hostside/speed.c @@ -168,8 +168,6 @@ void speedmanager_safety_stop(Train *tra, struct timeval tnow) { } void speedmanager_reset_train(Train *tra) { - Nmra n; - tra->speed.step= 0; toev_init(&tra->speed.decel); tra->speed.decel.callback= decel_done; @@ -180,6 +178,5 @@ void speedmanager_reset_train(Train *tra) { if (tra->addr < 0) return; - enco_nmra_speed126(&n, tra->addr, 0, tra->backwards); - retransmit_urgent_queue_relaxed(&tra->speed.rn, &n); + actual_speed(tra, 0); }