Files
sea/tcl/drivers/ami136.tcl
2022-08-18 15:04:28 +02:00

55 lines
940 B
Tcl

namespace eval ami136 {} {
}
proc stdConfig::ami136 {{unit cm}} {
controller std \r\n 10
if {$unit ne "cm" && $unit ne "percent"} {
error "illegal ami136 unit: $unit"
}
prop startcmd $unit
obj ami_level rd
prop readcmd "level"
prop update ami136::update
prop last -2
kids "LHe vessel" {
node mode -int wr
prop enum slow,fast
prop write ami136::wrmode
prop read ami136::rdmode
}
}
proc ami136::update {} {
set res [sct result]
# workaround for misreadings
if {abs($res - [sct last]) < 0.5} {
sct update $res
}
sct last $res
return idle
}
proc ami136::wrmode {} {
if {[sct target]} {
sct send "interval=0"
} else {
sct send "interval=10"
}
return stdSct::completeUpdate
}
proc ami136::rdmode {} {
sct send interval
return ami136::updmode
}
proc ami136::updmode {} {
if {[sct result] < 0.25} {
sct update 1
} else {
sct update 0
}
return idle
}