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

29 lines
627 B
Tcl

# humidity chamber pressure reading (4-20 mA with taskit RS232 ADC)
namespace eval presshch {} {
}
proc stdConfig::presshch {} {
controller std "\r" 5
obj PressHumidityChamber rd
prop readcmd ":0400000003.."
prop update presshch::update
kids Pressure {
node calib_min par 848
node calib_max par 1153
}
}
proc presshch::update {} {
if {[scan [sct result] ":0406%4x%4x%4x" a0 a1 a2] == 3} {
get_values [sct] calib_min calib_max
sct update [expr (($a2-$a0) * 25 / 65536. - 4) / 16. * ($calib_max - $calib_min) + $calib_min]
} else {
error "bad result: [sct result]"
}
return idle
}