From b3d8f1bdae55c448c712cc6de307649561f52175 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Fri, 19 Sep 2014 12:08:13 +1000 Subject: [PATCH] Regenerate knauer_pump.sct --- .../config/environment/sct_knauer_pump.tcl | 559 ++++++++++-------- 1 file changed, 308 insertions(+), 251 deletions(-) diff --git a/site_ansto/instrument/config/environment/sct_knauer_pump.tcl b/site_ansto/instrument/config/environment/sct_knauer_pump.tcl index dda04d9f..d58d4bf4 100644 --- a/site_ansto/instrument/config/environment/sct_knauer_pump.tcl +++ b/site_ansto/instrument/config/environment/sct_knauer_pump.tcl @@ -147,8 +147,8 @@ proc ::scobj::knauer_pump::flow_fetch {tc_root nextState cmd_str} { # flow_fetch hook code starts set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set flow [lindex ${dlist} 4] - sct result [expr {0.001 * ${flow}}] + set flow_pv [lindex ${dlist} 4] + sct result [expr {0.001 * ${flow_pv}}] set cmd "@@NOSEND@@" # flow_fetch hook code ends if { [hpropexists [sct] geterror] } { @@ -248,12 +248,12 @@ proc ::scobj::knauer_pump::ratios_check {tc_root} { set hilimit [sct target] } # ratios_check hook code starts - set ratios [split ${setpoint} /] - if { [llength ${ratios}] != 4 } { - sct geterror "${setpoint} has [llength ${ratios}] components, needs 4" + set rlist [split ${setpoint} /] + if { [llength ${rlist}] != 4 } { + sct geterror "${setpoint} has [llength ${rlist}] components, needs 4" error [sct geterror] } - set sum [expr [lindex ${ratios} 0] + [lindex ${ratios} 1] + [lindex ${ratios} 2] + [lindex ${ratios} 3]] + set sum [expr [lindex ${rlist} 0] + [lindex ${rlist} 1] + [lindex ${rlist} 2] + [lindex ${rlist} 3]] if { ${sum} != 100 } { sct geterror "sum is ${sum}, must be 100" error [sct geterror] @@ -278,8 +278,8 @@ proc ::scobj::knauer_pump::ratios_fetch {tc_root nextState cmd_str} { # ratios_fetch hook code starts set data [hgetpropval ${tc_root}/dummy/status real_data] set dlist [split ${data} ","] - set ratios "[lindex ${dlist} 5]/[lindex ${dlist} 6]/[lindex ${dlist} 7]/[lindex ${dlist} 8]" - sct result ${ratios} + 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 if { [hpropexists [sct] geterror] } { @@ -451,6 +451,82 @@ proc ::scobj::knauer_pump::setValue {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::state_fetch {tc_root nextState cmd_str} { + set catch_status [ catch { + debug_log ${tc_root} 1 "state_fetch tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" + if { [hpropexists [sct] geterror] } { + hdelprop [sct] geterror + } + set cmd "${cmd_str}" +# state_fetch hook code starts + set index 1 + set data [hgetpropval ${tc_root}/dummy/status real_data] + set dlist [split ${data} ","] + set state_code [lindex ${dlist} ${index}] + set cmd "@@NOSEND@@" + if { ${state_code} < 0 || ${state_code} > 9 } { + sct geterror "Invalid device_state ${state_code}" + error "[sct geterror]" + } + set slist [list "SYS_ST_INITIALIZING" \ + "SYS_ST_OFF" \ + "SYS_ST_IDLE" \ + "SYS_ST_RUN" \ + "SYS_ST_HOLD" \ + "SYS_ST_PURGE" \ + "SYS_ST_STANDBY" \ + "SYS_ST_FAILED" \ + "SYS_ST_RUNATEND" \ + ] + sct result [lindex ${slist} ${state_code}] +# state_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 "state_fetch sct send ${cmd}" + if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { + sct send "${cmd}" + } + return ${nextState} + } catch_message ] + handle_exception ${catch_status} ${catch_message} +} + +# function to request the read of a parameter on a device +proc ::scobj::knauer_pump::status_fetch {tc_root nextState cmd_str} { + set catch_status [ catch { + debug_log ${tc_root} 1 "status_fetch tc_root=${tc_root} sct=[sct] cmd=${cmd_str}" + if { [hpropexists [sct] geterror] } { + hdelprop [sct] geterror + } + set cmd "${cmd_str}" +# status_fetch hook code starts + set index 1 + set data [hgetpropval ${tc_root}/dummy/status real_data] + set dlist [split ${data} ","] + set status_code [lindex ${dlist} ${index}] + set cmd "@@NOSEND@@" + if { ${status_code} == 3 } { + sct result "PUMPING" + } else { + sct result "IDLE" + } +# status_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 "status_fetch sct send ${cmd}" + if {![string equal -nocase -length 10 ${cmd} "@@NOSEND@@"]} { + sct send "${cmd}" + } + return ${nextState} + } catch_message ] + 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 { @@ -469,10 +545,9 @@ proc ::scobj::knauer_pump::volume_checkpumping {tc_root nextState cmd_str} { set sp "[sct target]" set pv "[hval ${tc_root}/[sct driveable]]" if { (${sp} - ${pv}) <= [sct tolerance] } { - set flow 0 - set ratios [hval ${tc_root}/ratios/setpoint] - set ratios [join [split ${ratios} /] ,] - set cmd "RAMP:0,${flow},${ratios},0,0,0,0,0,0,0,0,2" + 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 pumping 0 } @@ -539,17 +614,17 @@ proc ::scobj::knauer_pump::volume_fetch {tc_root nextState cmd_str} { if { [llength ${dlist}] > 11 } { set pump_volm [lindex ${dlist} 10] set pump_voln [lindex ${dlist} 11] - set volume [expr {${pump_volm} + 0.000001 * ${pump_voln}}] + set pump_volume [expr {${pump_volm} + 0.000001 * ${pump_voln}}] } else { - set volume 0.0 + set pump_volume 0.0 } - sct raw_volume ${volume} + sct raw_volume ${pump_volume} if { [hpropexists [sct] base_volume] } { - set volume [expr {${volume} - [sct base_volume]}] + set pump_volume [expr {${pump_volume} - [sct base_volume]}] } else { sct base_volume [sct raw_volume] } - sct result ${volume} + sct result ${pump_volume} set cmd "@@NOSEND@@" # volume_fetch hook code ends if { [hpropexists [sct] geterror] } { @@ -571,10 +646,9 @@ proc ::scobj::knauer_pump::volume_halt {tc_root} { 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 0 - set ratios [hval ${tc_root}/ratios/setpoint] - set ratios [join [split ${ratios} /] ,] - set cmd "RAMP:0,${flow},${ratios},0,0,0,0,0,0,0,0,2" + 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 @@ -595,10 +669,9 @@ proc ::scobj::knauer_pump::volume_write {tc_root nextState cmd_str} { # 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 [expr {int(1000.0 * [hval ${tc_root}/flow/setpoint])}] - set ratios [hval ${tc_root}/ratios/setpoint] - set ratios [join [split ${ratios} /] ,] - set cmd "RAMP:0,${flow},${ratios},0,0,0,0,0,0,0,0,3" + 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 # volume_write hook code ends if { [hpropexists [sct] geterror] } { @@ -667,49 +740,6 @@ 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}/flow plain spy none - hsetprop ${scobj_hpath}/flow data "true" - hsetprop ${scobj_hpath}/flow klass "@none" - hsetprop ${scobj_hpath}/flow type "part" - - hfactory ${scobj_hpath}/flow/sensor plain user float - hsetprop ${scobj_hpath}/flow/sensor read ${ns}::flow_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/flow/sensor rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/flow/sensor control true - hsetprop ${scobj_hpath}/flow/sensor data true - hsetprop ${scobj_hpath}/flow/sensor mutable true - hsetprop ${scobj_hpath}/flow/sensor nxsave true - hsetprop ${scobj_hpath}/flow/sensor oldval 0.0 - hsetprop ${scobj_hpath}/flow/sensor klass "parameter" - hsetprop ${scobj_hpath}/flow/sensor sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/flow/sensor type "part" - hsetprop ${scobj_hpath}/flow/sensor units "mL/min" - hsetprop ${scobj_hpath}/flow/sensor nxalias "${name}_flow_sensor" - - hfactory ${scobj_hpath}/flow/setpoint plain user float - hsetprop ${scobj_hpath}/flow/setpoint write ${ns}::flow_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/flow/setpoint noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/flow/setpoint check ${ns}::checkrange ${scobj_hpath} - hsetprop ${scobj_hpath}/flow/setpoint control true - hsetprop ${scobj_hpath}/flow/setpoint data true - hsetprop ${scobj_hpath}/flow/setpoint mutable true - hsetprop ${scobj_hpath}/flow/setpoint nxsave true - hsetprop ${scobj_hpath}/flow/setpoint lowerlimit 0 - hsetprop ${scobj_hpath}/flow/setpoint upperlimit 10 - hsetprop ${scobj_hpath}/flow/setpoint oldval 0.0 - hsetprop ${scobj_hpath}/flow/setpoint klass "parameter" - hsetprop ${scobj_hpath}/flow/setpoint sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/flow/setpoint type "part" - hsetprop ${scobj_hpath}/flow/setpoint units "mL/min" - hsetprop ${scobj_hpath}/flow/setpoint nxalias "${name}_flow_setpoint" - - if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/flow/sensor 1 - ${sct_controller} write ${scobj_hpath}/flow/setpoint - } else { - ::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" @@ -982,43 +1012,146 @@ 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}/ratios plain spy none - hsetprop ${scobj_hpath}/ratios data "true" - hsetprop ${scobj_hpath}/ratios klass "@none" - hsetprop ${scobj_hpath}/ratios type "part" + hfactory ${scobj_hpath}/pump plain spy none + hsetprop ${scobj_hpath}/pump data "true" + hsetprop ${scobj_hpath}/pump klass "@none" + hsetprop ${scobj_hpath}/pump type "part" - hfactory ${scobj_hpath}/ratios/sensor plain user text - hsetprop ${scobj_hpath}/ratios/sensor read ${ns}::ratios_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/ratios/sensor rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/ratios/sensor control true - hsetprop ${scobj_hpath}/ratios/sensor data true - hsetprop ${scobj_hpath}/ratios/sensor mutable true - hsetprop ${scobj_hpath}/ratios/sensor nxsave true - hsetprop ${scobj_hpath}/ratios/sensor oldval UNKNOWN - hsetprop ${scobj_hpath}/ratios/sensor klass "parameter" - hsetprop ${scobj_hpath}/ratios/sensor sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/ratios/sensor type "part" - hsetprop ${scobj_hpath}/ratios/sensor units "percent" - hsetprop ${scobj_hpath}/ratios/sensor nxalias "${name}_ratios_sensor" + 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}/ratios/setpoint plain user text - hsetprop ${scobj_hpath}/ratios/setpoint write ${ns}::ratios_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/ratios/setpoint noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/ratios/setpoint check ${ns}::ratios_check ${scobj_hpath} - hsetprop ${scobj_hpath}/ratios/setpoint control true - hsetprop ${scobj_hpath}/ratios/setpoint data true - hsetprop ${scobj_hpath}/ratios/setpoint mutable true - hsetprop ${scobj_hpath}/ratios/setpoint nxsave true - hsetprop ${scobj_hpath}/ratios/setpoint oldval UNKNOWN - hsetprop ${scobj_hpath}/ratios/setpoint klass "parameter" - hsetprop ${scobj_hpath}/ratios/setpoint sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/ratios/setpoint type "part" - hsetprop ${scobj_hpath}/ratios/setpoint units "percent" - hsetprop ${scobj_hpath}/ratios/setpoint nxalias "${name}_ratios_setpoint" + 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 0.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/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 UNKNOWN + 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/state plain user text + hsetprop ${scobj_hpath}/pump/state read ${ns}::state_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/state rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/state control true + hsetprop ${scobj_hpath}/pump/state data true + hsetprop ${scobj_hpath}/pump/state mutable true + hsetprop ${scobj_hpath}/pump/state nxsave true + hsetprop ${scobj_hpath}/pump/state oldval UNKNOWN + hsetprop ${scobj_hpath}/pump/state klass "parameter" + hsetprop ${scobj_hpath}/pump/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/pump/state type "part" + hsetprop ${scobj_hpath}/pump/state nxalias "${name}_pump_state" + + hfactory ${scobj_hpath}/pump/status plain user text + hsetprop ${scobj_hpath}/pump/status read ${ns}::status_fetch ${scobj_hpath} rdValue { } + hsetprop ${scobj_hpath}/pump/status rdValue ${ns}::rdValue ${scobj_hpath} + hsetprop ${scobj_hpath}/pump/status control true + hsetprop ${scobj_hpath}/pump/status data true + hsetprop ${scobj_hpath}/pump/status mutable true + hsetprop ${scobj_hpath}/pump/status nxsave true + hsetprop ${scobj_hpath}/pump/status oldval UNKNOWN + hsetprop ${scobj_hpath}/pump/status klass "parameter" + hsetprop ${scobj_hpath}/pump/status sdsinfo "::nexus::scobj::sdsinfo" + 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}/ratios/sensor 1 - ${sct_controller} write ${scobj_hpath}/ratios/setpoint + ${sct_controller} poll ${scobj_hpath}/pump/flow_pv 1 + ${sct_controller} poll ${scobj_hpath}/pump/ratio_pv 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/ratio_sp + ${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" } @@ -1300,19 +1433,18 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio } hfactory ${scobj_hpath}/stuff plain spy none - hsetprop ${scobj_hpath}/stuff data "true" + hsetprop ${scobj_hpath}/stuff data "false" hsetprop ${scobj_hpath}/stuff klass "@none" hsetprop ${scobj_hpath}/stuff 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 true - hsetprop ${scobj_hpath}/stuff/an_out data true + 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 true + hsetprop ${scobj_hpath}/stuff/an_out nxsave false hsetprop ${scobj_hpath}/stuff/an_out oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/an_out klass "parameter" 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" @@ -1320,12 +1452,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/boardinfo data true + 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 true + hsetprop ${scobj_hpath}/stuff/boardinfo nxsave false hsetprop ${scobj_hpath}/stuff/boardinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/boardinfo klass "parameter" 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" @@ -1333,12 +1464,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/config data true + 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 true + hsetprop ${scobj_hpath}/stuff/config nxsave false hsetprop ${scobj_hpath}/stuff/config oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/config klass "parameter" 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" @@ -1346,12 +1476,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/cprofinfo data true + 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 true + hsetprop ${scobj_hpath}/stuff/cprofinfo nxsave false hsetprop ${scobj_hpath}/stuff/cprofinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/cprofinfo klass "parameter" 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" @@ -1359,12 +1488,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/dout data true + 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 true + hsetprop ${scobj_hpath}/stuff/dout nxsave false hsetprop ${scobj_hpath}/stuff/dout oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/dout klass "parameter" 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" @@ -1372,12 +1500,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/error data true + 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 true + hsetprop ${scobj_hpath}/stuff/error nxsave false hsetprop ${scobj_hpath}/stuff/error oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/error klass "parameter" 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" @@ -1385,12 +1512,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/errors data true + 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 true + hsetprop ${scobj_hpath}/stuff/errors nxsave false hsetprop ${scobj_hpath}/stuff/errors oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/errors klass "parameter" 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" @@ -1398,12 +1524,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/flushpmp data true + 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 true + hsetprop ${scobj_hpath}/stuff/flushpmp nxsave false hsetprop ${scobj_hpath}/stuff/flushpmp oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/flushpmp klass "parameter" 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" @@ -1411,12 +1536,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/head data true + 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 true + hsetprop ${scobj_hpath}/stuff/head nxsave false hsetprop ${scobj_hpath}/stuff/head oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/head klass "parameter" 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" @@ -1424,12 +1548,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/head_par data true + 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 true + hsetprop ${scobj_hpath}/stuff/head_par nxsave false hsetprop ${scobj_hpath}/stuff/head_par oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/head_par klass "parameter" 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" @@ -1437,12 +1560,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/identify data true + 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 true + hsetprop ${scobj_hpath}/stuff/identify nxsave false hsetprop ${scobj_hpath}/stuff/identify oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/identify klass "parameter" 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" @@ -1450,12 +1572,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/lpg data true + 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 true + hsetprop ${scobj_hpath}/stuff/lpg nxsave false hsetprop ${scobj_hpath}/stuff/lpg oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/lpg klass "parameter" 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" @@ -1463,12 +1584,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/oem data true + 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 true + hsetprop ${scobj_hpath}/stuff/oem nxsave false hsetprop ${scobj_hpath}/stuff/oem oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/oem klass "parameter" 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" @@ -1476,12 +1596,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/opt data true + 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 true + hsetprop ${scobj_hpath}/stuff/opt nxsave false hsetprop ${scobj_hpath}/stuff/opt oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/opt klass "parameter" 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" @@ -1489,12 +1608,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/plim data true + 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 true + hsetprop ${scobj_hpath}/stuff/plim nxsave false hsetprop ${scobj_hpath}/stuff/plim oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/plim klass "parameter" 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" @@ -1502,12 +1620,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/pressure data true + 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 true + hsetprop ${scobj_hpath}/stuff/pressure nxsave false hsetprop ${scobj_hpath}/stuff/pressure oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/pressure klass "parameter" 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" @@ -1515,12 +1632,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/prfastacq data true + 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 true + hsetprop ${scobj_hpath}/stuff/prfastacq nxsave false hsetprop ${scobj_hpath}/stuff/prfastacq oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/prfastacq klass "parameter" 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" @@ -1528,12 +1644,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/purge data true + 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 true + hsetprop ${scobj_hpath}/stuff/purge nxsave false hsetprop ${scobj_hpath}/stuff/purge oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/purge klass "parameter" 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" @@ -1541,12 +1656,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/remote data true + 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 true + hsetprop ${scobj_hpath}/stuff/remote nxsave false hsetprop ${scobj_hpath}/stuff/remote oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/remote klass "parameter" 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" @@ -1554,12 +1668,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/rfid data true + 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 true + hsetprop ${scobj_hpath}/stuff/rfid nxsave false hsetprop ${scobj_hpath}/stuff/rfid oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/rfid klass "parameter" 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" @@ -1567,12 +1680,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/service data true + 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 true + hsetprop ${scobj_hpath}/stuff/service nxsave false hsetprop ${scobj_hpath}/stuff/service oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/service klass "parameter" 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" @@ -1580,12 +1692,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/sysinfo data true + 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 true + hsetprop ${scobj_hpath}/stuff/sysinfo nxsave false hsetprop ${scobj_hpath}/stuff/sysinfo oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/sysinfo klass "parameter" 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" @@ -1593,12 +1704,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/units data true + 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 true + hsetprop ${scobj_hpath}/stuff/units nxsave false hsetprop ${scobj_hpath}/stuff/units oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/units klass "parameter" 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" @@ -1606,12 +1716,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio 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 true - hsetprop ${scobj_hpath}/stuff/valves data true + 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 true + hsetprop ${scobj_hpath}/stuff/valves nxsave false hsetprop ${scobj_hpath}/stuff/valves oldval UNKNOWN - hsetprop ${scobj_hpath}/stuff/valves klass "parameter" 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" @@ -1644,63 +1753,11 @@ proc ::scobj::knauer_pump::mkDriver { sct_controller name device_class simulatio } else { ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" } - - hfactory ${scobj_hpath}/volume plain spy none - hsetprop ${scobj_hpath}/volume data "true" - hsetprop ${scobj_hpath}/volume klass "@none" - hsetprop ${scobj_hpath}/volume type "part" - - hfactory ${scobj_hpath}/volume/sensor plain user float - hsetprop ${scobj_hpath}/volume/sensor read ${ns}::volume_fetch ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/volume/sensor rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/sensor control true - hsetprop ${scobj_hpath}/volume/sensor data true - hsetprop ${scobj_hpath}/volume/sensor mutable true - hsetprop ${scobj_hpath}/volume/sensor nxsave true - hsetprop ${scobj_hpath}/volume/sensor oldval 0.0 - hsetprop ${scobj_hpath}/volume/sensor klass "parameter" - hsetprop ${scobj_hpath}/volume/sensor sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/volume/sensor type "part" - hsetprop ${scobj_hpath}/volume/sensor units "mL" - hsetprop ${scobj_hpath}/volume/sensor nxalias "${name}_volume_sensor" - - hfactory ${scobj_hpath}/volume/setpoint plain user float - hsetprop ${scobj_hpath}/volume/setpoint read ${ns}::volume_checkpumping ${scobj_hpath} rdValue { } - hsetprop ${scobj_hpath}/volume/setpoint rdValue ${ns}::rdValue ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint write ${ns}::volume_write ${scobj_hpath} noResponse { } - hsetprop ${scobj_hpath}/volume/setpoint noResponse ${ns}::noResponse ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint check ${ns}::checkrange ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint driving 0 - hsetprop ${scobj_hpath}/volume/setpoint checklimits ${ns}::checklimits ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint checkstatus ${ns}::volume_checkstatus ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint halt ${ns}::volume_halt ${scobj_hpath} - hsetprop ${scobj_hpath}/volume/setpoint driveable volume/sensor - hsetprop ${scobj_hpath}/volume/setpoint control true - hsetprop ${scobj_hpath}/volume/setpoint data true - hsetprop ${scobj_hpath}/volume/setpoint mutable true - hsetprop ${scobj_hpath}/volume/setpoint nxsave true - hsetprop ${scobj_hpath}/volume/setpoint lowerlimit 0 - hsetprop ${scobj_hpath}/volume/setpoint upperlimit 100 - hsetprop ${scobj_hpath}/volume/setpoint tolerance 0.01 - hsetprop ${scobj_hpath}/volume/setpoint oldval 0.0 - hsetprop ${scobj_hpath}/volume/setpoint klass "parameter" - hsetprop ${scobj_hpath}/volume/setpoint sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/volume/setpoint type "drivable" - hsetprop ${scobj_hpath}/volume/setpoint units "mL" - hsetprop ${scobj_hpath}/volume/setpoint nxalias "${name}_volume_setpoint" - - if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/volume/sensor 1 - ${sct_controller} poll ${scobj_hpath}/volume/setpoint 1 - ${sct_controller} write ${scobj_hpath}/volume/setpoint - } else { - ::scobj::knauer_pump::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for knauer_pump" - } hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 0 if {[string equal -nocase "${simulation_flag}" "false"]} { - ansto_makesctdrive ${name}_volume_setpoint ${scobj_hpath}/volume/setpoint ${scobj_hpath}/volume/sensor ${sct_controller} + ansto_makesctdrive ${name}_pump_volume_sp ${scobj_hpath}/pump/volume_sp ${scobj_hpath}/pump/volume_pv ${sct_controller} } # mkDriver hook code goes here } catch_message ]