From: ian Date: Wed, 4 Jan 2006 22:16:16 +0000 (+0000) Subject: make crashread reset work X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=edf1c0da5ec39dc64f2de64f190d81f8706d6aaf;p=trains.git make crashread reset work --- diff --git a/detpic/crashread b/detpic/crashread index 98841bc..f999bf8 100755 --- a/detpic/crashread +++ b/detpic/crashread @@ -61,12 +61,17 @@ proc selectslave_s {} { selectslave_slave $slave } -proc xmit_s {b} { +proc xmit_slave {slave b} { xmit "$b | 0x80" - selectslave_s + selectslave_slave $slave recv 1 } +proc xmit_s {b} { + global slave + xmit_slave $slave $b +} + proc pause {t} { global pause_var catch { unset pause_var } @@ -148,7 +153,13 @@ proc thingnext {thing} { proc p {s} { puts -nonewline $s } -proc ms_reset {arg} { +proc reset_s {val min max} { + for {set slave $min} {$slave < $max} {incr slave} { + xmit_slave $slave $val + } +} + +proc reset_m {arg} { if {[regexp {^(\d+)\.(\d+)} $arg min max]} { } elseif {[regexp {^(\d+)} $arg max]} { set min 1 @@ -156,11 +167,9 @@ proc ms_reset {arg} { error "--reset arg $arg wrong" } setup_m - xmit 0x89 - for {set slave $min} {$slave < $max} {incr slave} { - selectslave_slave $slave - recv 1 - } + reset_s 0x00 $min $max + reset_s 0x00 $min $max + reset_s 0x09 $min $max xmit 0x09 } @@ -194,7 +203,8 @@ fconfigure $p -blocking yes -buffering none \ fconfigure stdout -buffering none if {![string compare reset $map]} { - ms_reset $picno + reset_m $slave + exit 0 } set m [open $map]