From 5ba5af5db80dcd2bcb2ea6be2fd19af3b824086f Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Fri, 3 Oct 2014 14:59:56 +1000 Subject: [PATCH] Reworking the Knauer --- .../config/environment/knauer_pump.sct | 196 +- .../config/environment/sct_knauer_pump.tcl | 1972 ++++++++--------- 2 files changed, 1036 insertions(+), 1132 deletions(-) diff --git a/site_ansto/instrument/config/environment/knauer_pump.sct b/site_ansto/instrument/config/environment/knauer_pump.sct index 8c05b606..fbe377bd 100644 --- a/site_ansto/instrument/config/environment/knauer_pump.sct +++ b/site_ansto/instrument/config/environment/knauer_pump.sct @@ -10,7 +10,7 @@ driver knauer_pump = { # group dummy = { type = text; readable = 1; data = false; control = false; nxsave = false; - var status = { read_command = 'STATUS?'; read_function = read_status; } + var status = { read_command = 'STATUS?'; read_function = read_status; property real_data = ' '; } var glp = { read_command = 'GLP?'; read_function = read_glp; property real_data = ' '; } } @@ -33,69 +33,61 @@ driver knauer_pump = { read_command = ' '; fetch_function = status_fetch; } - var volume_pv = { - type = float; - readable = 1; - read_command = ' '; - fetch_function = volume_fetch; + group volume = { + var pval = { + type = float; + readable = 1; + read_command = ' '; + fetch_function = volume_fetch; #checkrange_function = volume_reject; - property 'units' = 'mL'; + property 'units' = 'mL'; + } + var setp = { + type = float; + writeable = 1; + write_command = ' '; + write_function = pump_write; + driveable = pump/volume/pval; + checkstatus_function = pump_checkstatus; + halt_function = pump_halt; + lowerlimit = 0; upperlimit = 100; tolerance = 0.01; + readable = 1; + read_command = ' '; + fetch_function = pump_fetch; + property 'units' = 'mL'; + property this_state = 0; + } } - var pump_sp = { - type = float; - writeable = 1; - write_command = ' '; - write_function = pump_write; - driveable = pump/volume_pv; - checkstatus_function = pump_checkstatus; - halt_function = pump_halt; - lowerlimit = 0; upperlimit = 100; tolerance = 0.01; - readable = 1; - read_command = ' '; - fetch_function = pump_fetch; - property 'units' = 'mL'; - property this_state = 0; + group ratio = { + var pval = { + type = text; + readable = 1; read_command = ' '; fetch_function = ratio_fetch; + property 'units' = 'percent'; + } + var setp = { + type = text; + value = '25/25/25/25'; + writeable = 1; write_command = ' '; write_function = ratio_write; checkrange_function = ratio_check; + property 'units' = 'percent'; + } } - var volume_sp = { - type = float; - writeable = 1; - write_command = ' '; - write_function = volume_write; - driveable = pump/volume_pv; - checkstatus_function = volume_checkstatus; - halt_function = volume_halt; - lowerlimit = 0; upperlimit = 100; tolerance = 0.01; - readable = 1; - read_command = ' '; - fetch_function = volume_checkpumping; - property 'units' = 'mL'; - } - var ratio_pv = { - type = text; - readable = 1; read_command = ' '; fetch_function = ratios_fetch; - property 'units' = 'percent'; - } - var ratio_sp = { - type = text; - value = '25/25/25/25'; - writeable = 1; write_command = ' '; write_function = ratios_write; checkrange_function = ratios_check; - property 'units' = 'percent'; - } - var flow_pv = { - type = float; - readable = 1; read_command = ' '; fetch_function = flow_fetch; - property 'units' = 'mL/min'; - } - var flow_sp = { - type = float; - value = 1.0; - writeable = 1; write_command = ' '; write_function = flow_write; - lowerlimit = 0; upperlimit = 10; - property 'units' = 'mL/min'; + group flow = { + var pval = { + type = float; + readable = 1; read_command = ' '; fetch_function = flow_fetch; + property 'units' = 'mL/min'; + } + var setp = { + type = float; + value = 1.0; + writeable = 1; write_command = ' '; write_function = flow_write; + lowerlimit = 0; upperlimit = 10; + property 'units' = 'mL/min'; + } } } - group stuff = { + group grp_stuff = { readable = 600; type = text; data = false; control = false; nxsave = false; @@ -124,7 +116,7 @@ driver knauer_pump = { var 'units' = { read_command = 'UNITS?'; } var valves = { read_command = 'VALVES?'; } } - group glp = { + group grp_glp = { type = text; readable = 1; fetch_function = fetch_from_glp; @@ -142,7 +134,7 @@ driver knauer_pump = { var pump_pwrhi = { read_command = '12'; } var pump_pwrlo = { read_command = '13'; } } - group status = { + group grp_status = { type = text; readable = 1; fetch_function = fetch_from_status; @@ -167,6 +159,24 @@ driver knauer_pump = { var error_in = { read_command = '19'; } } + # + # Ensure the pump starts up in REMOTE mode + # + code mkDriver = {%% + hset ${scobj_hpath}/pump/remote 1 + %%} + # + # These functions handle the real_data returned by the pump for the GLP? command + # + code read_glp = {%% + if { [string equal -nocase -length 6 ${data} "ERROR:"] } { + } else { + set dlist [split [lindex [split ${data} ":"] 1] ","] + sct real_data "[join [lrange ${dlist} 0 end] ,]" + set data "Hidden in real_data property" + } + %%} + code fetch_from_glp = {%% set index ${cmd_str} set data [hgetpropval ${tc_root}/dummy/glp real_data] @@ -179,6 +189,15 @@ driver knauer_pump = { set cmd "@@NOSEND@@" %%} + # + # These functions handle the real_data returned by the pump for the STATUS? command + # + code read_status = {%% + set dlist [split [lindex [split ${data} ":"] 1] ","] + sct real_data "[join [lrange ${dlist} 0 end] ,]" + set data "Hidden in real_data property" + %%} + code fetch_from_status = {%% set index ${cmd_str} set data [hgetpropval ${tc_root}/dummy/status real_data] @@ -191,19 +210,9 @@ driver knauer_pump = { set cmd "@@NOSEND@@" %%} - code read_glp = {%% - if { [string equal -nocase -length 6 ${data} "ERROR:"] } { - } else { - set dlist [split [lindex [split ${data} ":"] 1] ","] - sct real_data "[join [lrange ${dlist} 0 end] ,]" - set data "Hidden in real_data property" - } - %%} - code read_status = {%% - set dlist [split [lindex [split ${data} ":"] 1] ","] - sct real_data "[join [lrange ${dlist} 0 end] ,]" - set data "Hidden in real_data property" - %%} + # + # Decode the status from the real_data to PUMPING if it is pumping else IDLE + # code status_fetch = {%% set index 1 set data [hgetpropval ${tc_root}/dummy/status real_data] @@ -216,11 +225,19 @@ driver knauer_pump = { sct result "IDLE" } %%} + + # + # Decode the state from the real_data to one of the documented strings + # code state_fetch = {%% set index 1 set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set state_code [lindex ${dlist} ${index}] + if { [llength ${dlist}] > ${index} } { + set state_code [lindex ${dlist} ${index}] + } else { + set state_code "0" + } set cmd "@@NOSEND@@" if { ${state_code} < 0 || ${state_code} > 9 } { sct geterror "Invalid device_state ${state_code}" @@ -239,16 +256,17 @@ driver knauer_pump = { sct result [lindex ${slist} ${state_code}] %%} - code halt = {%% - set rlist [hval ${tc_root}/pump/ratio_sp] - set ratio_tgt [join [split ${rlist} /] ,] - set cmd "RAMP:0,0,${ratio_tgt},0,0,0,0,0,0,0,0,2" - %%} - + # + # code flow_fetch = {%% + set index 4 set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set flow_pv [lindex ${dlist} 4] + if { [llength ${dlist}] > ${index} } { + set flow_pv [lindex ${dlist} 4] + } else { + set flow_pv 0.0 + } sct result [expr {0.001 * ${flow_pv}}] set cmd "@@NOSEND@@" %%} @@ -264,7 +282,9 @@ driver knauer_pump = { } %%} - code ratios_check = {%% + # + # + code ratio_check = {%% set rlist [split ${setpoint} /] if { [llength ${rlist}] != 4 } { sct geterror "${setpoint} has [llength ${rlist}] components, needs 4" @@ -277,14 +297,14 @@ driver knauer_pump = { } %%} - code ratios_fetch = {%% + code ratio_fetch = {%% set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] set ratio_vals "[lindex ${dlist} 5]/[lindex ${dlist} 6]/[lindex ${dlist} 7]/[lindex ${dlist} 8]" sct result ${ratio_vals} set cmd "@@NOSEND@@" %%} - code ratios_write = {%% + code ratio_write = {%% set data [sct target] set cmd "@@NOSEND@@" set nextState idle @@ -296,6 +316,8 @@ driver knauer_pump = { } %%} + # + # code remote_read = {%% if { [string equal -length 7 ${data} "REMOTE:"] } { set data [lindex [split ${data} :] 1] @@ -313,6 +335,8 @@ driver knauer_pump = { } %%} + # + # code volume_fetch = {%% set data [hgetpropval ${tc_root}/dummy/glp real_data] set dlist [split ${data} ","] @@ -351,8 +375,8 @@ driver knauer_pump = { code pump_fetch = {%% if { [sct this_state] > 0 } { - set flow_tgt [expr {int(1000.0 * [hval ${tc_root}/pump/flow_sp])}] - set ratio_tgt [join [split [hval ${tc_root}/pump/ratio_sp] /] ,] + set flow_tgt [expr {int(1000.0 * [hval ${tc_root}/pump/flow/setp])}] + set ratio_tgt [join [split [hval ${tc_root}/pump/ratio/setp] /] ,] set time_tgt [expr {int(60000.0 * 1000.0 * [sct target] / ${flow_tgt})}] set time_1 [expr {${time_tgt} - 500}] set time_2 [expr {${time_tgt} + 500}] diff --git a/site_ansto/instrument/config/environment/sct_knauer_pump.tcl b/site_ansto/instrument/config/environment/sct_knauer_pump.tcl index 86627387..a9c259a9 100644 --- a/site_ansto/instrument/config/environment/sct_knauer_pump.tcl +++ b/site_ansto/instrument/config/environment/sct_knauer_pump.tcl @@ -153,9 +153,14 @@ proc ::scobj::knauer_pump::flow_fetch {tc_root nextState cmd_str} { } set cmd "${cmd_str}" # flow_fetch hook code starts + set index 4 set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set flow_pv [lindex ${dlist} 4] + if { [llength ${dlist}] > ${index} } { + set flow_pv [lindex ${dlist} 4] + } else { + set flow_pv 0.0 + } sct result [expr {0.001 * ${flow_pv}}] set cmd "@@NOSEND@@" # flow_fetch hook code ends @@ -282,8 +287,8 @@ proc ::scobj::knauer_pump::pump_fetch {tc_root nextState cmd_str} { set cmd "${cmd_str}" # pump_fetch hook code starts if { [sct this_state] > 0 } { - set flow_tgt [expr {int(1000.0 * [hval ${tc_root}/pump/flow_sp])}] - set ratio_tgt [join [split [hval ${tc_root}/pump/ratio_sp] /] ,] + set flow_tgt [expr {int(1000.0 * [hval ${tc_root}/pump/flow/setp])}] + set ratio_tgt [join [split [hval ${tc_root}/pump/ratio/setp] /] ,] set time_tgt [expr {int(60000.0 * 1000.0 * [sct target] / ${flow_tgt})}] set time_1 [expr {${time_tgt} - 500}] set time_2 [expr {${time_tgt} + 500}] @@ -402,9 +407,9 @@ proc ::scobj::knauer_pump::pump_write {tc_root nextState cmd_str} { } # check function for hset change -proc ::scobj::knauer_pump::ratios_check {tc_root} { +proc ::scobj::knauer_pump::ratio_check {tc_root} { set catch_status [ catch { - debug_log ${tc_root} 1 "ratios_check tc_root=${tc_root} sct=[sct] target=[sct target]" + debug_log ${tc_root} 1 "ratio_check tc_root=${tc_root} sct=[sct] target=[sct target]" set setpoint [sct target] if { [hpropexists [sct] lowerlimit] } { set lolimit [sct lowerlimit] @@ -418,7 +423,7 @@ proc ::scobj::knauer_pump::ratios_check {tc_root} { # upperlimit not set, use target set hilimit [sct target] } -# ratios_check hook code starts +# ratio_check hook code starts set rlist [split ${setpoint} /] if { [llength ${rlist}] != 4 } { sct geterror "${setpoint} has [llength ${rlist}] components, needs 4" @@ -429,7 +434,7 @@ proc ::scobj::knauer_pump::ratios_check {tc_root} { sct geterror "sum is ${sum}, must be 100" error [sct geterror] } -# ratios_check hook code ends +# ratio_check hook code ends if { ${setpoint} < ${lolimit} || ${setpoint} > ${hilimit} } { error "setpoint ${setpoint} violates limits (${lolimit}..${hilimit}) on [sct]" } @@ -439,25 +444,25 @@ proc ::scobj::knauer_pump::ratios_check {tc_root} { } # function to request the read of a parameter on a device -proc ::scobj::knauer_pump::ratios_fetch {tc_root nextState cmd_str} { +proc ::scobj::knauer_pump::ratio_fetch {tc_root nextState cmd_str} { set catch_status [ catch { - debug_log ${tc_root} 1 "ratios_fetch tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" + debug_log ${tc_root} 1 "ratio_fetch tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" if { [hpropexists [sct] geterror] } { hdelprop [sct] geterror } set cmd "${cmd_str}" -# ratios_fetch hook code starts +# ratio_fetch hook code starts set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] set ratio_vals "[lindex ${dlist} 5]/[lindex ${dlist} 6]/[lindex ${dlist} 7]/[lindex ${dlist} 8]" sct result ${ratio_vals} set cmd "@@NOSEND@@" -# ratios_fetch hook code ends +# ratio_fetch hook code ends if { [hpropexists [sct] geterror] } { debug_log ${tc_root} 9 "[sct] error: [sct geterror]" error "[sct geterror]" } - debug_log ${tc_root} 1 "ratios_fetch sct send ${cmd}" + debug_log ${tc_root} 1 "ratio_fetch sct send ${cmd}" if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { sct send "${cmd}" } @@ -467,15 +472,15 @@ proc ::scobj::knauer_pump::ratios_fetch {tc_root nextState cmd_str} { } # function to write a parameter value on a device -proc ::scobj::knauer_pump::ratios_write {tc_root nextState cmd_str} { +proc ::scobj::knauer_pump::ratio_write {tc_root nextState cmd_str} { set catch_status [ catch { - debug_log ${tc_root} 1 "ratios_write tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" + debug_log ${tc_root} 1 "ratio_write tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" if { [hpropexists [sct] geterror] } { hdelprop [sct] geterror } set par [sct target] set cmd "${cmd_str}${par}" -# ratios_write hook code starts +# ratio_write hook code starts set data [sct target] set cmd "@@NOSEND@@" set nextState idle @@ -485,7 +490,7 @@ proc ::scobj::knauer_pump::ratios_write {tc_root nextState cmd_str} { sct update ${data} sct utime readtime } -# ratios_write hook code ends +# ratio_write hook code ends if { [hpropexists [sct] geterror] } { debug_log ${tc_root} 9 "[sct] error: [sct geterror]" error "[sct geterror]" @@ -495,7 +500,7 @@ proc ::scobj::knauer_pump::ratios_write {tc_root nextState cmd_str} { sct driving 1 } } - debug_log ${tc_root} 1 "ratios_write sct send ${cmd}" + debug_log ${tc_root} 1 "ratio_write sct send ${cmd}" if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { sct send "${cmd}" } @@ -708,7 +713,11 @@ proc ::scobj::knauer_pump::state_fetch {tc_root nextState cmd_str} { set index 1 set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set state_code [lindex ${dlist} ${index}] + if { [llength ${dlist}] > ${index} } { + set state_code [lindex ${dlist} ${index}] + } else { + set state_code "0" + } set cmd "@@NOSEND@@" if { ${state_code} < 0 || ${state_code} > 9 } { sct geterror "Invalid device_state ${state_code}" @@ -772,81 +781,6 @@ proc ::scobj::knauer_pump::status_fetch {tc_root nextState cmd_str} { handle_exception ${catch_status} ${catch_message} } -# function to request the read of a parameter on a device -proc ::scobj::knauer_pump::volume_checkpumping {tc_root nextState cmd_str} { - set catch_status [ catch { - debug_log ${tc_root} 1 "volume_checkpumping tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" - if { [hpropexists [sct] geterror] } { - hdelprop [sct] geterror - } - set cmd "${cmd_str}" -# volume_checkpumping hook code starts - set cmd "@@NOSEND@@" - set nextState idle - if { [hpropexists [sct] pumping] && [sct pumping] } { - if { [hpropexists [sct] driving] && [sct driving] } { - volume_checkstatus "${tc_root}" - } - set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" - if { (${sp} - ${pv}) <= [sct tolerance] } { - set flow_tgt 0 - set ratio_tgt [join [split [hval ${tc_root}/pump/ratio_sp] /] ,] - set cmd "RAMP:0,${flow_tgt},${ratio_tgt},0,0,0,0,0,0,0,0,2" - set nextState noResponse - sct result "" - sct driving 0 - sct pumping 0 - } - } -# volume_checkpumping hook code ends - if { [hpropexists [sct] geterror] } { - debug_log ${tc_root} 9 "[sct] error: [sct geterror]" - error "[sct geterror]" - } - debug_log ${tc_root} 1 "volume_checkpumping sct send ${cmd}" - if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { - sct send "${cmd}" - } - return ${nextState} - } catch_message ] - handle_exception ${catch_status} ${catch_message} -} - -# checkstatus function for driveable interface -proc ::scobj::knauer_pump::volume_checkstatus {tc_root} { - set catch_status [ catch { -# volume_checkstatus hook code goes here - if {[sct driving]} { - set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" - if { abs(${pv} - ${sp}) <= [sct tolerance] } { - if { [hpropexists [sct] settle_time] } { - if { [hpropexists [sct] settle_time_start] } { - if { [sct utime] - [sct settle_time_start] >= [sct settle_time]} { - sct driving 0 - return "idle" - } - return "busy" - } else { - sct utime settle_time_start - return "busy" - } - } - sct driving 0 - return "idle" - } - if { [hpropexists [sct] settle_time_start] } { - hdelprop [sct] settle_time_start - } - return "busy" - } else { - return "idle" - } - } catch_message ] - handle_exception ${catch_status} ${catch_message} -} - # function to request the read of a parameter on a device proc ::scobj::knauer_pump::volume_fetch {tc_root nextState cmd_str} { set catch_status [ catch { @@ -887,65 +821,6 @@ proc ::scobj::knauer_pump::volume_fetch {tc_root nextState cmd_str} { handle_exception ${catch_status} ${catch_message} } -# halt function for driveable interface -proc ::scobj::knauer_pump::volume_halt {tc_root} { - set catch_status [ catch { - debug_log ${tc_root} 1 "volume_halt tc_root=${tc_root} sct=[sct] driving=[sct driving]" - ### TODO hset [sct] [hval [sct]] -# volume_halt hook code starts - set flow_tgt 0 - set ratio_tgt [join [split [hval ${tc_root}/pump/ratio_sp] /] ,] - set cmd "RAMP:0,${flow_tgt},${ratio_tgt},0,0,0,0,0,0,0,0,2" - sct send ${cmd} -# volume_halt hook code ends - sct driving 0 - return "idle" - } catch_message ] - handle_exception ${catch_status} ${catch_message} -} - -# function to write a parameter value on a device -proc ::scobj::knauer_pump::volume_write {tc_root nextState cmd_str} { - set catch_status [ catch { - debug_log ${tc_root} 1 "volume_write tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" - if { [hpropexists [sct] geterror] } { - hdelprop [sct] geterror - } - set par [sct target] - set cmd "${cmd_str}${par}" -# volume_write hook code starts - hsetprop ${tc_root}/[sct driveable] base_volume [hgetpropval ${tc_root}/[sct driveable] raw_volume] - hset ${tc_root}/[sct driveable] 0.0 - set flow_tgt [expr {int(1000.0 * [hval ${tc_root}/pump/flow_sp])}] - set ratio_tgt [join [split [hval ${tc_root}/pump/ratio_sp] /] ,] - set cmd "RAMP:0,${flow_tgt},${ratio_tgt},0,0,0,0,0,0,0,0,3" - sct pumping 1 - set data ${par} - if { ${data} != [sct oldval] } { - debug_log ${tc_root} 1 "[sct] changed to new:${data}, from old:[sct oldval]" - sct oldval ${data} - sct update ${data} - sct utime readtime - } -# volume_write hook code ends - if { [hpropexists [sct] geterror] } { - debug_log ${tc_root} 9 "[sct] error: [sct geterror]" - error "[sct geterror]" - } - if { [hpropexists [sct] driving] } { - if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } { - sct driving 1 - } - } - debug_log ${tc_root} 1 "volume_write sct send ${cmd}" - if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { - sct send "${cmd}" - } - return ${nextState} - } catch_message ] - handle_exception ${catch_status} ${catch_message} -} - proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulation_flag ip_address tcp_port } { ::scobj::knauer_pump::sics_log 9 "::scobj::knauer_pump::mkDriver ${sct_controller} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port}" set ns "[namespace current]" @@ -984,6 +859,7 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/dummy/status mutable true hsetprop ${scobj_hpath}/dummy/status nxsave false hsetprop ${scobj_hpath}/dummy/status oldval UNKNOWN + hsetprop ${scobj_hpath}/dummy/status real_data " " hsetprop ${scobj_hpath}/dummy/status sdsinfo "::nexus::scobj::sdsinfo" hsetprop ${scobj_hpath}/dummy/status type "part" hsetprop ${scobj_hpath}/dummy/status nxalias "${name}_dummy_status" @@ -995,194 +871,792 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } - hfactory ${scobj_hpath}/glp plain spy none - hsetprop ${scobj_hpath}/glp data "true" - hsetprop ${scobj_hpath}/glp klass "@none" - hsetprop ${scobj_hpath}/glp type "part" + hfactory ${scobj_hpath}/grp_glp plain spy none + hsetprop ${scobj_hpath}/grp_glp data "true" + hsetprop ${scobj_hpath}/grp_glp klass "@none" + hsetprop ${scobj_hpath}/grp_glp type "part" - hfactory ${scobj_hpath}/glp/board_time plain user text - hsetprop ${scobj_hpath}/glp/board_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {0} - hsetprop ${scobj_hpath}/glp/board_time rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/board_time control true - hsetprop ${scobj_hpath}/glp/board_time data true - hsetprop ${scobj_hpath}/glp/board_time mutable true - hsetprop ${scobj_hpath}/glp/board_time nxsave true - hsetprop ${scobj_hpath}/glp/board_time oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/board_time klass "parameter" - hsetprop ${scobj_hpath}/glp/board_time sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/board_time type "part" - hsetprop ${scobj_hpath}/glp/board_time nxalias "${name}_glp_board_time" + hfactory ${scobj_hpath}/grp_glp/board_time plain user text + hsetprop ${scobj_hpath}/grp_glp/board_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {0} + hsetprop ${scobj_hpath}/grp_glp/board_time rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/board_time control true + hsetprop ${scobj_hpath}/grp_glp/board_time data true + hsetprop ${scobj_hpath}/grp_glp/board_time mutable true + hsetprop ${scobj_hpath}/grp_glp/board_time nxsave true + hsetprop ${scobj_hpath}/grp_glp/board_time oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/board_time klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/board_time sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/board_time type "part" + hsetprop ${scobj_hpath}/grp_glp/board_time nxalias "${name}_grp_glp_board_time" - hfactory ${scobj_hpath}/glp/head_count plain user text - hsetprop ${scobj_hpath}/glp/head_count read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {3} - hsetprop ${scobj_hpath}/glp/head_count rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_count control true - hsetprop ${scobj_hpath}/glp/head_count data true - hsetprop ${scobj_hpath}/glp/head_count mutable true - hsetprop ${scobj_hpath}/glp/head_count nxsave true - hsetprop ${scobj_hpath}/glp/head_count oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_count klass "parameter" - hsetprop ${scobj_hpath}/glp/head_count sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_count type "part" - hsetprop ${scobj_hpath}/glp/head_count nxalias "${name}_glp_head_count" + hfactory ${scobj_hpath}/grp_glp/head_count plain user text + hsetprop ${scobj_hpath}/grp_glp/head_count read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {3} + hsetprop ${scobj_hpath}/grp_glp/head_count rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_count control true + hsetprop ${scobj_hpath}/grp_glp/head_count data true + hsetprop ${scobj_hpath}/grp_glp/head_count mutable true + hsetprop ${scobj_hpath}/grp_glp/head_count nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_count oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_count klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_count sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_count type "part" + hsetprop ${scobj_hpath}/grp_glp/head_count nxalias "${name}_grp_glp_head_count" - hfactory ${scobj_hpath}/glp/head_pwrhi plain user text - hsetprop ${scobj_hpath}/glp/head_pwrhi read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {7} - hsetprop ${scobj_hpath}/glp/head_pwrhi rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_pwrhi control true - hsetprop ${scobj_hpath}/glp/head_pwrhi data true - hsetprop ${scobj_hpath}/glp/head_pwrhi mutable true - hsetprop ${scobj_hpath}/glp/head_pwrhi nxsave true - hsetprop ${scobj_hpath}/glp/head_pwrhi oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_pwrhi klass "parameter" - hsetprop ${scobj_hpath}/glp/head_pwrhi sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_pwrhi type "part" - hsetprop ${scobj_hpath}/glp/head_pwrhi nxalias "${name}_glp_head_pwrhi" + hfactory ${scobj_hpath}/grp_glp/head_pwrhi plain user text + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {7} + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi control true + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi data true + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi mutable true + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi type "part" + hsetprop ${scobj_hpath}/grp_glp/head_pwrhi nxalias "${name}_grp_glp_head_pwrhi" - hfactory ${scobj_hpath}/glp/head_pwrlo plain user text - hsetprop ${scobj_hpath}/glp/head_pwrlo read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {8} - hsetprop ${scobj_hpath}/glp/head_pwrlo rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_pwrlo control true - hsetprop ${scobj_hpath}/glp/head_pwrlo data true - hsetprop ${scobj_hpath}/glp/head_pwrlo mutable true - hsetprop ${scobj_hpath}/glp/head_pwrlo nxsave true - hsetprop ${scobj_hpath}/glp/head_pwrlo oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_pwrlo klass "parameter" - hsetprop ${scobj_hpath}/glp/head_pwrlo sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_pwrlo type "part" - hsetprop ${scobj_hpath}/glp/head_pwrlo nxalias "${name}_glp_head_pwrlo" + hfactory ${scobj_hpath}/grp_glp/head_pwrlo plain user text + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {8} + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo control true + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo data true + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo mutable true + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo type "part" + hsetprop ${scobj_hpath}/grp_glp/head_pwrlo nxalias "${name}_grp_glp_head_pwrlo" - hfactory ${scobj_hpath}/glp/head_time plain user text - hsetprop ${scobj_hpath}/glp/head_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {4} - hsetprop ${scobj_hpath}/glp/head_time rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_time control true - hsetprop ${scobj_hpath}/glp/head_time data true - hsetprop ${scobj_hpath}/glp/head_time mutable true - hsetprop ${scobj_hpath}/glp/head_time nxsave true - hsetprop ${scobj_hpath}/glp/head_time oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_time klass "parameter" - hsetprop ${scobj_hpath}/glp/head_time sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_time type "part" - hsetprop ${scobj_hpath}/glp/head_time nxalias "${name}_glp_head_time" + hfactory ${scobj_hpath}/grp_glp/head_time plain user text + hsetprop ${scobj_hpath}/grp_glp/head_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {4} + hsetprop ${scobj_hpath}/grp_glp/head_time rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_time control true + hsetprop ${scobj_hpath}/grp_glp/head_time data true + hsetprop ${scobj_hpath}/grp_glp/head_time mutable true + hsetprop ${scobj_hpath}/grp_glp/head_time nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_time oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_time klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_time sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_time type "part" + hsetprop ${scobj_hpath}/grp_glp/head_time nxalias "${name}_grp_glp_head_time" - hfactory ${scobj_hpath}/glp/head_volm plain user text - hsetprop ${scobj_hpath}/glp/head_volm read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {5} - hsetprop ${scobj_hpath}/glp/head_volm rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_volm control true - hsetprop ${scobj_hpath}/glp/head_volm data true - hsetprop ${scobj_hpath}/glp/head_volm mutable true - hsetprop ${scobj_hpath}/glp/head_volm nxsave true - hsetprop ${scobj_hpath}/glp/head_volm oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_volm klass "parameter" - hsetprop ${scobj_hpath}/glp/head_volm sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_volm type "part" - hsetprop ${scobj_hpath}/glp/head_volm nxalias "${name}_glp_head_volm" + hfactory ${scobj_hpath}/grp_glp/head_volm plain user text + hsetprop ${scobj_hpath}/grp_glp/head_volm read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {5} + hsetprop ${scobj_hpath}/grp_glp/head_volm rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_volm control true + hsetprop ${scobj_hpath}/grp_glp/head_volm data true + hsetprop ${scobj_hpath}/grp_glp/head_volm mutable true + hsetprop ${scobj_hpath}/grp_glp/head_volm nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_volm oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_volm klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_volm sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_volm type "part" + hsetprop ${scobj_hpath}/grp_glp/head_volm nxalias "${name}_grp_glp_head_volm" - hfactory ${scobj_hpath}/glp/head_voln plain user text - hsetprop ${scobj_hpath}/glp/head_voln read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {6} - hsetprop ${scobj_hpath}/glp/head_voln rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/head_voln control true - hsetprop ${scobj_hpath}/glp/head_voln data true - hsetprop ${scobj_hpath}/glp/head_voln mutable true - hsetprop ${scobj_hpath}/glp/head_voln nxsave true - hsetprop ${scobj_hpath}/glp/head_voln oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/head_voln klass "parameter" - hsetprop ${scobj_hpath}/glp/head_voln sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/head_voln type "part" - hsetprop ${scobj_hpath}/glp/head_voln nxalias "${name}_glp_head_voln" + hfactory ${scobj_hpath}/grp_glp/head_voln plain user text + hsetprop ${scobj_hpath}/grp_glp/head_voln read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {6} + hsetprop ${scobj_hpath}/grp_glp/head_voln rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/head_voln control true + hsetprop ${scobj_hpath}/grp_glp/head_voln data true + hsetprop ${scobj_hpath}/grp_glp/head_voln mutable true + hsetprop ${scobj_hpath}/grp_glp/head_voln nxsave true + hsetprop ${scobj_hpath}/grp_glp/head_voln oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/head_voln klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/head_voln sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/head_voln type "part" + hsetprop ${scobj_hpath}/grp_glp/head_voln nxalias "${name}_grp_glp_head_voln" - hfactory ${scobj_hpath}/glp/motor_time plain user text - hsetprop ${scobj_hpath}/glp/motor_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {1} - hsetprop ${scobj_hpath}/glp/motor_time rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/motor_time control true - hsetprop ${scobj_hpath}/glp/motor_time data true - hsetprop ${scobj_hpath}/glp/motor_time mutable true - hsetprop ${scobj_hpath}/glp/motor_time nxsave true - hsetprop ${scobj_hpath}/glp/motor_time oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/motor_time klass "parameter" - hsetprop ${scobj_hpath}/glp/motor_time sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/motor_time type "part" - hsetprop ${scobj_hpath}/glp/motor_time nxalias "${name}_glp_motor_time" + hfactory ${scobj_hpath}/grp_glp/motor_time plain user text + hsetprop ${scobj_hpath}/grp_glp/motor_time read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {1} + hsetprop ${scobj_hpath}/grp_glp/motor_time rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/motor_time control true + hsetprop ${scobj_hpath}/grp_glp/motor_time data true + hsetprop ${scobj_hpath}/grp_glp/motor_time mutable true + hsetprop ${scobj_hpath}/grp_glp/motor_time nxsave true + hsetprop ${scobj_hpath}/grp_glp/motor_time oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/motor_time klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/motor_time sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/motor_time type "part" + hsetprop ${scobj_hpath}/grp_glp/motor_time nxalias "${name}_grp_glp_motor_time" - hfactory ${scobj_hpath}/glp/pump_pwrhi plain user text - hsetprop ${scobj_hpath}/glp/pump_pwrhi read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {12} - hsetprop ${scobj_hpath}/glp/pump_pwrhi rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/pump_pwrhi control true - hsetprop ${scobj_hpath}/glp/pump_pwrhi data true - hsetprop ${scobj_hpath}/glp/pump_pwrhi mutable true - hsetprop ${scobj_hpath}/glp/pump_pwrhi nxsave true - hsetprop ${scobj_hpath}/glp/pump_pwrhi oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/pump_pwrhi klass "parameter" - hsetprop ${scobj_hpath}/glp/pump_pwrhi sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/pump_pwrhi type "part" - hsetprop ${scobj_hpath}/glp/pump_pwrhi nxalias "${name}_glp_pump_pwrhi" + hfactory ${scobj_hpath}/grp_glp/pump_pwrhi plain user text + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {12} + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi control true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi data true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi mutable true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi nxsave true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi type "part" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrhi nxalias "${name}_grp_glp_pump_pwrhi" - hfactory ${scobj_hpath}/glp/pump_pwrlo plain user text - hsetprop ${scobj_hpath}/glp/pump_pwrlo read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {13} - hsetprop ${scobj_hpath}/glp/pump_pwrlo rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/pump_pwrlo control true - hsetprop ${scobj_hpath}/glp/pump_pwrlo data true - hsetprop ${scobj_hpath}/glp/pump_pwrlo mutable true - hsetprop ${scobj_hpath}/glp/pump_pwrlo nxsave true - hsetprop ${scobj_hpath}/glp/pump_pwrlo oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/pump_pwrlo klass "parameter" - hsetprop ${scobj_hpath}/glp/pump_pwrlo sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/pump_pwrlo type "part" - hsetprop ${scobj_hpath}/glp/pump_pwrlo nxalias "${name}_glp_pump_pwrlo" + hfactory ${scobj_hpath}/grp_glp/pump_pwrlo plain user text + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {13} + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo control true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo data true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo mutable true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo nxsave true + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo type "part" + hsetprop ${scobj_hpath}/grp_glp/pump_pwrlo nxalias "${name}_grp_glp_pump_pwrlo" - hfactory ${scobj_hpath}/glp/pump_revs plain user text - hsetprop ${scobj_hpath}/glp/pump_revs read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {9} - hsetprop ${scobj_hpath}/glp/pump_revs rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/pump_revs control true - hsetprop ${scobj_hpath}/glp/pump_revs data true - hsetprop ${scobj_hpath}/glp/pump_revs mutable true - hsetprop ${scobj_hpath}/glp/pump_revs nxsave true - hsetprop ${scobj_hpath}/glp/pump_revs oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/pump_revs klass "parameter" - hsetprop ${scobj_hpath}/glp/pump_revs sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/pump_revs type "part" - hsetprop ${scobj_hpath}/glp/pump_revs nxalias "${name}_glp_pump_revs" + hfactory ${scobj_hpath}/grp_glp/pump_revs plain user text + hsetprop ${scobj_hpath}/grp_glp/pump_revs read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {9} + hsetprop ${scobj_hpath}/grp_glp/pump_revs rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/pump_revs control true + hsetprop ${scobj_hpath}/grp_glp/pump_revs data true + hsetprop ${scobj_hpath}/grp_glp/pump_revs mutable true + hsetprop ${scobj_hpath}/grp_glp/pump_revs nxsave true + hsetprop ${scobj_hpath}/grp_glp/pump_revs oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/pump_revs klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/pump_revs sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/pump_revs type "part" + hsetprop ${scobj_hpath}/grp_glp/pump_revs nxalias "${name}_grp_glp_pump_revs" - hfactory ${scobj_hpath}/glp/pump_volm plain user text - hsetprop ${scobj_hpath}/glp/pump_volm read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {10} - hsetprop ${scobj_hpath}/glp/pump_volm rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/pump_volm control true - hsetprop ${scobj_hpath}/glp/pump_volm data true - hsetprop ${scobj_hpath}/glp/pump_volm mutable true - hsetprop ${scobj_hpath}/glp/pump_volm nxsave true - hsetprop ${scobj_hpath}/glp/pump_volm oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/pump_volm klass "parameter" - hsetprop ${scobj_hpath}/glp/pump_volm sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/pump_volm type "part" - hsetprop ${scobj_hpath}/glp/pump_volm nxalias "${name}_glp_pump_volm" + hfactory ${scobj_hpath}/grp_glp/pump_volm plain user text + hsetprop ${scobj_hpath}/grp_glp/pump_volm read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {10} + hsetprop ${scobj_hpath}/grp_glp/pump_volm rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/pump_volm control true + hsetprop ${scobj_hpath}/grp_glp/pump_volm data true + hsetprop ${scobj_hpath}/grp_glp/pump_volm mutable true + hsetprop ${scobj_hpath}/grp_glp/pump_volm nxsave true + hsetprop ${scobj_hpath}/grp_glp/pump_volm oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/pump_volm klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/pump_volm sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/pump_volm type "part" + hsetprop ${scobj_hpath}/grp_glp/pump_volm nxalias "${name}_grp_glp_pump_volm" - hfactory ${scobj_hpath}/glp/pump_voln plain user text - hsetprop ${scobj_hpath}/glp/pump_voln read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {11} - hsetprop ${scobj_hpath}/glp/pump_voln rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/glp/pump_voln control true - hsetprop ${scobj_hpath}/glp/pump_voln data true - hsetprop ${scobj_hpath}/glp/pump_voln mutable true - hsetprop ${scobj_hpath}/glp/pump_voln nxsave true - hsetprop ${scobj_hpath}/glp/pump_voln oldval UNKNOWN - hsetprop ${scobj_hpath}/glp/pump_voln klass "parameter" - hsetprop ${scobj_hpath}/glp/pump_voln sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/glp/pump_voln type "part" - hsetprop ${scobj_hpath}/glp/pump_voln nxalias "${name}_glp_pump_voln" + hfactory ${scobj_hpath}/grp_glp/pump_voln plain user text + hsetprop ${scobj_hpath}/grp_glp/pump_voln read ${ns}::fetch_from_glp ${scobj_hpath} rdValue {11} + hsetprop ${scobj_hpath}/grp_glp/pump_voln rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_glp/pump_voln control true + hsetprop ${scobj_hpath}/grp_glp/pump_voln data true + hsetprop ${scobj_hpath}/grp_glp/pump_voln mutable true + hsetprop ${scobj_hpath}/grp_glp/pump_voln nxsave true + hsetprop ${scobj_hpath}/grp_glp/pump_voln oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_glp/pump_voln klass "parameter" + hsetprop ${scobj_hpath}/grp_glp/pump_voln sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_glp/pump_voln type "part" + hsetprop ${scobj_hpath}/grp_glp/pump_voln nxalias "${name}_grp_glp_pump_voln" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/glp/board_time 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_count 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_pwrhi 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_pwrlo 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_time 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_volm 1 - ${sct_controller} poll ${scobj_hpath}/glp/head_voln 1 - ${sct_controller} poll ${scobj_hpath}/glp/motor_time 1 - ${sct_controller} poll ${scobj_hpath}/glp/pump_pwrhi 1 - ${sct_controller} poll ${scobj_hpath}/glp/pump_pwrlo 1 - ${sct_controller} poll ${scobj_hpath}/glp/pump_revs 1 - ${sct_controller} poll ${scobj_hpath}/glp/pump_volm 1 - ${sct_controller} poll ${scobj_hpath}/glp/pump_voln 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/board_time 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_count 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_pwrhi 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_pwrlo 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_time 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_volm 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/head_voln 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/motor_time 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/pump_pwrhi 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/pump_pwrlo 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/pump_revs 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/pump_volm 1 + ${sct_controller} poll ${scobj_hpath}/grp_glp/pump_voln 1 + } else { + ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" + } + + hfactory ${scobj_hpath}/grp_status plain spy none + hsetprop ${scobj_hpath}/grp_status data "true" + hsetprop ${scobj_hpath}/grp_status klass "@none" + hsetprop ${scobj_hpath}/grp_status type "part" + + hfactory ${scobj_hpath}/grp_status/cur_error plain user text + hsetprop ${scobj_hpath}/grp_status/cur_error read ${ns}::fetch_from_status ${scobj_hpath} rdValue {2} + hsetprop ${scobj_hpath}/grp_status/cur_error rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/cur_error control true + hsetprop ${scobj_hpath}/grp_status/cur_error data true + hsetprop ${scobj_hpath}/grp_status/cur_error mutable true + hsetprop ${scobj_hpath}/grp_status/cur_error nxsave true + hsetprop ${scobj_hpath}/grp_status/cur_error oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/cur_error klass "parameter" + hsetprop ${scobj_hpath}/grp_status/cur_error sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/cur_error type "part" + hsetprop ${scobj_hpath}/grp_status/cur_error nxalias "${name}_grp_status_cur_error" + + hfactory ${scobj_hpath}/grp_status/cur_pres plain user text + hsetprop ${scobj_hpath}/grp_status/cur_pres read ${ns}::fetch_from_status ${scobj_hpath} rdValue {17} + hsetprop ${scobj_hpath}/grp_status/cur_pres rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/cur_pres control true + hsetprop ${scobj_hpath}/grp_status/cur_pres data true + hsetprop ${scobj_hpath}/grp_status/cur_pres mutable true + hsetprop ${scobj_hpath}/grp_status/cur_pres nxsave true + hsetprop ${scobj_hpath}/grp_status/cur_pres oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/cur_pres klass "parameter" + hsetprop ${scobj_hpath}/grp_status/cur_pres sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/cur_pres type "part" + hsetprop ${scobj_hpath}/grp_status/cur_pres nxalias "${name}_grp_status_cur_pres" + + hfactory ${scobj_hpath}/grp_status/cur_run_time plain user text + hsetprop ${scobj_hpath}/grp_status/cur_run_time read ${ns}::fetch_from_status ${scobj_hpath} rdValue {3} + hsetprop ${scobj_hpath}/grp_status/cur_run_time rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/cur_run_time control true + hsetprop ${scobj_hpath}/grp_status/cur_run_time data true + hsetprop ${scobj_hpath}/grp_status/cur_run_time mutable true + hsetprop ${scobj_hpath}/grp_status/cur_run_time nxsave true + hsetprop ${scobj_hpath}/grp_status/cur_run_time oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/cur_run_time klass "parameter" + hsetprop ${scobj_hpath}/grp_status/cur_run_time sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/cur_run_time type "part" + hsetprop ${scobj_hpath}/grp_status/cur_run_time nxalias "${name}_grp_status_cur_run_time" + + hfactory ${scobj_hpath}/grp_status/error_in plain user text + hsetprop ${scobj_hpath}/grp_status/error_in read ${ns}::fetch_from_status ${scobj_hpath} rdValue {19} + hsetprop ${scobj_hpath}/grp_status/error_in rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/error_in control true + hsetprop ${scobj_hpath}/grp_status/error_in data true + hsetprop ${scobj_hpath}/grp_status/error_in mutable true + hsetprop ${scobj_hpath}/grp_status/error_in nxsave true + hsetprop ${scobj_hpath}/grp_status/error_in oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/error_in klass "parameter" + hsetprop ${scobj_hpath}/grp_status/error_in sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/error_in type "part" + hsetprop ${scobj_hpath}/grp_status/error_in nxalias "${name}_grp_status_error_in" + + hfactory ${scobj_hpath}/grp_status/evt_0 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_0 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {9} + hsetprop ${scobj_hpath}/grp_status/evt_0 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_0 control true + hsetprop ${scobj_hpath}/grp_status/evt_0 data true + hsetprop ${scobj_hpath}/grp_status/evt_0 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_0 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_0 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_0 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_0 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_0 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_0 nxalias "${name}_grp_status_evt_0" + + hfactory ${scobj_hpath}/grp_status/evt_1 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_1 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {10} + hsetprop ${scobj_hpath}/grp_status/evt_1 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_1 control true + hsetprop ${scobj_hpath}/grp_status/evt_1 data true + hsetprop ${scobj_hpath}/grp_status/evt_1 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_1 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_1 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_1 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_1 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_1 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_1 nxalias "${name}_grp_status_evt_1" + + hfactory ${scobj_hpath}/grp_status/evt_2 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_2 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {11} + hsetprop ${scobj_hpath}/grp_status/evt_2 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_2 control true + hsetprop ${scobj_hpath}/grp_status/evt_2 data true + hsetprop ${scobj_hpath}/grp_status/evt_2 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_2 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_2 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_2 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_2 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_2 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_2 nxalias "${name}_grp_status_evt_2" + + hfactory ${scobj_hpath}/grp_status/evt_3 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_3 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {12} + hsetprop ${scobj_hpath}/grp_status/evt_3 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_3 control true + hsetprop ${scobj_hpath}/grp_status/evt_3 data true + hsetprop ${scobj_hpath}/grp_status/evt_3 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_3 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_3 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_3 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_3 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_3 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_3 nxalias "${name}_grp_status_evt_3" + + hfactory ${scobj_hpath}/grp_status/evt_4 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_4 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {13} + hsetprop ${scobj_hpath}/grp_status/evt_4 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_4 control true + hsetprop ${scobj_hpath}/grp_status/evt_4 data true + hsetprop ${scobj_hpath}/grp_status/evt_4 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_4 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_4 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_4 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_4 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_4 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_4 nxalias "${name}_grp_status_evt_4" + + hfactory ${scobj_hpath}/grp_status/evt_5 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_5 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {14} + hsetprop ${scobj_hpath}/grp_status/evt_5 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_5 control true + hsetprop ${scobj_hpath}/grp_status/evt_5 data true + hsetprop ${scobj_hpath}/grp_status/evt_5 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_5 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_5 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_5 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_5 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_5 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_5 nxalias "${name}_grp_status_evt_5" + + hfactory ${scobj_hpath}/grp_status/evt_6 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_6 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {15} + hsetprop ${scobj_hpath}/grp_status/evt_6 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_6 control true + hsetprop ${scobj_hpath}/grp_status/evt_6 data true + hsetprop ${scobj_hpath}/grp_status/evt_6 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_6 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_6 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_6 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_6 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_6 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_6 nxalias "${name}_grp_status_evt_6" + + hfactory ${scobj_hpath}/grp_status/evt_7 plain user text + hsetprop ${scobj_hpath}/grp_status/evt_7 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {16} + hsetprop ${scobj_hpath}/grp_status/evt_7 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/evt_7 control true + hsetprop ${scobj_hpath}/grp_status/evt_7 data true + hsetprop ${scobj_hpath}/grp_status/evt_7 mutable true + hsetprop ${scobj_hpath}/grp_status/evt_7 nxsave true + hsetprop ${scobj_hpath}/grp_status/evt_7 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/evt_7 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/evt_7 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/evt_7 type "part" + hsetprop ${scobj_hpath}/grp_status/evt_7 nxalias "${name}_grp_status_evt_7" + + hfactory ${scobj_hpath}/grp_status/flow_rate plain user text + hsetprop ${scobj_hpath}/grp_status/flow_rate read ${ns}::fetch_from_status ${scobj_hpath} rdValue {4} + hsetprop ${scobj_hpath}/grp_status/flow_rate rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/flow_rate control true + hsetprop ${scobj_hpath}/grp_status/flow_rate data true + hsetprop ${scobj_hpath}/grp_status/flow_rate mutable true + hsetprop ${scobj_hpath}/grp_status/flow_rate nxsave true + hsetprop ${scobj_hpath}/grp_status/flow_rate oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/flow_rate klass "parameter" + hsetprop ${scobj_hpath}/grp_status/flow_rate sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/flow_rate type "part" + hsetprop ${scobj_hpath}/grp_status/flow_rate nxalias "${name}_grp_status_flow_rate" + + hfactory ${scobj_hpath}/grp_status/lpg_0 plain user text + hsetprop ${scobj_hpath}/grp_status/lpg_0 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {5} + hsetprop ${scobj_hpath}/grp_status/lpg_0 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/lpg_0 control true + hsetprop ${scobj_hpath}/grp_status/lpg_0 data true + hsetprop ${scobj_hpath}/grp_status/lpg_0 mutable true + hsetprop ${scobj_hpath}/grp_status/lpg_0 nxsave true + hsetprop ${scobj_hpath}/grp_status/lpg_0 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/lpg_0 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/lpg_0 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/lpg_0 type "part" + hsetprop ${scobj_hpath}/grp_status/lpg_0 nxalias "${name}_grp_status_lpg_0" + + hfactory ${scobj_hpath}/grp_status/lpg_1 plain user text + hsetprop ${scobj_hpath}/grp_status/lpg_1 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {6} + hsetprop ${scobj_hpath}/grp_status/lpg_1 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/lpg_1 control true + hsetprop ${scobj_hpath}/grp_status/lpg_1 data true + hsetprop ${scobj_hpath}/grp_status/lpg_1 mutable true + hsetprop ${scobj_hpath}/grp_status/lpg_1 nxsave true + hsetprop ${scobj_hpath}/grp_status/lpg_1 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/lpg_1 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/lpg_1 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/lpg_1 type "part" + hsetprop ${scobj_hpath}/grp_status/lpg_1 nxalias "${name}_grp_status_lpg_1" + + hfactory ${scobj_hpath}/grp_status/lpg_2 plain user text + hsetprop ${scobj_hpath}/grp_status/lpg_2 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {7} + hsetprop ${scobj_hpath}/grp_status/lpg_2 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/lpg_2 control true + hsetprop ${scobj_hpath}/grp_status/lpg_2 data true + hsetprop ${scobj_hpath}/grp_status/lpg_2 mutable true + hsetprop ${scobj_hpath}/grp_status/lpg_2 nxsave true + hsetprop ${scobj_hpath}/grp_status/lpg_2 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/lpg_2 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/lpg_2 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/lpg_2 type "part" + hsetprop ${scobj_hpath}/grp_status/lpg_2 nxalias "${name}_grp_status_lpg_2" + + hfactory ${scobj_hpath}/grp_status/lpg_3 plain user text + hsetprop ${scobj_hpath}/grp_status/lpg_3 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {8} + hsetprop ${scobj_hpath}/grp_status/lpg_3 rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/lpg_3 control true + hsetprop ${scobj_hpath}/grp_status/lpg_3 data true + hsetprop ${scobj_hpath}/grp_status/lpg_3 mutable true + hsetprop ${scobj_hpath}/grp_status/lpg_3 nxsave true + hsetprop ${scobj_hpath}/grp_status/lpg_3 oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/lpg_3 klass "parameter" + hsetprop ${scobj_hpath}/grp_status/lpg_3 sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/lpg_3 type "part" + hsetprop ${scobj_hpath}/grp_status/lpg_3 nxalias "${name}_grp_status_lpg_3" + + hfactory ${scobj_hpath}/grp_status/start_in plain user text + hsetprop ${scobj_hpath}/grp_status/start_in read ${ns}::fetch_from_status ${scobj_hpath} rdValue {18} + hsetprop ${scobj_hpath}/grp_status/start_in rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/start_in control true + hsetprop ${scobj_hpath}/grp_status/start_in data true + hsetprop ${scobj_hpath}/grp_status/start_in mutable true + hsetprop ${scobj_hpath}/grp_status/start_in nxsave true + hsetprop ${scobj_hpath}/grp_status/start_in oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/start_in klass "parameter" + hsetprop ${scobj_hpath}/grp_status/start_in sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/start_in type "part" + hsetprop ${scobj_hpath}/grp_status/start_in nxalias "${name}_grp_status_start_in" + + hfactory ${scobj_hpath}/grp_status/state plain user text + hsetprop ${scobj_hpath}/grp_status/state read ${ns}::fetch_from_status ${scobj_hpath} rdValue {1} + hsetprop ${scobj_hpath}/grp_status/state rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_status/state control true + hsetprop ${scobj_hpath}/grp_status/state data true + hsetprop ${scobj_hpath}/grp_status/state mutable true + hsetprop ${scobj_hpath}/grp_status/state nxsave true + hsetprop ${scobj_hpath}/grp_status/state oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_status/state klass "parameter" + hsetprop ${scobj_hpath}/grp_status/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_status/state type "part" + hsetprop ${scobj_hpath}/grp_status/state nxalias "${name}_grp_status_state" + + if {[string equal -nocase "${simulation_flag}" "false"]} { + ${sct_controller} poll ${scobj_hpath}/grp_status/cur_error 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/cur_pres 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/cur_run_time 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/error_in 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_0 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_1 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_2 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_3 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_4 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_5 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_6 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/evt_7 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/flow_rate 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/lpg_0 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/lpg_1 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/lpg_2 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/lpg_3 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/start_in 1 + ${sct_controller} poll ${scobj_hpath}/grp_status/state 1 + } else { + ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" + } + + hfactory ${scobj_hpath}/grp_stuff plain spy none + hsetprop ${scobj_hpath}/grp_stuff data "false" + hsetprop ${scobj_hpath}/grp_stuff klass "@none" + hsetprop ${scobj_hpath}/grp_stuff type "part" + + hfactory ${scobj_hpath}/grp_stuff/an_out plain user text + hsetprop ${scobj_hpath}/grp_stuff/an_out read ${ns}::getValue ${scobj_hpath} rdValue {AN_OUT?} + hsetprop ${scobj_hpath}/grp_stuff/an_out rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/an_out control false + hsetprop ${scobj_hpath}/grp_stuff/an_out data false + hsetprop ${scobj_hpath}/grp_stuff/an_out mutable true + hsetprop ${scobj_hpath}/grp_stuff/an_out nxsave false + hsetprop ${scobj_hpath}/grp_stuff/an_out oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/an_out sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/an_out type "part" + hsetprop ${scobj_hpath}/grp_stuff/an_out nxalias "${name}_grp_stuff_an_out" + + hfactory ${scobj_hpath}/grp_stuff/boardinfo plain user text + hsetprop ${scobj_hpath}/grp_stuff/boardinfo read ${ns}::getValue ${scobj_hpath} rdValue {BOARDINFO?} + hsetprop ${scobj_hpath}/grp_stuff/boardinfo rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/boardinfo control false + hsetprop ${scobj_hpath}/grp_stuff/boardinfo data false + hsetprop ${scobj_hpath}/grp_stuff/boardinfo mutable true + hsetprop ${scobj_hpath}/grp_stuff/boardinfo nxsave false + hsetprop ${scobj_hpath}/grp_stuff/boardinfo oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/boardinfo sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/boardinfo type "part" + hsetprop ${scobj_hpath}/grp_stuff/boardinfo nxalias "${name}_grp_stuff_boardinfo" + + hfactory ${scobj_hpath}/grp_stuff/config plain user text + hsetprop ${scobj_hpath}/grp_stuff/config read ${ns}::getValue ${scobj_hpath} rdValue {CONFIG?} + hsetprop ${scobj_hpath}/grp_stuff/config rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/config control false + hsetprop ${scobj_hpath}/grp_stuff/config data false + hsetprop ${scobj_hpath}/grp_stuff/config mutable true + hsetprop ${scobj_hpath}/grp_stuff/config nxsave false + hsetprop ${scobj_hpath}/grp_stuff/config oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/config sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/config type "part" + hsetprop ${scobj_hpath}/grp_stuff/config nxalias "${name}_grp_stuff_config" + + hfactory ${scobj_hpath}/grp_stuff/cprofinfo plain user text + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo read ${ns}::getValue ${scobj_hpath} rdValue {CPROFINFO?} + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo control false + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo data false + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo mutable true + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo nxsave false + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo type "part" + hsetprop ${scobj_hpath}/grp_stuff/cprofinfo nxalias "${name}_grp_stuff_cprofinfo" + + hfactory ${scobj_hpath}/grp_stuff/dout plain user text + hsetprop ${scobj_hpath}/grp_stuff/dout read ${ns}::getValue ${scobj_hpath} rdValue {DOUT?} + hsetprop ${scobj_hpath}/grp_stuff/dout rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/dout control false + hsetprop ${scobj_hpath}/grp_stuff/dout data false + hsetprop ${scobj_hpath}/grp_stuff/dout mutable true + hsetprop ${scobj_hpath}/grp_stuff/dout nxsave false + hsetprop ${scobj_hpath}/grp_stuff/dout oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/dout sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/dout type "part" + hsetprop ${scobj_hpath}/grp_stuff/dout nxalias "${name}_grp_stuff_dout" + + hfactory ${scobj_hpath}/grp_stuff/error plain user text + hsetprop ${scobj_hpath}/grp_stuff/error read ${ns}::getValue ${scobj_hpath} rdValue {ERROR?} + hsetprop ${scobj_hpath}/grp_stuff/error rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/error control false + hsetprop ${scobj_hpath}/grp_stuff/error data false + hsetprop ${scobj_hpath}/grp_stuff/error mutable true + hsetprop ${scobj_hpath}/grp_stuff/error nxsave false + hsetprop ${scobj_hpath}/grp_stuff/error oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/error sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/error type "part" + hsetprop ${scobj_hpath}/grp_stuff/error nxalias "${name}_grp_stuff_error" + + hfactory ${scobj_hpath}/grp_stuff/errors plain user text + hsetprop ${scobj_hpath}/grp_stuff/errors read ${ns}::getValue ${scobj_hpath} rdValue {ERRORS?} + hsetprop ${scobj_hpath}/grp_stuff/errors rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/errors control false + hsetprop ${scobj_hpath}/grp_stuff/errors data false + hsetprop ${scobj_hpath}/grp_stuff/errors mutable true + hsetprop ${scobj_hpath}/grp_stuff/errors nxsave false + hsetprop ${scobj_hpath}/grp_stuff/errors oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/errors sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/errors type "part" + hsetprop ${scobj_hpath}/grp_stuff/errors nxalias "${name}_grp_stuff_errors" + + hfactory ${scobj_hpath}/grp_stuff/flushpmp plain user text + hsetprop ${scobj_hpath}/grp_stuff/flushpmp read ${ns}::getValue ${scobj_hpath} rdValue {FLUSHPMP?} + hsetprop ${scobj_hpath}/grp_stuff/flushpmp rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/flushpmp control false + hsetprop ${scobj_hpath}/grp_stuff/flushpmp data false + hsetprop ${scobj_hpath}/grp_stuff/flushpmp mutable true + hsetprop ${scobj_hpath}/grp_stuff/flushpmp nxsave false + hsetprop ${scobj_hpath}/grp_stuff/flushpmp oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/flushpmp sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/flushpmp type "part" + hsetprop ${scobj_hpath}/grp_stuff/flushpmp nxalias "${name}_grp_stuff_flushpmp" + + hfactory ${scobj_hpath}/grp_stuff/head plain user text + hsetprop ${scobj_hpath}/grp_stuff/head read ${ns}::getValue ${scobj_hpath} rdValue {HEAD?} + hsetprop ${scobj_hpath}/grp_stuff/head rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/head control false + hsetprop ${scobj_hpath}/grp_stuff/head data false + hsetprop ${scobj_hpath}/grp_stuff/head mutable true + hsetprop ${scobj_hpath}/grp_stuff/head nxsave false + hsetprop ${scobj_hpath}/grp_stuff/head oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/head sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/head type "part" + hsetprop ${scobj_hpath}/grp_stuff/head nxalias "${name}_grp_stuff_head" + + hfactory ${scobj_hpath}/grp_stuff/head_par plain user text + hsetprop ${scobj_hpath}/grp_stuff/head_par read ${ns}::getValue ${scobj_hpath} rdValue {HEAD_PAR?} + hsetprop ${scobj_hpath}/grp_stuff/head_par rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/head_par control false + hsetprop ${scobj_hpath}/grp_stuff/head_par data false + hsetprop ${scobj_hpath}/grp_stuff/head_par mutable true + hsetprop ${scobj_hpath}/grp_stuff/head_par nxsave false + hsetprop ${scobj_hpath}/grp_stuff/head_par oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/head_par sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/head_par type "part" + hsetprop ${scobj_hpath}/grp_stuff/head_par nxalias "${name}_grp_stuff_head_par" + + hfactory ${scobj_hpath}/grp_stuff/identify plain user text + hsetprop ${scobj_hpath}/grp_stuff/identify read ${ns}::getValue ${scobj_hpath} rdValue {IDENTIFY?} + hsetprop ${scobj_hpath}/grp_stuff/identify rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/identify control false + hsetprop ${scobj_hpath}/grp_stuff/identify data false + hsetprop ${scobj_hpath}/grp_stuff/identify mutable true + hsetprop ${scobj_hpath}/grp_stuff/identify nxsave false + hsetprop ${scobj_hpath}/grp_stuff/identify oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/identify sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/identify type "part" + hsetprop ${scobj_hpath}/grp_stuff/identify nxalias "${name}_grp_stuff_identify" + + hfactory ${scobj_hpath}/grp_stuff/lpg plain user text + hsetprop ${scobj_hpath}/grp_stuff/lpg read ${ns}::getValue ${scobj_hpath} rdValue {LPG?} + hsetprop ${scobj_hpath}/grp_stuff/lpg rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/lpg control false + hsetprop ${scobj_hpath}/grp_stuff/lpg data false + hsetprop ${scobj_hpath}/grp_stuff/lpg mutable true + hsetprop ${scobj_hpath}/grp_stuff/lpg nxsave false + hsetprop ${scobj_hpath}/grp_stuff/lpg oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/lpg sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/lpg type "part" + hsetprop ${scobj_hpath}/grp_stuff/lpg nxalias "${name}_grp_stuff_lpg" + + hfactory ${scobj_hpath}/grp_stuff/oem plain user text + hsetprop ${scobj_hpath}/grp_stuff/oem read ${ns}::getValue ${scobj_hpath} rdValue {OEM?} + hsetprop ${scobj_hpath}/grp_stuff/oem rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/oem control false + hsetprop ${scobj_hpath}/grp_stuff/oem data false + hsetprop ${scobj_hpath}/grp_stuff/oem mutable true + hsetprop ${scobj_hpath}/grp_stuff/oem nxsave false + hsetprop ${scobj_hpath}/grp_stuff/oem oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/oem sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/oem type "part" + hsetprop ${scobj_hpath}/grp_stuff/oem nxalias "${name}_grp_stuff_oem" + + hfactory ${scobj_hpath}/grp_stuff/opt plain user text + hsetprop ${scobj_hpath}/grp_stuff/opt read ${ns}::getValue ${scobj_hpath} rdValue {OPT?} + hsetprop ${scobj_hpath}/grp_stuff/opt rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/opt control false + hsetprop ${scobj_hpath}/grp_stuff/opt data false + hsetprop ${scobj_hpath}/grp_stuff/opt mutable true + hsetprop ${scobj_hpath}/grp_stuff/opt nxsave false + hsetprop ${scobj_hpath}/grp_stuff/opt oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/opt sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/opt type "part" + hsetprop ${scobj_hpath}/grp_stuff/opt nxalias "${name}_grp_stuff_opt" + + hfactory ${scobj_hpath}/grp_stuff/plim plain user text + hsetprop ${scobj_hpath}/grp_stuff/plim read ${ns}::getValue ${scobj_hpath} rdValue {PLIM?} + hsetprop ${scobj_hpath}/grp_stuff/plim rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/plim control false + hsetprop ${scobj_hpath}/grp_stuff/plim data false + hsetprop ${scobj_hpath}/grp_stuff/plim mutable true + hsetprop ${scobj_hpath}/grp_stuff/plim nxsave false + hsetprop ${scobj_hpath}/grp_stuff/plim oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/plim sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/plim type "part" + hsetprop ${scobj_hpath}/grp_stuff/plim nxalias "${name}_grp_stuff_plim" + + hfactory ${scobj_hpath}/grp_stuff/pressure plain user text + hsetprop ${scobj_hpath}/grp_stuff/pressure read ${ns}::getValue ${scobj_hpath} rdValue {PRESSURE?} + hsetprop ${scobj_hpath}/grp_stuff/pressure rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/pressure control false + hsetprop ${scobj_hpath}/grp_stuff/pressure data false + hsetprop ${scobj_hpath}/grp_stuff/pressure mutable true + hsetprop ${scobj_hpath}/grp_stuff/pressure nxsave false + hsetprop ${scobj_hpath}/grp_stuff/pressure oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/pressure sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/pressure type "part" + hsetprop ${scobj_hpath}/grp_stuff/pressure nxalias "${name}_grp_stuff_pressure" + + hfactory ${scobj_hpath}/grp_stuff/prfastacq plain user text + hsetprop ${scobj_hpath}/grp_stuff/prfastacq read ${ns}::getValue ${scobj_hpath} rdValue {PRFASTACQ?} + hsetprop ${scobj_hpath}/grp_stuff/prfastacq rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/prfastacq control false + hsetprop ${scobj_hpath}/grp_stuff/prfastacq data false + hsetprop ${scobj_hpath}/grp_stuff/prfastacq mutable true + hsetprop ${scobj_hpath}/grp_stuff/prfastacq nxsave false + hsetprop ${scobj_hpath}/grp_stuff/prfastacq oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/prfastacq sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/prfastacq type "part" + hsetprop ${scobj_hpath}/grp_stuff/prfastacq nxalias "${name}_grp_stuff_prfastacq" + + hfactory ${scobj_hpath}/grp_stuff/purge plain user text + hsetprop ${scobj_hpath}/grp_stuff/purge read ${ns}::getValue ${scobj_hpath} rdValue {PURGE?} + hsetprop ${scobj_hpath}/grp_stuff/purge rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/purge control false + hsetprop ${scobj_hpath}/grp_stuff/purge data false + hsetprop ${scobj_hpath}/grp_stuff/purge mutable true + hsetprop ${scobj_hpath}/grp_stuff/purge nxsave false + hsetprop ${scobj_hpath}/grp_stuff/purge oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/purge sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/purge type "part" + hsetprop ${scobj_hpath}/grp_stuff/purge nxalias "${name}_grp_stuff_purge" + + hfactory ${scobj_hpath}/grp_stuff/remote plain user text + hsetprop ${scobj_hpath}/grp_stuff/remote read ${ns}::getValue ${scobj_hpath} rdValue {REMOTE?} + hsetprop ${scobj_hpath}/grp_stuff/remote rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/remote control false + hsetprop ${scobj_hpath}/grp_stuff/remote data false + hsetprop ${scobj_hpath}/grp_stuff/remote mutable true + hsetprop ${scobj_hpath}/grp_stuff/remote nxsave false + hsetprop ${scobj_hpath}/grp_stuff/remote oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/remote sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/remote type "part" + hsetprop ${scobj_hpath}/grp_stuff/remote nxalias "${name}_grp_stuff_remote" + + hfactory ${scobj_hpath}/grp_stuff/rfid plain user text + hsetprop ${scobj_hpath}/grp_stuff/rfid read ${ns}::getValue ${scobj_hpath} rdValue {RFID?} + hsetprop ${scobj_hpath}/grp_stuff/rfid rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/rfid control false + hsetprop ${scobj_hpath}/grp_stuff/rfid data false + hsetprop ${scobj_hpath}/grp_stuff/rfid mutable true + hsetprop ${scobj_hpath}/grp_stuff/rfid nxsave false + hsetprop ${scobj_hpath}/grp_stuff/rfid oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/rfid sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/rfid type "part" + hsetprop ${scobj_hpath}/grp_stuff/rfid nxalias "${name}_grp_stuff_rfid" + + hfactory ${scobj_hpath}/grp_stuff/service plain user text + hsetprop ${scobj_hpath}/grp_stuff/service read ${ns}::getValue ${scobj_hpath} rdValue {SERVICE?} + hsetprop ${scobj_hpath}/grp_stuff/service rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/service control false + hsetprop ${scobj_hpath}/grp_stuff/service data false + hsetprop ${scobj_hpath}/grp_stuff/service mutable true + hsetprop ${scobj_hpath}/grp_stuff/service nxsave false + hsetprop ${scobj_hpath}/grp_stuff/service oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/service sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/service type "part" + hsetprop ${scobj_hpath}/grp_stuff/service nxalias "${name}_grp_stuff_service" + + hfactory ${scobj_hpath}/grp_stuff/sysinfo plain user text + hsetprop ${scobj_hpath}/grp_stuff/sysinfo read ${ns}::getValue ${scobj_hpath} rdValue {SYSINFO?} + hsetprop ${scobj_hpath}/grp_stuff/sysinfo rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/sysinfo control false + hsetprop ${scobj_hpath}/grp_stuff/sysinfo data false + hsetprop ${scobj_hpath}/grp_stuff/sysinfo mutable true + hsetprop ${scobj_hpath}/grp_stuff/sysinfo nxsave false + hsetprop ${scobj_hpath}/grp_stuff/sysinfo oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/sysinfo sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/sysinfo type "part" + hsetprop ${scobj_hpath}/grp_stuff/sysinfo nxalias "${name}_grp_stuff_sysinfo" + + hfactory ${scobj_hpath}/grp_stuff/units plain user text + hsetprop ${scobj_hpath}/grp_stuff/units read ${ns}::getValue ${scobj_hpath} rdValue {UNITS?} + hsetprop ${scobj_hpath}/grp_stuff/units rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/units control false + hsetprop ${scobj_hpath}/grp_stuff/units data false + hsetprop ${scobj_hpath}/grp_stuff/units mutable true + hsetprop ${scobj_hpath}/grp_stuff/units nxsave false + hsetprop ${scobj_hpath}/grp_stuff/units oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/units sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/units type "part" + hsetprop ${scobj_hpath}/grp_stuff/units nxalias "${name}_grp_stuff_units" + + hfactory ${scobj_hpath}/grp_stuff/valves plain user text + hsetprop ${scobj_hpath}/grp_stuff/valves read ${ns}::getValue ${scobj_hpath} rdValue {VALVES?} + hsetprop ${scobj_hpath}/grp_stuff/valves rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/grp_stuff/valves control false + hsetprop ${scobj_hpath}/grp_stuff/valves data false + hsetprop ${scobj_hpath}/grp_stuff/valves mutable true + hsetprop ${scobj_hpath}/grp_stuff/valves nxsave false + hsetprop ${scobj_hpath}/grp_stuff/valves oldval UNKNOWN + hsetprop ${scobj_hpath}/grp_stuff/valves sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/grp_stuff/valves type "part" + hsetprop ${scobj_hpath}/grp_stuff/valves nxalias "${name}_grp_stuff_valves" + + if {[string equal -nocase "${simulation_flag}" "false"]} { + ${sct_controller} poll ${scobj_hpath}/grp_stuff/an_out 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/boardinfo 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/config 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/cprofinfo 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/dout 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/error 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/errors 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/flushpmp 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/head 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/head_par 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/identify 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/lpg 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/oem 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/opt 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/plim 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/pressure 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/prfastacq 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/purge 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/remote 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/rfid 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/service 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/sysinfo 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/units 600 + ${sct_controller} poll ${scobj_hpath}/grp_stuff/valves 600 } else { ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } @@ -1192,94 +1666,6 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/pump klass "@none" hsetprop ${scobj_hpath}/pump type "part" - hfactory ${scobj_hpath}/pump/flow_pv plain user float - hsetprop ${scobj_hpath}/pump/flow_pv read ${ns}::flow_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/pump/flow_pv rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/flow_pv control true - hsetprop ${scobj_hpath}/pump/flow_pv data true - hsetprop ${scobj_hpath}/pump/flow_pv mutable true - hsetprop ${scobj_hpath}/pump/flow_pv nxsave true - hsetprop ${scobj_hpath}/pump/flow_pv oldval 0.0 - hsetprop ${scobj_hpath}/pump/flow_pv klass "parameter" - hsetprop ${scobj_hpath}/pump/flow_pv sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/flow_pv type "part" - hsetprop ${scobj_hpath}/pump/flow_pv units "mL/min" - hsetprop ${scobj_hpath}/pump/flow_pv nxalias "${name}_pump_flow_pv" - - hfactory ${scobj_hpath}/pump/flow_sp plain user float - hsetprop ${scobj_hpath}/pump/flow_sp write ${ns}::flow_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/pump/flow_sp noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/flow_sp check ${ns}::checkrange ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/flow_sp control true - hsetprop ${scobj_hpath}/pump/flow_sp data true - hsetprop ${scobj_hpath}/pump/flow_sp mutable true - hsetprop ${scobj_hpath}/pump/flow_sp nxsave true - hsetprop ${scobj_hpath}/pump/flow_sp lowerlimit 0 - hsetprop ${scobj_hpath}/pump/flow_sp upperlimit 10 - hsetprop ${scobj_hpath}/pump/flow_sp oldval 1.0 - hset ${scobj_hpath}/pump/flow_sp 1.0 - hsetprop ${scobj_hpath}/pump/flow_sp klass "parameter" - hsetprop ${scobj_hpath}/pump/flow_sp sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/flow_sp type "part" - hsetprop ${scobj_hpath}/pump/flow_sp units "mL/min" - hsetprop ${scobj_hpath}/pump/flow_sp nxalias "${name}_pump_flow_sp" - - hfactory ${scobj_hpath}/pump/pump_sp plain user float - hsetprop ${scobj_hpath}/pump/pump_sp read ${ns}::pump_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/pump/pump_sp rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp write ${ns}::pump_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/pump/pump_sp noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp check ${ns}::checkrange ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp driving 0 - hsetprop ${scobj_hpath}/pump/pump_sp checklimits ${ns}::checklimits ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp checkstatus ${ns}::pump_checkstatus ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp halt ${ns}::pump_halt ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/pump_sp driveable pump/volume_pv - hsetprop ${scobj_hpath}/pump/pump_sp control true - hsetprop ${scobj_hpath}/pump/pump_sp data true - hsetprop ${scobj_hpath}/pump/pump_sp mutable true - hsetprop ${scobj_hpath}/pump/pump_sp nxsave true - hsetprop ${scobj_hpath}/pump/pump_sp lowerlimit 0 - hsetprop ${scobj_hpath}/pump/pump_sp upperlimit 100 - hsetprop ${scobj_hpath}/pump/pump_sp tolerance 0.01 - hsetprop ${scobj_hpath}/pump/pump_sp oldval 0.0 - hsetprop ${scobj_hpath}/pump/pump_sp klass "parameter" - hsetprop ${scobj_hpath}/pump/pump_sp sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/pump_sp this_state "0" - hsetprop ${scobj_hpath}/pump/pump_sp type "drivable" - hsetprop ${scobj_hpath}/pump/pump_sp units "mL" - hsetprop ${scobj_hpath}/pump/pump_sp nxalias "${name}_pump_pump_sp" - - hfactory ${scobj_hpath}/pump/ratio_pv plain user text - hsetprop ${scobj_hpath}/pump/ratio_pv read ${ns}::ratios_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/pump/ratio_pv rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/ratio_pv control true - hsetprop ${scobj_hpath}/pump/ratio_pv data true - hsetprop ${scobj_hpath}/pump/ratio_pv mutable true - hsetprop ${scobj_hpath}/pump/ratio_pv nxsave true - hsetprop ${scobj_hpath}/pump/ratio_pv oldval UNKNOWN - hsetprop ${scobj_hpath}/pump/ratio_pv klass "parameter" - hsetprop ${scobj_hpath}/pump/ratio_pv sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/ratio_pv type "part" - hsetprop ${scobj_hpath}/pump/ratio_pv units "percent" - hsetprop ${scobj_hpath}/pump/ratio_pv nxalias "${name}_pump_ratio_pv" - - hfactory ${scobj_hpath}/pump/ratio_sp plain user text - hsetprop ${scobj_hpath}/pump/ratio_sp write ${ns}::ratios_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/pump/ratio_sp noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/ratio_sp check ${ns}::ratios_check ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/ratio_sp control true - hsetprop ${scobj_hpath}/pump/ratio_sp data true - hsetprop ${scobj_hpath}/pump/ratio_sp mutable true - hsetprop ${scobj_hpath}/pump/ratio_sp nxsave true - hsetprop ${scobj_hpath}/pump/ratio_sp oldval 25/25/25/25 - hset ${scobj_hpath}/pump/ratio_sp 25/25/25/25 - hsetprop ${scobj_hpath}/pump/ratio_sp klass "parameter" - hsetprop ${scobj_hpath}/pump/ratio_sp sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/ratio_sp type "part" - hsetprop ${scobj_hpath}/pump/ratio_sp units "percent" - hsetprop ${scobj_hpath}/pump/ratio_sp nxalias "${name}_pump_ratio_sp" - hfactory ${scobj_hpath}/pump/remote plain user int hsetprop ${scobj_hpath}/pump/remote read ${ns}::getValue ${scobj_hpath} remote_read {REMOTE?} hsetprop ${scobj_hpath}/pump/remote remote_read ${ns}::remote_read ${scobj_hpath} @@ -1323,657 +1709,150 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/pump/status type "part" hsetprop ${scobj_hpath}/pump/status nxalias "${name}_pump_status" - hfactory ${scobj_hpath}/pump/volume_pv plain user float - hsetprop ${scobj_hpath}/pump/volume_pv read ${ns}::volume_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/pump/volume_pv rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_pv control true - hsetprop ${scobj_hpath}/pump/volume_pv data true - hsetprop ${scobj_hpath}/pump/volume_pv mutable true - hsetprop ${scobj_hpath}/pump/volume_pv nxsave true - hsetprop ${scobj_hpath}/pump/volume_pv oldval 0.0 - hsetprop ${scobj_hpath}/pump/volume_pv klass "parameter" - hsetprop ${scobj_hpath}/pump/volume_pv sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/volume_pv type "part" - hsetprop ${scobj_hpath}/pump/volume_pv units "mL" - hsetprop ${scobj_hpath}/pump/volume_pv nxalias "${name}_pump_volume_pv" - - hfactory ${scobj_hpath}/pump/volume_sp plain user float - hsetprop ${scobj_hpath}/pump/volume_sp read ${ns}::volume_checkpumping ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/pump/volume_sp rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp write ${ns}::volume_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/pump/volume_sp noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp check ${ns}::checkrange ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp driving 0 - hsetprop ${scobj_hpath}/pump/volume_sp checklimits ${ns}::checklimits ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp checkstatus ${ns}::volume_checkstatus ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp halt ${ns}::volume_halt ${scobj_hpath} - hsetprop ${scobj_hpath}/pump/volume_sp driveable pump/volume_pv - hsetprop ${scobj_hpath}/pump/volume_sp control true - hsetprop ${scobj_hpath}/pump/volume_sp data true - hsetprop ${scobj_hpath}/pump/volume_sp mutable true - hsetprop ${scobj_hpath}/pump/volume_sp nxsave true - hsetprop ${scobj_hpath}/pump/volume_sp lowerlimit 0 - hsetprop ${scobj_hpath}/pump/volume_sp upperlimit 100 - hsetprop ${scobj_hpath}/pump/volume_sp tolerance 0.01 - hsetprop ${scobj_hpath}/pump/volume_sp oldval 0.0 - hsetprop ${scobj_hpath}/pump/volume_sp klass "parameter" - hsetprop ${scobj_hpath}/pump/volume_sp sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/pump/volume_sp type "drivable" - hsetprop ${scobj_hpath}/pump/volume_sp units "mL" - hsetprop ${scobj_hpath}/pump/volume_sp nxalias "${name}_pump_volume_sp" - if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/pump/flow_pv 1 - ${sct_controller} poll ${scobj_hpath}/pump/pump_sp 1 - ${sct_controller} poll ${scobj_hpath}/pump/ratio_pv 1 ${sct_controller} poll ${scobj_hpath}/pump/remote 1 ${sct_controller} poll ${scobj_hpath}/pump/state 1 ${sct_controller} poll ${scobj_hpath}/pump/status 1 - ${sct_controller} poll ${scobj_hpath}/pump/volume_pv 1 - ${sct_controller} poll ${scobj_hpath}/pump/volume_sp 1 - ${sct_controller} write ${scobj_hpath}/pump/flow_sp - ${sct_controller} write ${scobj_hpath}/pump/pump_sp - ${sct_controller} write ${scobj_hpath}/pump/ratio_sp ${sct_controller} write ${scobj_hpath}/pump/remote - ${sct_controller} write ${scobj_hpath}/pump/volume_sp } else { ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } - hfactory ${scobj_hpath}/status plain spy none - hsetprop ${scobj_hpath}/status data "true" - hsetprop ${scobj_hpath}/status klass "@none" - hsetprop ${scobj_hpath}/status type "part" + hfactory ${scobj_hpath}/pump/flow plain spy none + hsetprop ${scobj_hpath}/pump/flow data "true" + hsetprop ${scobj_hpath}/pump/flow klass "@none" + hsetprop ${scobj_hpath}/pump/flow type "part" - hfactory ${scobj_hpath}/status/cur_error plain user text - hsetprop ${scobj_hpath}/status/cur_error read ${ns}::fetch_from_status ${scobj_hpath} rdValue {2} - hsetprop ${scobj_hpath}/status/cur_error rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/cur_error control true - hsetprop ${scobj_hpath}/status/cur_error data true - hsetprop ${scobj_hpath}/status/cur_error mutable true - hsetprop ${scobj_hpath}/status/cur_error nxsave true - hsetprop ${scobj_hpath}/status/cur_error oldval UNKNOWN - hsetprop ${scobj_hpath}/status/cur_error klass "parameter" - hsetprop ${scobj_hpath}/status/cur_error sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/cur_error type "part" - hsetprop ${scobj_hpath}/status/cur_error nxalias "${name}_status_cur_error" + hfactory ${scobj_hpath}/pump/flow/pval plain user float + hsetprop ${scobj_hpath}/pump/flow/pval read ${ns}::flow_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/flow/pval rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/flow/pval control true + hsetprop ${scobj_hpath}/pump/flow/pval data true + hsetprop ${scobj_hpath}/pump/flow/pval mutable true + hsetprop ${scobj_hpath}/pump/flow/pval nxsave true + hsetprop ${scobj_hpath}/pump/flow/pval oldval 0.0 + hsetprop ${scobj_hpath}/pump/flow/pval klass "parameter" + hsetprop ${scobj_hpath}/pump/flow/pval sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/flow/pval type "part" + hsetprop ${scobj_hpath}/pump/flow/pval units "mL/min" + hsetprop ${scobj_hpath}/pump/flow/pval nxalias "${name}_pump_flow_pval" - hfactory ${scobj_hpath}/status/cur_pres plain user text - hsetprop ${scobj_hpath}/status/cur_pres read ${ns}::fetch_from_status ${scobj_hpath} rdValue {17} - hsetprop ${scobj_hpath}/status/cur_pres rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/cur_pres control true - hsetprop ${scobj_hpath}/status/cur_pres data true - hsetprop ${scobj_hpath}/status/cur_pres mutable true - hsetprop ${scobj_hpath}/status/cur_pres nxsave true - hsetprop ${scobj_hpath}/status/cur_pres oldval UNKNOWN - hsetprop ${scobj_hpath}/status/cur_pres klass "parameter" - hsetprop ${scobj_hpath}/status/cur_pres sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/cur_pres type "part" - hsetprop ${scobj_hpath}/status/cur_pres nxalias "${name}_status_cur_pres" - - hfactory ${scobj_hpath}/status/cur_run_time plain user text - hsetprop ${scobj_hpath}/status/cur_run_time read ${ns}::fetch_from_status ${scobj_hpath} rdValue {3} - hsetprop ${scobj_hpath}/status/cur_run_time rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/cur_run_time control true - hsetprop ${scobj_hpath}/status/cur_run_time data true - hsetprop ${scobj_hpath}/status/cur_run_time mutable true - hsetprop ${scobj_hpath}/status/cur_run_time nxsave true - hsetprop ${scobj_hpath}/status/cur_run_time oldval UNKNOWN - hsetprop ${scobj_hpath}/status/cur_run_time klass "parameter" - hsetprop ${scobj_hpath}/status/cur_run_time sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/cur_run_time type "part" - hsetprop ${scobj_hpath}/status/cur_run_time nxalias "${name}_status_cur_run_time" - - hfactory ${scobj_hpath}/status/error_in plain user text - hsetprop ${scobj_hpath}/status/error_in read ${ns}::fetch_from_status ${scobj_hpath} rdValue {19} - hsetprop ${scobj_hpath}/status/error_in rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/error_in control true - hsetprop ${scobj_hpath}/status/error_in data true - hsetprop ${scobj_hpath}/status/error_in mutable true - hsetprop ${scobj_hpath}/status/error_in nxsave true - hsetprop ${scobj_hpath}/status/error_in oldval UNKNOWN - hsetprop ${scobj_hpath}/status/error_in klass "parameter" - hsetprop ${scobj_hpath}/status/error_in sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/error_in type "part" - hsetprop ${scobj_hpath}/status/error_in nxalias "${name}_status_error_in" - - hfactory ${scobj_hpath}/status/evt_0 plain user text - hsetprop ${scobj_hpath}/status/evt_0 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {9} - hsetprop ${scobj_hpath}/status/evt_0 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_0 control true - hsetprop ${scobj_hpath}/status/evt_0 data true - hsetprop ${scobj_hpath}/status/evt_0 mutable true - hsetprop ${scobj_hpath}/status/evt_0 nxsave true - hsetprop ${scobj_hpath}/status/evt_0 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_0 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_0 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_0 type "part" - hsetprop ${scobj_hpath}/status/evt_0 nxalias "${name}_status_evt_0" - - hfactory ${scobj_hpath}/status/evt_1 plain user text - hsetprop ${scobj_hpath}/status/evt_1 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {10} - hsetprop ${scobj_hpath}/status/evt_1 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_1 control true - hsetprop ${scobj_hpath}/status/evt_1 data true - hsetprop ${scobj_hpath}/status/evt_1 mutable true - hsetprop ${scobj_hpath}/status/evt_1 nxsave true - hsetprop ${scobj_hpath}/status/evt_1 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_1 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_1 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_1 type "part" - hsetprop ${scobj_hpath}/status/evt_1 nxalias "${name}_status_evt_1" - - hfactory ${scobj_hpath}/status/evt_2 plain user text - hsetprop ${scobj_hpath}/status/evt_2 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {11} - hsetprop ${scobj_hpath}/status/evt_2 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_2 control true - hsetprop ${scobj_hpath}/status/evt_2 data true - hsetprop ${scobj_hpath}/status/evt_2 mutable true - hsetprop ${scobj_hpath}/status/evt_2 nxsave true - hsetprop ${scobj_hpath}/status/evt_2 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_2 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_2 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_2 type "part" - hsetprop ${scobj_hpath}/status/evt_2 nxalias "${name}_status_evt_2" - - hfactory ${scobj_hpath}/status/evt_3 plain user text - hsetprop ${scobj_hpath}/status/evt_3 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {12} - hsetprop ${scobj_hpath}/status/evt_3 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_3 control true - hsetprop ${scobj_hpath}/status/evt_3 data true - hsetprop ${scobj_hpath}/status/evt_3 mutable true - hsetprop ${scobj_hpath}/status/evt_3 nxsave true - hsetprop ${scobj_hpath}/status/evt_3 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_3 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_3 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_3 type "part" - hsetprop ${scobj_hpath}/status/evt_3 nxalias "${name}_status_evt_3" - - hfactory ${scobj_hpath}/status/evt_4 plain user text - hsetprop ${scobj_hpath}/status/evt_4 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {13} - hsetprop ${scobj_hpath}/status/evt_4 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_4 control true - hsetprop ${scobj_hpath}/status/evt_4 data true - hsetprop ${scobj_hpath}/status/evt_4 mutable true - hsetprop ${scobj_hpath}/status/evt_4 nxsave true - hsetprop ${scobj_hpath}/status/evt_4 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_4 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_4 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_4 type "part" - hsetprop ${scobj_hpath}/status/evt_4 nxalias "${name}_status_evt_4" - - hfactory ${scobj_hpath}/status/evt_5 plain user text - hsetprop ${scobj_hpath}/status/evt_5 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {14} - hsetprop ${scobj_hpath}/status/evt_5 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_5 control true - hsetprop ${scobj_hpath}/status/evt_5 data true - hsetprop ${scobj_hpath}/status/evt_5 mutable true - hsetprop ${scobj_hpath}/status/evt_5 nxsave true - hsetprop ${scobj_hpath}/status/evt_5 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_5 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_5 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_5 type "part" - hsetprop ${scobj_hpath}/status/evt_5 nxalias "${name}_status_evt_5" - - hfactory ${scobj_hpath}/status/evt_6 plain user text - hsetprop ${scobj_hpath}/status/evt_6 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {15} - hsetprop ${scobj_hpath}/status/evt_6 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_6 control true - hsetprop ${scobj_hpath}/status/evt_6 data true - hsetprop ${scobj_hpath}/status/evt_6 mutable true - hsetprop ${scobj_hpath}/status/evt_6 nxsave true - hsetprop ${scobj_hpath}/status/evt_6 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_6 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_6 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_6 type "part" - hsetprop ${scobj_hpath}/status/evt_6 nxalias "${name}_status_evt_6" - - hfactory ${scobj_hpath}/status/evt_7 plain user text - hsetprop ${scobj_hpath}/status/evt_7 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {16} - hsetprop ${scobj_hpath}/status/evt_7 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/evt_7 control true - hsetprop ${scobj_hpath}/status/evt_7 data true - hsetprop ${scobj_hpath}/status/evt_7 mutable true - hsetprop ${scobj_hpath}/status/evt_7 nxsave true - hsetprop ${scobj_hpath}/status/evt_7 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/evt_7 klass "parameter" - hsetprop ${scobj_hpath}/status/evt_7 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/evt_7 type "part" - hsetprop ${scobj_hpath}/status/evt_7 nxalias "${name}_status_evt_7" - - hfactory ${scobj_hpath}/status/flow_rate plain user text - hsetprop ${scobj_hpath}/status/flow_rate read ${ns}::fetch_from_status ${scobj_hpath} rdValue {4} - hsetprop ${scobj_hpath}/status/flow_rate rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/flow_rate control true - hsetprop ${scobj_hpath}/status/flow_rate data true - hsetprop ${scobj_hpath}/status/flow_rate mutable true - hsetprop ${scobj_hpath}/status/flow_rate nxsave true - hsetprop ${scobj_hpath}/status/flow_rate oldval UNKNOWN - hsetprop ${scobj_hpath}/status/flow_rate klass "parameter" - hsetprop ${scobj_hpath}/status/flow_rate sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/flow_rate type "part" - hsetprop ${scobj_hpath}/status/flow_rate nxalias "${name}_status_flow_rate" - - hfactory ${scobj_hpath}/status/lpg_0 plain user text - hsetprop ${scobj_hpath}/status/lpg_0 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {5} - hsetprop ${scobj_hpath}/status/lpg_0 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/lpg_0 control true - hsetprop ${scobj_hpath}/status/lpg_0 data true - hsetprop ${scobj_hpath}/status/lpg_0 mutable true - hsetprop ${scobj_hpath}/status/lpg_0 nxsave true - hsetprop ${scobj_hpath}/status/lpg_0 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/lpg_0 klass "parameter" - hsetprop ${scobj_hpath}/status/lpg_0 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/lpg_0 type "part" - hsetprop ${scobj_hpath}/status/lpg_0 nxalias "${name}_status_lpg_0" - - hfactory ${scobj_hpath}/status/lpg_1 plain user text - hsetprop ${scobj_hpath}/status/lpg_1 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {6} - hsetprop ${scobj_hpath}/status/lpg_1 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/lpg_1 control true - hsetprop ${scobj_hpath}/status/lpg_1 data true - hsetprop ${scobj_hpath}/status/lpg_1 mutable true - hsetprop ${scobj_hpath}/status/lpg_1 nxsave true - hsetprop ${scobj_hpath}/status/lpg_1 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/lpg_1 klass "parameter" - hsetprop ${scobj_hpath}/status/lpg_1 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/lpg_1 type "part" - hsetprop ${scobj_hpath}/status/lpg_1 nxalias "${name}_status_lpg_1" - - hfactory ${scobj_hpath}/status/lpg_2 plain user text - hsetprop ${scobj_hpath}/status/lpg_2 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {7} - hsetprop ${scobj_hpath}/status/lpg_2 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/lpg_2 control true - hsetprop ${scobj_hpath}/status/lpg_2 data true - hsetprop ${scobj_hpath}/status/lpg_2 mutable true - hsetprop ${scobj_hpath}/status/lpg_2 nxsave true - hsetprop ${scobj_hpath}/status/lpg_2 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/lpg_2 klass "parameter" - hsetprop ${scobj_hpath}/status/lpg_2 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/lpg_2 type "part" - hsetprop ${scobj_hpath}/status/lpg_2 nxalias "${name}_status_lpg_2" - - hfactory ${scobj_hpath}/status/lpg_3 plain user text - hsetprop ${scobj_hpath}/status/lpg_3 read ${ns}::fetch_from_status ${scobj_hpath} rdValue {8} - hsetprop ${scobj_hpath}/status/lpg_3 rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/lpg_3 control true - hsetprop ${scobj_hpath}/status/lpg_3 data true - hsetprop ${scobj_hpath}/status/lpg_3 mutable true - hsetprop ${scobj_hpath}/status/lpg_3 nxsave true - hsetprop ${scobj_hpath}/status/lpg_3 oldval UNKNOWN - hsetprop ${scobj_hpath}/status/lpg_3 klass "parameter" - hsetprop ${scobj_hpath}/status/lpg_3 sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/lpg_3 type "part" - hsetprop ${scobj_hpath}/status/lpg_3 nxalias "${name}_status_lpg_3" - - hfactory ${scobj_hpath}/status/start_in plain user text - hsetprop ${scobj_hpath}/status/start_in read ${ns}::fetch_from_status ${scobj_hpath} rdValue {18} - hsetprop ${scobj_hpath}/status/start_in rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/start_in control true - hsetprop ${scobj_hpath}/status/start_in data true - hsetprop ${scobj_hpath}/status/start_in mutable true - hsetprop ${scobj_hpath}/status/start_in nxsave true - hsetprop ${scobj_hpath}/status/start_in oldval UNKNOWN - hsetprop ${scobj_hpath}/status/start_in klass "parameter" - hsetprop ${scobj_hpath}/status/start_in sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/start_in type "part" - hsetprop ${scobj_hpath}/status/start_in nxalias "${name}_status_start_in" - - hfactory ${scobj_hpath}/status/state plain user text - hsetprop ${scobj_hpath}/status/state read ${ns}::fetch_from_status ${scobj_hpath} rdValue {1} - hsetprop ${scobj_hpath}/status/state rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/status/state control true - hsetprop ${scobj_hpath}/status/state data true - hsetprop ${scobj_hpath}/status/state mutable true - hsetprop ${scobj_hpath}/status/state nxsave true - hsetprop ${scobj_hpath}/status/state oldval UNKNOWN - hsetprop ${scobj_hpath}/status/state klass "parameter" - hsetprop ${scobj_hpath}/status/state sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/status/state type "part" - hsetprop ${scobj_hpath}/status/state nxalias "${name}_status_state" + hfactory ${scobj_hpath}/pump/flow/setp plain user float + hsetprop ${scobj_hpath}/pump/flow/setp write ${ns}::flow_write ${scobj_hpath} noResponse { } + hsetprop ${scobj_hpath}/pump/flow/setp noResponse ${ns}::noResponse ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/flow/setp check ${ns}::checkrange ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/flow/setp control true + hsetprop ${scobj_hpath}/pump/flow/setp data true + hsetprop ${scobj_hpath}/pump/flow/setp mutable true + hsetprop ${scobj_hpath}/pump/flow/setp nxsave true + hsetprop ${scobj_hpath}/pump/flow/setp lowerlimit 0 + hsetprop ${scobj_hpath}/pump/flow/setp upperlimit 10 + hsetprop ${scobj_hpath}/pump/flow/setp oldval 1.0 + hset ${scobj_hpath}/pump/flow/setp 1.0 + hsetprop ${scobj_hpath}/pump/flow/setp klass "parameter" + hsetprop ${scobj_hpath}/pump/flow/setp sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/flow/setp type "part" + hsetprop ${scobj_hpath}/pump/flow/setp units "mL/min" + hsetprop ${scobj_hpath}/pump/flow/setp nxalias "${name}_pump_flow_setp" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/status/cur_error 1 - ${sct_controller} poll ${scobj_hpath}/status/cur_pres 1 - ${sct_controller} poll ${scobj_hpath}/status/cur_run_time 1 - ${sct_controller} poll ${scobj_hpath}/status/error_in 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_0 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_1 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_2 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_3 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_4 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_5 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_6 1 - ${sct_controller} poll ${scobj_hpath}/status/evt_7 1 - ${sct_controller} poll ${scobj_hpath}/status/flow_rate 1 - ${sct_controller} poll ${scobj_hpath}/status/lpg_0 1 - ${sct_controller} poll ${scobj_hpath}/status/lpg_1 1 - ${sct_controller} poll ${scobj_hpath}/status/lpg_2 1 - ${sct_controller} poll ${scobj_hpath}/status/lpg_3 1 - ${sct_controller} poll ${scobj_hpath}/status/start_in 1 - ${sct_controller} poll ${scobj_hpath}/status/state 1 + ${sct_controller} poll ${scobj_hpath}/pump/flow/pval 1 + ${sct_controller} write ${scobj_hpath}/pump/flow/setp } else { ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } - hfactory ${scobj_hpath}/stuff plain spy none - hsetprop ${scobj_hpath}/stuff data "false" - hsetprop ${scobj_hpath}/stuff klass "@none" - hsetprop ${scobj_hpath}/stuff type "part" + hfactory ${scobj_hpath}/pump/ratio plain spy none + hsetprop ${scobj_hpath}/pump/ratio data "true" + hsetprop ${scobj_hpath}/pump/ratio klass "@none" + hsetprop ${scobj_hpath}/pump/ratio type "part" - hfactory ${scobj_hpath}/stuff/an_out plain user text - hsetprop ${scobj_hpath}/stuff/an_out read ${ns}::getValue ${scobj_hpath} rdValue {AN_OUT?} - hsetprop ${scobj_hpath}/stuff/an_out rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/an_out control false - hsetprop ${scobj_hpath}/stuff/an_out data false - hsetprop ${scobj_hpath}/stuff/an_out mutable true - hsetprop ${scobj_hpath}/stuff/an_out nxsave false - hsetprop ${scobj_hpath}/stuff/an_out oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/an_out sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/an_out type "part" - hsetprop ${scobj_hpath}/stuff/an_out nxalias "${name}_stuff_an_out" + hfactory ${scobj_hpath}/pump/ratio/pval plain user text + hsetprop ${scobj_hpath}/pump/ratio/pval read ${ns}::ratio_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/ratio/pval rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/ratio/pval control true + hsetprop ${scobj_hpath}/pump/ratio/pval data true + hsetprop ${scobj_hpath}/pump/ratio/pval mutable true + hsetprop ${scobj_hpath}/pump/ratio/pval nxsave true + hsetprop ${scobj_hpath}/pump/ratio/pval oldval UNKNOWN + hsetprop ${scobj_hpath}/pump/ratio/pval klass "parameter" + hsetprop ${scobj_hpath}/pump/ratio/pval sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/ratio/pval type "part" + hsetprop ${scobj_hpath}/pump/ratio/pval units "percent" + hsetprop ${scobj_hpath}/pump/ratio/pval nxalias "${name}_pump_ratio_pval" - hfactory ${scobj_hpath}/stuff/boardinfo plain user text - hsetprop ${scobj_hpath}/stuff/boardinfo read ${ns}::getValue ${scobj_hpath} rdValue {BOARDINFO?} - hsetprop ${scobj_hpath}/stuff/boardinfo rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/boardinfo control false - hsetprop ${scobj_hpath}/stuff/boardinfo data false - hsetprop ${scobj_hpath}/stuff/boardinfo mutable true - hsetprop ${scobj_hpath}/stuff/boardinfo nxsave false - hsetprop ${scobj_hpath}/stuff/boardinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/boardinfo sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/boardinfo type "part" - hsetprop ${scobj_hpath}/stuff/boardinfo nxalias "${name}_stuff_boardinfo" - - hfactory ${scobj_hpath}/stuff/config plain user text - hsetprop ${scobj_hpath}/stuff/config read ${ns}::getValue ${scobj_hpath} rdValue {CONFIG?} - hsetprop ${scobj_hpath}/stuff/config rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/config control false - hsetprop ${scobj_hpath}/stuff/config data false - hsetprop ${scobj_hpath}/stuff/config mutable true - hsetprop ${scobj_hpath}/stuff/config nxsave false - hsetprop ${scobj_hpath}/stuff/config oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/config sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/config type "part" - hsetprop ${scobj_hpath}/stuff/config nxalias "${name}_stuff_config" - - hfactory ${scobj_hpath}/stuff/cprofinfo plain user text - hsetprop ${scobj_hpath}/stuff/cprofinfo read ${ns}::getValue ${scobj_hpath} rdValue {CPROFINFO?} - hsetprop ${scobj_hpath}/stuff/cprofinfo rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/cprofinfo control false - hsetprop ${scobj_hpath}/stuff/cprofinfo data false - hsetprop ${scobj_hpath}/stuff/cprofinfo mutable true - hsetprop ${scobj_hpath}/stuff/cprofinfo nxsave false - hsetprop ${scobj_hpath}/stuff/cprofinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/cprofinfo sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/cprofinfo type "part" - hsetprop ${scobj_hpath}/stuff/cprofinfo nxalias "${name}_stuff_cprofinfo" - - hfactory ${scobj_hpath}/stuff/dout plain user text - hsetprop ${scobj_hpath}/stuff/dout read ${ns}::getValue ${scobj_hpath} rdValue {DOUT?} - hsetprop ${scobj_hpath}/stuff/dout rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/dout control false - hsetprop ${scobj_hpath}/stuff/dout data false - hsetprop ${scobj_hpath}/stuff/dout mutable true - hsetprop ${scobj_hpath}/stuff/dout nxsave false - hsetprop ${scobj_hpath}/stuff/dout oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/dout sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/dout type "part" - hsetprop ${scobj_hpath}/stuff/dout nxalias "${name}_stuff_dout" - - hfactory ${scobj_hpath}/stuff/error plain user text - hsetprop ${scobj_hpath}/stuff/error read ${ns}::getValue ${scobj_hpath} rdValue {ERROR?} - hsetprop ${scobj_hpath}/stuff/error rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/error control false - hsetprop ${scobj_hpath}/stuff/error data false - hsetprop ${scobj_hpath}/stuff/error mutable true - hsetprop ${scobj_hpath}/stuff/error nxsave false - hsetprop ${scobj_hpath}/stuff/error oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/error sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/error type "part" - hsetprop ${scobj_hpath}/stuff/error nxalias "${name}_stuff_error" - - hfactory ${scobj_hpath}/stuff/errors plain user text - hsetprop ${scobj_hpath}/stuff/errors read ${ns}::getValue ${scobj_hpath} rdValue {ERRORS?} - hsetprop ${scobj_hpath}/stuff/errors rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/errors control false - hsetprop ${scobj_hpath}/stuff/errors data false - hsetprop ${scobj_hpath}/stuff/errors mutable true - hsetprop ${scobj_hpath}/stuff/errors nxsave false - hsetprop ${scobj_hpath}/stuff/errors oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/errors sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/errors type "part" - hsetprop ${scobj_hpath}/stuff/errors nxalias "${name}_stuff_errors" - - hfactory ${scobj_hpath}/stuff/flushpmp plain user text - hsetprop ${scobj_hpath}/stuff/flushpmp read ${ns}::getValue ${scobj_hpath} rdValue {FLUSHPMP?} - hsetprop ${scobj_hpath}/stuff/flushpmp rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/flushpmp control false - hsetprop ${scobj_hpath}/stuff/flushpmp data false - hsetprop ${scobj_hpath}/stuff/flushpmp mutable true - hsetprop ${scobj_hpath}/stuff/flushpmp nxsave false - hsetprop ${scobj_hpath}/stuff/flushpmp oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/flushpmp sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/flushpmp type "part" - hsetprop ${scobj_hpath}/stuff/flushpmp nxalias "${name}_stuff_flushpmp" - - hfactory ${scobj_hpath}/stuff/head plain user text - hsetprop ${scobj_hpath}/stuff/head read ${ns}::getValue ${scobj_hpath} rdValue {HEAD?} - hsetprop ${scobj_hpath}/stuff/head rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/head control false - hsetprop ${scobj_hpath}/stuff/head data false - hsetprop ${scobj_hpath}/stuff/head mutable true - hsetprop ${scobj_hpath}/stuff/head nxsave false - hsetprop ${scobj_hpath}/stuff/head oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/head sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/head type "part" - hsetprop ${scobj_hpath}/stuff/head nxalias "${name}_stuff_head" - - hfactory ${scobj_hpath}/stuff/head_par plain user text - hsetprop ${scobj_hpath}/stuff/head_par read ${ns}::getValue ${scobj_hpath} rdValue {HEAD_PAR?} - hsetprop ${scobj_hpath}/stuff/head_par rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/head_par control false - hsetprop ${scobj_hpath}/stuff/head_par data false - hsetprop ${scobj_hpath}/stuff/head_par mutable true - hsetprop ${scobj_hpath}/stuff/head_par nxsave false - hsetprop ${scobj_hpath}/stuff/head_par oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/head_par sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/head_par type "part" - hsetprop ${scobj_hpath}/stuff/head_par nxalias "${name}_stuff_head_par" - - hfactory ${scobj_hpath}/stuff/identify plain user text - hsetprop ${scobj_hpath}/stuff/identify read ${ns}::getValue ${scobj_hpath} rdValue {IDENTIFY?} - hsetprop ${scobj_hpath}/stuff/identify rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/identify control false - hsetprop ${scobj_hpath}/stuff/identify data false - hsetprop ${scobj_hpath}/stuff/identify mutable true - hsetprop ${scobj_hpath}/stuff/identify nxsave false - hsetprop ${scobj_hpath}/stuff/identify oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/identify sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/identify type "part" - hsetprop ${scobj_hpath}/stuff/identify nxalias "${name}_stuff_identify" - - hfactory ${scobj_hpath}/stuff/lpg plain user text - hsetprop ${scobj_hpath}/stuff/lpg read ${ns}::getValue ${scobj_hpath} rdValue {LPG?} - hsetprop ${scobj_hpath}/stuff/lpg rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/lpg control false - hsetprop ${scobj_hpath}/stuff/lpg data false - hsetprop ${scobj_hpath}/stuff/lpg mutable true - hsetprop ${scobj_hpath}/stuff/lpg nxsave false - hsetprop ${scobj_hpath}/stuff/lpg oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/lpg sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/lpg type "part" - hsetprop ${scobj_hpath}/stuff/lpg nxalias "${name}_stuff_lpg" - - hfactory ${scobj_hpath}/stuff/oem plain user text - hsetprop ${scobj_hpath}/stuff/oem read ${ns}::getValue ${scobj_hpath} rdValue {OEM?} - hsetprop ${scobj_hpath}/stuff/oem rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/oem control false - hsetprop ${scobj_hpath}/stuff/oem data false - hsetprop ${scobj_hpath}/stuff/oem mutable true - hsetprop ${scobj_hpath}/stuff/oem nxsave false - hsetprop ${scobj_hpath}/stuff/oem oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/oem sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/oem type "part" - hsetprop ${scobj_hpath}/stuff/oem nxalias "${name}_stuff_oem" - - hfactory ${scobj_hpath}/stuff/opt plain user text - hsetprop ${scobj_hpath}/stuff/opt read ${ns}::getValue ${scobj_hpath} rdValue {OPT?} - hsetprop ${scobj_hpath}/stuff/opt rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/opt control false - hsetprop ${scobj_hpath}/stuff/opt data false - hsetprop ${scobj_hpath}/stuff/opt mutable true - hsetprop ${scobj_hpath}/stuff/opt nxsave false - hsetprop ${scobj_hpath}/stuff/opt oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/opt sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/opt type "part" - hsetprop ${scobj_hpath}/stuff/opt nxalias "${name}_stuff_opt" - - hfactory ${scobj_hpath}/stuff/plim plain user text - hsetprop ${scobj_hpath}/stuff/plim read ${ns}::getValue ${scobj_hpath} rdValue {PLIM?} - hsetprop ${scobj_hpath}/stuff/plim rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/plim control false - hsetprop ${scobj_hpath}/stuff/plim data false - hsetprop ${scobj_hpath}/stuff/plim mutable true - hsetprop ${scobj_hpath}/stuff/plim nxsave false - hsetprop ${scobj_hpath}/stuff/plim oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/plim sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/plim type "part" - hsetprop ${scobj_hpath}/stuff/plim nxalias "${name}_stuff_plim" - - hfactory ${scobj_hpath}/stuff/pressure plain user text - hsetprop ${scobj_hpath}/stuff/pressure read ${ns}::getValue ${scobj_hpath} rdValue {PRESSURE?} - hsetprop ${scobj_hpath}/stuff/pressure rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/pressure control false - hsetprop ${scobj_hpath}/stuff/pressure data false - hsetprop ${scobj_hpath}/stuff/pressure mutable true - hsetprop ${scobj_hpath}/stuff/pressure nxsave false - hsetprop ${scobj_hpath}/stuff/pressure oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/pressure sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/pressure type "part" - hsetprop ${scobj_hpath}/stuff/pressure nxalias "${name}_stuff_pressure" - - hfactory ${scobj_hpath}/stuff/prfastacq plain user text - hsetprop ${scobj_hpath}/stuff/prfastacq read ${ns}::getValue ${scobj_hpath} rdValue {PRFASTACQ?} - hsetprop ${scobj_hpath}/stuff/prfastacq rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/prfastacq control false - hsetprop ${scobj_hpath}/stuff/prfastacq data false - hsetprop ${scobj_hpath}/stuff/prfastacq mutable true - hsetprop ${scobj_hpath}/stuff/prfastacq nxsave false - hsetprop ${scobj_hpath}/stuff/prfastacq oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/prfastacq sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/prfastacq type "part" - hsetprop ${scobj_hpath}/stuff/prfastacq nxalias "${name}_stuff_prfastacq" - - hfactory ${scobj_hpath}/stuff/purge plain user text - hsetprop ${scobj_hpath}/stuff/purge read ${ns}::getValue ${scobj_hpath} rdValue {PURGE?} - hsetprop ${scobj_hpath}/stuff/purge rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/purge control false - hsetprop ${scobj_hpath}/stuff/purge data false - hsetprop ${scobj_hpath}/stuff/purge mutable true - hsetprop ${scobj_hpath}/stuff/purge nxsave false - hsetprop ${scobj_hpath}/stuff/purge oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/purge sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/purge type "part" - hsetprop ${scobj_hpath}/stuff/purge nxalias "${name}_stuff_purge" - - hfactory ${scobj_hpath}/stuff/remote plain user text - hsetprop ${scobj_hpath}/stuff/remote read ${ns}::getValue ${scobj_hpath} rdValue {REMOTE?} - hsetprop ${scobj_hpath}/stuff/remote rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/remote control false - hsetprop ${scobj_hpath}/stuff/remote data false - hsetprop ${scobj_hpath}/stuff/remote mutable true - hsetprop ${scobj_hpath}/stuff/remote nxsave false - hsetprop ${scobj_hpath}/stuff/remote oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/remote sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/remote type "part" - hsetprop ${scobj_hpath}/stuff/remote nxalias "${name}_stuff_remote" - - hfactory ${scobj_hpath}/stuff/rfid plain user text - hsetprop ${scobj_hpath}/stuff/rfid read ${ns}::getValue ${scobj_hpath} rdValue {RFID?} - hsetprop ${scobj_hpath}/stuff/rfid rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/rfid control false - hsetprop ${scobj_hpath}/stuff/rfid data false - hsetprop ${scobj_hpath}/stuff/rfid mutable true - hsetprop ${scobj_hpath}/stuff/rfid nxsave false - hsetprop ${scobj_hpath}/stuff/rfid oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/rfid sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/rfid type "part" - hsetprop ${scobj_hpath}/stuff/rfid nxalias "${name}_stuff_rfid" - - hfactory ${scobj_hpath}/stuff/service plain user text - hsetprop ${scobj_hpath}/stuff/service read ${ns}::getValue ${scobj_hpath} rdValue {SERVICE?} - hsetprop ${scobj_hpath}/stuff/service rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/service control false - hsetprop ${scobj_hpath}/stuff/service data false - hsetprop ${scobj_hpath}/stuff/service mutable true - hsetprop ${scobj_hpath}/stuff/service nxsave false - hsetprop ${scobj_hpath}/stuff/service oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/service sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/service type "part" - hsetprop ${scobj_hpath}/stuff/service nxalias "${name}_stuff_service" - - hfactory ${scobj_hpath}/stuff/sysinfo plain user text - hsetprop ${scobj_hpath}/stuff/sysinfo read ${ns}::getValue ${scobj_hpath} rdValue {SYSINFO?} - hsetprop ${scobj_hpath}/stuff/sysinfo rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/sysinfo control false - hsetprop ${scobj_hpath}/stuff/sysinfo data false - hsetprop ${scobj_hpath}/stuff/sysinfo mutable true - hsetprop ${scobj_hpath}/stuff/sysinfo nxsave false - hsetprop ${scobj_hpath}/stuff/sysinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/sysinfo sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/sysinfo type "part" - hsetprop ${scobj_hpath}/stuff/sysinfo nxalias "${name}_stuff_sysinfo" - - hfactory ${scobj_hpath}/stuff/units plain user text - hsetprop ${scobj_hpath}/stuff/units read ${ns}::getValue ${scobj_hpath} rdValue {UNITS?} - hsetprop ${scobj_hpath}/stuff/units rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/units control false - hsetprop ${scobj_hpath}/stuff/units data false - hsetprop ${scobj_hpath}/stuff/units mutable true - hsetprop ${scobj_hpath}/stuff/units nxsave false - hsetprop ${scobj_hpath}/stuff/units oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/units sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/units type "part" - hsetprop ${scobj_hpath}/stuff/units nxalias "${name}_stuff_units" - - hfactory ${scobj_hpath}/stuff/valves plain user text - hsetprop ${scobj_hpath}/stuff/valves read ${ns}::getValue ${scobj_hpath} rdValue {VALVES?} - hsetprop ${scobj_hpath}/stuff/valves rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/stuff/valves control false - hsetprop ${scobj_hpath}/stuff/valves data false - hsetprop ${scobj_hpath}/stuff/valves mutable true - hsetprop ${scobj_hpath}/stuff/valves nxsave false - hsetprop ${scobj_hpath}/stuff/valves oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/valves sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/stuff/valves type "part" - hsetprop ${scobj_hpath}/stuff/valves nxalias "${name}_stuff_valves" + hfactory ${scobj_hpath}/pump/ratio/setp plain user text + hsetprop ${scobj_hpath}/pump/ratio/setp write ${ns}::ratio_write ${scobj_hpath} noResponse { } + hsetprop ${scobj_hpath}/pump/ratio/setp noResponse ${ns}::noResponse ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/ratio/setp check ${ns}::ratio_check ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/ratio/setp control true + hsetprop ${scobj_hpath}/pump/ratio/setp data true + hsetprop ${scobj_hpath}/pump/ratio/setp mutable true + hsetprop ${scobj_hpath}/pump/ratio/setp nxsave true + hsetprop ${scobj_hpath}/pump/ratio/setp oldval 25/25/25/25 + hset ${scobj_hpath}/pump/ratio/setp 25/25/25/25 + hsetprop ${scobj_hpath}/pump/ratio/setp klass "parameter" + hsetprop ${scobj_hpath}/pump/ratio/setp sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/ratio/setp type "part" + hsetprop ${scobj_hpath}/pump/ratio/setp units "percent" + hsetprop ${scobj_hpath}/pump/ratio/setp nxalias "${name}_pump_ratio_setp" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/stuff/an_out 600 - ${sct_controller} poll ${scobj_hpath}/stuff/boardinfo 600 - ${sct_controller} poll ${scobj_hpath}/stuff/config 600 - ${sct_controller} poll ${scobj_hpath}/stuff/cprofinfo 600 - ${sct_controller} poll ${scobj_hpath}/stuff/dout 600 - ${sct_controller} poll ${scobj_hpath}/stuff/error 600 - ${sct_controller} poll ${scobj_hpath}/stuff/errors 600 - ${sct_controller} poll ${scobj_hpath}/stuff/flushpmp 600 - ${sct_controller} poll ${scobj_hpath}/stuff/head 600 - ${sct_controller} poll ${scobj_hpath}/stuff/head_par 600 - ${sct_controller} poll ${scobj_hpath}/stuff/identify 600 - ${sct_controller} poll ${scobj_hpath}/stuff/lpg 600 - ${sct_controller} poll ${scobj_hpath}/stuff/oem 600 - ${sct_controller} poll ${scobj_hpath}/stuff/opt 600 - ${sct_controller} poll ${scobj_hpath}/stuff/plim 600 - ${sct_controller} poll ${scobj_hpath}/stuff/pressure 600 - ${sct_controller} poll ${scobj_hpath}/stuff/prfastacq 600 - ${sct_controller} poll ${scobj_hpath}/stuff/purge 600 - ${sct_controller} poll ${scobj_hpath}/stuff/remote 600 - ${sct_controller} poll ${scobj_hpath}/stuff/rfid 600 - ${sct_controller} poll ${scobj_hpath}/stuff/service 600 - ${sct_controller} poll ${scobj_hpath}/stuff/sysinfo 600 - ${sct_controller} poll ${scobj_hpath}/stuff/units 600 - ${sct_controller} poll ${scobj_hpath}/stuff/valves 600 + ${sct_controller} poll ${scobj_hpath}/pump/ratio/pval 1 + ${sct_controller} write ${scobj_hpath}/pump/ratio/setp + } else { + ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" + } + + hfactory ${scobj_hpath}/pump/volume plain spy none + hsetprop ${scobj_hpath}/pump/volume data "true" + hsetprop ${scobj_hpath}/pump/volume klass "@none" + hsetprop ${scobj_hpath}/pump/volume type "part" + + hfactory ${scobj_hpath}/pump/volume/pval plain user float + hsetprop ${scobj_hpath}/pump/volume/pval read ${ns}::volume_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/volume/pval rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/pval control true + hsetprop ${scobj_hpath}/pump/volume/pval data true + hsetprop ${scobj_hpath}/pump/volume/pval mutable true + hsetprop ${scobj_hpath}/pump/volume/pval nxsave true + hsetprop ${scobj_hpath}/pump/volume/pval oldval 0.0 + hsetprop ${scobj_hpath}/pump/volume/pval klass "parameter" + hsetprop ${scobj_hpath}/pump/volume/pval sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/volume/pval type "part" + hsetprop ${scobj_hpath}/pump/volume/pval units "mL" + hsetprop ${scobj_hpath}/pump/volume/pval nxalias "${name}_pump_volume_pval" + + hfactory ${scobj_hpath}/pump/volume/setp plain user float + hsetprop ${scobj_hpath}/pump/volume/setp read ${ns}::pump_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/volume/setp rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp write ${ns}::pump_write ${scobj_hpath} noResponse { } + hsetprop ${scobj_hpath}/pump/volume/setp noResponse ${ns}::noResponse ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp check ${ns}::checkrange ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp driving 0 + hsetprop ${scobj_hpath}/pump/volume/setp checklimits ${ns}::checklimits ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp checkstatus ${ns}::pump_checkstatus ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp halt ${ns}::pump_halt ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/volume/setp driveable pump/volume/pval + hsetprop ${scobj_hpath}/pump/volume/setp control true + hsetprop ${scobj_hpath}/pump/volume/setp data true + hsetprop ${scobj_hpath}/pump/volume/setp mutable true + hsetprop ${scobj_hpath}/pump/volume/setp nxsave true + hsetprop ${scobj_hpath}/pump/volume/setp lowerlimit 0 + hsetprop ${scobj_hpath}/pump/volume/setp upperlimit 100 + hsetprop ${scobj_hpath}/pump/volume/setp tolerance 0.01 + hsetprop ${scobj_hpath}/pump/volume/setp oldval 0.0 + hsetprop ${scobj_hpath}/pump/volume/setp klass "parameter" + hsetprop ${scobj_hpath}/pump/volume/setp sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/volume/setp this_state "0" + hsetprop ${scobj_hpath}/pump/volume/setp type "drivable" + hsetprop ${scobj_hpath}/pump/volume/setp units "mL" + hsetprop ${scobj_hpath}/pump/volume/setp nxalias "${name}_pump_volume_setp" + + if {[string equal -nocase "${simulation_flag}" "false"]} { + ${sct_controller} poll ${scobj_hpath}/pump/volume/pval 1 + ${sct_controller} poll ${scobj_hpath}/pump/volume/setp 1 + ${sct_controller} write ${scobj_hpath}/pump/volume/setp } else { ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } @@ -1981,10 +1860,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 0 if {[string equal -nocase "${simulation_flag}" "false"]} { - ansto_makesctdrive ${name}_pump_pump_sp ${scobj_hpath}/pump/pump_sp ${scobj_hpath}/pump/volume_pv ${sct_controller} - ansto_makesctdrive ${name}_pump_volume_sp ${scobj_hpath}/pump/volume_sp ${scobj_hpath}/pump/volume_pv ${sct_controller} + ansto_makesctdrive ${name}_pump_volume_setp ${scobj_hpath}/pump/volume/setp ${scobj_hpath}/pump/volume/pval ${sct_controller} } -# mkDriver hook code goes here +# mkDriver hook code starts + hset ${scobj_hpath}/pump/remote 1 +# mkDriver hook code ends } catch_message ] handle_exception ${catch_status} ${catch_message} }