diff --git a/tcl/drivers/hepump.tcl b/tcl/drivers/hepump.tcl index 57c5338..18d2cde 100644 --- a/tcl/drivers/hepump.tcl +++ b/tcl/drivers/hepump.tcl @@ -10,7 +10,7 @@ proc stdConfig::hepump {{motname hemot}} { obj HePump -int wr default 0 - prop enum xds35_auto,xds35_manual,sv65,other,no=-1 + prop enum xds35_auto,xds35_manual,sv65,other,neodry=8,no=-1 prop help "xds35: scroll pump, sv65: leybold" prop read hepump::read prop write hepump::set_type @@ -67,17 +67,26 @@ proc hepump::visible {pumpcode} { } else { set rv true } + set runv true + } elseif {$pumpcode == 8} { + set rv true + set runv true + set v true } else { set v false set rv false + set runv false } - + foreach node "valve [sct @motname]" { if {[silent true hgetpropval [sct]/$node visible] ne $v} { hsetprop [sct]/$node visible $v } } - foreach node "running eco auto eco_t_lim" { + if {[silent true hgetpropval [sct]/running visible] ne $runv} { + hsetprop [sct]/running visible $runv + } + foreach node "eco auto eco_t_lim" { if {[silent true hgetpropval [sct]/$node visible] ne $rv} { hsetprop [sct]/$node visible $rv } @@ -125,6 +134,19 @@ proc hepump::set_calib {} { } else { set f 0.6 ;# 0.95 at 30 mbar } + } elseif {$pumpcode == 8} { # neodry + set status [string trim [_[sct @motname] status]] + if {$status eq "disconnected" || $status eq "offline"} { + # clientput [_[sct @motname] hostport] + _[sct @motname] reconnect + } + if {$status eq "no response"} { + set pumpcode 1 ;# treat as manual + hsetprop [sct]/[sct @motname] group "hepump valve motor (not connected)" + } else { + hsetprop [sct]/[sct @motname] group "hepump valve motor" + } + set f 0.6 } elseif {$pumpcode == 3} { # other hsetprop [sct]/[sct @motname] group "hepump valve motor" set f [hval [sct]/calib] @@ -352,7 +374,10 @@ proc hepump::set_eco {} { } proc hepump::get_eco {} { - if {[sctval [sct parent]] != 0} {return idle} + if {[sctval [sct parent]] != 0} { + sct update 0 + return idle + } set eco [sctval [sct parent]/[sct @motname]/output1] sct update $eco [sct controller] queue [sct parent] write hepump::set_calib diff --git a/tcl/startup/hepump.tcl b/tcl/startup/hepump.tcl index 7004a9d..fc22477 100644 --- a/tcl/startup/hepump.tcl +++ b/tcl/startup/hepump.tcl @@ -8,6 +8,8 @@ proc makeHePump {} { set type 1 } elseif {$type eq "sv65"} { set type 2 + } elseif {$type eq "neodry"} { + set type 8 } else { error "unknown hepump type: $type" } @@ -37,8 +39,8 @@ proc pump_is_off {} { } } hupdate [sct]/status $pmsg - return 1 - } + return 1 + } if {[string match ${msghead}* [hvali [sct]/status]]} { hupdate [sct]/status "" }