chiark / gitweb /
control train 1
authorian <ian>
Sat, 14 Jan 2006 19:57:26 +0000 (19:57 +0000)
committerian <ian>
Sat, 14 Jan 2006 19:57:26 +0000 (19:57 +0000)
hostside/stopgap-controller

index b2c2276866aabc013b37147e62ebd4045c5e0341..1375f1ff9b9c276a6be97a391443ba8ff80236a9 100755 (executable)
@@ -7,6 +7,8 @@ set testonly 0
 set port /dev/ttya0
 #set port /dev/ttyS0
 
+set loco 1
+
 set ch(funcsevery) 10
 set ch(speeddirnevery) 30
 set ch(scale) 1
@@ -376,20 +378,22 @@ proc onreadp {} {
 }
 
 proc newspeeddirn {} {
+    global loco
     set b1 0x[randbyte]
     set speed [expr {round(($b1 * $b1) / 65535.0 * 100.0 + 26.0)}]
     set b2 0x[randbyte]
     set dirn [expr {$b2 / 128}]
     set dirn 0
     debug "speeddirn b1=$b1 speed=$speed b2=$b2 dirn=$dirn"
-    return "speed126 2 $speed $dirn"
+    return "speed126 $loco $speed $dirn"
 }
 
 proc newfuncs {} {
+    global loco
     set b3 0x[randbyte]
     set value [expr {($b3 & 127) * 16}]
     debug "funcs b3=$b3 value=[format %x $value]"
-    return "funcs5to8 2 $value"
+    return "funcs5to8 $loco $value"
 }
 
 proc maybechange {thing force} {
@@ -484,7 +488,7 @@ proc setup_complete {} {
 # for keyboard control
 
 proc ask_speed {updown} {
-    global speeddirn_fixed askspeeds askspeedix
+    global speeddirn_fixed askspeeds askspeedix loco
     set ll [llength $askspeeds]
     if {![info exists askspeedix]} {
        set askspeedix [expr {
@@ -496,7 +500,7 @@ proc ask_speed {updown} {
        if {$askspeedix >= $ll} { set askspeedix [expr {$ll - 1}] }
     }
     set speed [lindex $askspeeds $askspeedix]
-    set speeddirn_fixed [list speed126 2 $speed 0]
+    set speeddirn_fixed [list speed126 $loco $speed 0]
     maybechange speeddirn 1
 }