chiark / gitweb /
speed on startup more or less works
authorian <ian>
Sun, 8 Jun 2008 00:55:16 +0000 (00:55 +0000)
committerian <ian>
Sun, 8 Jun 2008 00:55:16 +0000 (00:55 +0000)
hostside/multiplex
hostside/speed.c

index e82c0ea4bb35d82d20b368d4fc408dd9e83482fc..2b2a038bcb98594ac95859724bb2de3efb70285d 100755 (executable)
@@ -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]} {
index d9577665a581ef4cb69015f616b2f62c122ebf71..305b2d02c77654daf3a3e5bb0b22bc8d4b9056d7 100644 (file)
@@ -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);
 }