From f74c06b02c5f607e56f8818c5cd3076967f02291 Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 22 Jan 2008 21:53:25 +0000 Subject: [PATCH] can do reverse; better dsp handling --- hostside/measure-speeds | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/hostside/measure-speeds b/hostside/measure-speeds index 085384f..c4d0e01 100755 --- a/hostside/measure-speeds +++ b/hostside/measure-speeds @@ -1,7 +1,8 @@ #!/usr/bin/tclsh8.3 # Put loco on track segment X5 ish, facing anticlockwise -# ./measure-speeds /dev/ttyUSB1 2 `seq 1 126` |tee santafe.speeds +# ./measure-speeds /dev/ttyUSB1 2 0 `seq 1 126` |tee santafe.speeds +# ^reverse load chiark_tcl_hbytes-1.so @@ -26,7 +27,8 @@ proc startup {} { fileevent $rwy readable readable set buf {} set last_fast_speed 0 - set noise [hbytes random 256] + set noise {} + for {set i 0} {$i < 256} {incr i} { append noise \\x [hbytes random 1] } } proc readable {} { @@ -83,8 +85,8 @@ proc proc-msg {msg} { # proc speed-msg {speed} { - global loco - list speed126 $loco [expr {abs($speed)}] [expr {$speed<0}] + global loco reverse + list speed126 $loco [expr {abs($speed)}] [expr {$speed<0 != $reverse}] } proc run-until {speed new_detend} { @@ -148,15 +150,8 @@ proc now-ms {} { proc now-ms-click {} { global noise set now [now-ms] - if {[catch { - set dsp [open /dev/dsp w] - fconfigure $dsp -encoding binary -translation binary - puts -nonewline $dsp [hbytes h2raw $noise] - close $dsp - } emsg]} { - debug "noise: $emsg" - catch { close $dsp } - } + set f [open |[list sh -c {"$@" >/dev/dsp} x printf $noise]] + fileevent $f readable [list close $f] return $now } @@ -237,10 +232,11 @@ proc speed-test {speed} { set port [lindex $argv 0] set loco [lindex $argv 1] +set reverse [lindex $argv 2] startup -foreach s [lrange $argv 2 end] { +foreach s [lrange $argv 3 end] { speed-test $s } instruct-stop-for 500 -- 2.30.2