83 lines
1.3 KiB
Tcl
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
|
|
}
|