28 lines
739 B
Tcl
Executable File
28 lines
739 B
Tcl
Executable File
#!/usr/bin/tclsh
|
|
# script to ensure e:[xyz]counts are zero if machine off
|
|
|
|
package require Hal
|
|
set ::prog [file tail [info script]]
|
|
set ::periodic_delay_ms 200
|
|
|
|
proc monitor_ecounts {} {
|
|
catch {after cancel $::a_id}
|
|
if { ![hal getp halui.machine.is-on]
|
|
&& ( 0 != [hal gets e:xcounts]
|
|
|| 0 != [hal gets e:ycounts]
|
|
|| 0 != [hal gets e:zcounts]) } {
|
|
# handle deferred connection to signal
|
|
if [catch { hal sets e:xcounts 0
|
|
hal sets e:ycounts 0
|
|
hal sets e:zcounts 0
|
|
} msg] {
|
|
puts stderr msg=$msg
|
|
puts stderr "$::prog exiting"
|
|
exit 1
|
|
}
|
|
}
|
|
set ::a_id [after $::periodic_delay_ms monitor_ecounts]
|
|
}
|
|
monitor_ecounts
|
|
vwait ::forever
|