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

76 lines
1.6 KiB
Tcl

# itc mercury temperarture
namespace eval itctemp {} {
}
proc stdConfig::itctemp {slot {htrslot ""}} {
controller std
variable name
prop startcmd *IDN?
obj ips_mercury rd
prop read stdSct::read
prop readcmd READ:DEV:${slot}:TEMP:SIG:TEMP
prop update itctemp::update
kids $name {
node raw rd
prop readcmd READ:DEV:${slot}:TEMP:SIG:RES
prop read stdSct::read
prop update itctemp::update
if {$htrslot ne ""} {
node set wr
prop readcmd READ:DEV:${slot}:TEMP:LOOP:TSET
prop read stdSct::read
prop update itctemp::update
prop write itctemp::write
node control wr -int
prop enum OFF=0,ON=1
prop readcmd READ:DEV:${slot}:TEMP:LOOP:ENAB
prop read stdSct::read
prop update itctemp::update
prop write itctemp::enumwrite
prop label control
node htr rd
prop readcmd READ:DEV:${htrslot}:HTR:SIG:VOLT
prop read stdSct::read
prop update itctemp::update
node pow rd
prop readcmd READ:DEV:${htrslot}:HTR:SIG:POWR
prop read stdSct::read
prop update itctemp::update
}
}
}
proc itctemp::update {} {
set val [lindex [split [sct result] :] end]
if {$val eq "N/A" || $val eq "INVALID"} {
# clientput [sct]:[sct send]
} else {
if {[silent "" sct enum] ne ""} {
enum_decode [sct] $val val nam
}
sct update $val
}
return idle
}
proc itctemp::write {} {
set cmd [string map {READ: SET:} [sct readcmd]]:%g
sct send [format $cmd [sct target]]
return read
}
proc itctemp::enumwrite {} {
set cmd [string map {READ: SET:} [sct readcmd]]:%s
sct send [format $cmd [enum_txt_req [sct]]]
return read
}