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

83 lines
1.3 KiB
Tcl

namespace eval ccu4n2 {
}
proc stdConfig::ccu4n2 {} {
variable node
controller syncedprot
pollperiod 5 5
obj ccu4flow wr
prop check ccu4n2::writeCmd
prop write stdSct::complete
prop read ccu4n2::readCmd
prop enum watching,fill,inactive
prop init 1
kids "LN2 fill" {
node state upd -text
}
}
proc ccu4n2::writeCmd {} {
switch -- [sct target] {
0 { # watching
cc nc 3
cc na 1
}
1 { # fill
cc nc 1
}
2 { # inactive
cc nc 2
}
}
sct update [sct target]
}
proc ccu4n2::readCmd {} {
set nv [hvali /cc/nv]
set na [sctval /cc/na]
set enumtxt "watching,fill,inactive"
set errtxt ""
switch -- $nv {
0 {
set txt "fill valve off"
if {$na} {
sct update 0
} else {
sct update 2
}
}
1 {
set txt "filling"
sct update 1
}
2 {
set txt "no fill valve"
sct update 2
set enumtxt "$txt=2"
}
3 {
sct update 2
set errtxt timeout
}
4 {
sct update 2
set errtxt timeout1
}
default {
set errtxt "unknown error"
}
}
sct enum ${enumtxt}
if {$errtxt eq ""} {
updateval [sct]/state $txt
hupdate [sct]/status ""
} else {
hupdate [sct]/status $errtxt
updateval [sct]/state $errtxt
}
return idle
}