#!/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] }')
}
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
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