#!/usr/bin/tclsh8.2
+# used like this:
+# liberator:hostside> ssh bessar 'cd things/trains-bessar/hostside && ./stopgap-controller' | ./gui-displayer -
set testonly 0
#set testonly 1
set port /dev/ttya0
set ch(funcsevery) 10
-set ch(speeddirnevery) 12
+set ch(speeddirnevery) 30
set ch(scale) 1
set ch(minint) 5000
set polmsg(y) 90807c
set pname l
set m {}
+set nmradiv 0
set segs {xx yy}
set segsasgot {xx yy}
set pq {} ;# unset: cdu charged and waiting
-set speeddirn ff7f
+#set speeddirn ff7f
+set speeddirn ffff80c3fbcced7f
#set speeddirn_fixed {speed126 2 80 0}
set funcs ff7f
# unset pointpos($point)
}
proc tellnmra {m} {
- global nmrawhich speeddirn funcs
- set m 0x$m
- for {set i 0} {$i < $m} {incr i} {
- tellpic_q [lindex [list $speeddirn $funcs] $nmrawhich]
- set nmrawhich [expr {!$nmrawhich}]
- }
+# global nmrawhich speeddirn funcs
+# set m 0x$m
+# for {set i 0} {$i < $m} {incr i} {
+# tellpic_q [lindex [list $speeddirn $funcs] $nmrawhich]
+# set nmrawhich [expr {!$nmrawhich}]
+# }
}
proc watchdog {} {
- global watchdog testonly
+ global watchdog testonly speeddirn funcs nmradiv
catch { after cancel $watchdog }
set watchdog [after 50 watchdog]
tellpic_q 9808 ;# 128ms
+ if {[incr nmradiv] > 35} {
+ tellpic_q $speeddirn$funcs
+ set nmradiv 0
+ }
}
proc pm_hello {} {
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"
}