send-now 10
after 1000
read -nonewline $rwy
- send-now 11
fileevent $rwy readable readable
set buf {}
set last_fast_speed 0
proc proc-msg {msg} {
global until detend settle_detend settle_time settle_after
+ global pointing pointed
switch -glob $msg {
90?? {
if {[lsearch $settle_detend $msg]<0} { debug_r "o $msg"; return }
set settle_after [after $settle_time { set until 1}]
return
}
- 01 - 02 - 03 return
- 28 return
+ 01 - 02 - 03 - 20 return
+ 28 {
+ if {[llength $pointing]} {
+ set point [lindex $pointing 0]
+ set pointing [lrange $pointing 1 end]
+ puts stderr "> $point"
+ send-now $point
+ } else {
+ set pointed 1
+ }
+ return
+ }
98?? {
if {[lsearch $detend $msg]<0} { debug_r "I $msg"; return }
debug_r "* $msg"
use-segment X8 09 C5 2f
}
+proc normalise1 {seg_unused feat_unused pos_unused hex} {
+ global pointing
+ lappend pointing $hex
+}
+
+proc normalise_C {} {
+ normalise1 C5 P 0 a045
+ normalise1 C9 P 0 a021
+ normalise1 C0 P 0 a067
+}
+proc normalise_AX {} {
+ # NYI
+}
+
proc speed-msg {speed} {
global loco reverse
list speed126 $loco [expr {abs($speed)}] [expr {$speed<0 != $reverse}]
define-segments
startup
+normalise_$track
+send-now 11
+vwait pointed
foreach s [lrange $argv 5 end] {
run-test $how $s