chiark / gitweb /
hostside/measure-speeds: make fastest "slow" speed a command line option, rather...
authorIan Jackson <ian@davenant.greenend.org.uk>
Mon, 3 Jan 2011 18:28:28 +0000 (18:28 +0000)
committerIan Jackson <ian@davenant.greenend.org.uk>
Mon, 3 Jan 2011 18:28:28 +0000 (18:28 +0000)
hostside/measure-speeds

index 83126022b712cbb61da2a975ee9abfd0b7e8e6aa..3b8f20e4c53b1e69dac537c7e5851927344d598d 100755 (executable)
@@ -1,14 +1,15 @@
 #!/usr/bin/tclsh8.3
 
 # Put loco on track segment X5 ish, facing anticlockwise
-#  ./measure-speeds /dev/railway AX speed 2 0 `seq 1 126` |tee santafe.speeds
-#                                     loco^ ^reverse
+#  ./measure-speeds /dev/railway AX speed 2 50 0 `seq 1 126` |tee santafe.speeds
+#                                     loco^ ^. ^reverse
+#                                            `-fastest "slow" speed
 
 # For stop distance at speed (say) 126,
 # Put loco on track segment X5 ish, facing ANTICLOCKWISE
-#  ./measure-speeds /dev/railway AX stop 2 0 40
+#  ./measure-speeds /dev/railway AX stop 2 50 0 40
 # OR put on track segment or C7 ish, facing CLOCKWISE
-#  ./measure-speeds /dev/railway C stop 2 0 40
+#  ./measure-speeds /dev/railway C stop 2 50 0 40
 
 # debugging:
 # ./measure-speeds [stuff] 2>&1 | perl -pe '$|=1; s/\r/\n/g' | 3<&0 tclsh8.3 <(echo 'set f [open /dev/fd/3]; proc cm {} { clock clicks -milliseconds }; set z [cm]; while {[gets $f l]>=0} { puts [format "%-10s %s" [expr {[cm]-$z}] $l] }') 
@@ -330,18 +331,18 @@ proc fast-stop-test {speed} {
 }
 
 proc run-test {how speed} {
-    global track
+    global track fastestslow
     if {[string compare $track AX] && [string compare $how stop]} {
        error "$track $how ?"
     }
-    if {$speed<50} {
+    if {$speed<=$fastestslow} {
        slow-$how-test $speed
     } else {
        fast-$how-test $speed
     }
 }
 
-manyset $argv port track how loco reverse
+manyset $argv port track how loco fastestslow reverse
 
 define-segments
 startup
@@ -349,7 +350,7 @@ normalise_$track
 send-now 11
 vwait pointed
 
-foreach s [lrange $argv 5 end] {
+foreach s [lrange $argv 6 end] {
     run-test $how $s
 }
 instruct-stop-for 1000