namespace eval luft {} { } proc stdConfig::luft {label} { controller syncedprot pollperiod 10 10 obj LUFT upd kids "luft monitor $label" { node confirm wr -text -spy prop write luft::writeCf prop read luft::readCf prop timeout [expr [clock seconds] + 600] } } proc luft::set_error {errtxt} { updateval [sct parent]/status $errtxt if {$errtxt eq ""} { catch {hdelprop [sct parent] geterror} catch {hdelprop [sct] geterror} } else { updateerror [sct parent]/status $errtxt 1 } } proc luft::readCf {} { if {[clock seconds] > [sct timeout]} { luft::set_error "luft monitor off" } return idle } proc luft::writeCf {} { sct cnt 0 set errtxt [lassign [sct target] timeout val] if {[silent 0 sct verbose]} { clientput [sct target] } if {$errtxt eq ""} { updateval [sct parent] $val # sct print [sct]=$val luft::set_error "" } else { luft::set_error "epics error: $val $errtxt" } catch { sct timeout [expr [clock seconds] + $timeout + 10] } return idle }