29 lines
627 B
Tcl
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
|
|
}
|
|
|