Regenerate knauer_pump.sct

This commit is contained in:
Douglas Clowes
2014-09-19 12:08:13 +10:00
parent 522865f264
commit b3d8f1bdae

View File

@ -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 ]