Regen SCT drivers

This commit is contained in:
Douglas Clowes
2014-09-29 16:48:19 +10:00
parent f86dc33081
commit 3ad3bf3524
20 changed files with 639 additions and 200 deletions

View File

@@ -86,7 +86,12 @@ proc ::scobj::mercury_scpi::checkstatus {tc_root} {
# checkstatus hook code goes here
if {[sct driving]} {
set sp "[sct target]"
set pv "[hval ${tc_root}/[sct driveable]]"
if {[hpropexists [sct] simulated] && [sct simulated] == "true"} {
set pv "${sp}"
hset ${tc_root}/[sct driveable] ${sp}
}
set pv "[hval ${tc_root}/[sct driveable]]"
}
if { abs(${pv} - ${sp}) <= [sct tolerance] } {
if { [hpropexists [sct] settle_time] } {
if { [hpropexists [sct] settle_time_start] } {
@@ -312,9 +317,10 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
set scobj_hpath /sics/${name}
# Start of named group: Level
hfactory ${scobj_hpath}/Level plain spy none
# Start of var: Helium
hfactory ${scobj_hpath}/Level/Helium plain user float
hsetprop ${scobj_hpath}/Level/Helium read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:HEL:LEV}
hsetprop ${scobj_hpath}/Level/Helium rdValue ${ns}::rdValue ${scobj_hpath}
@@ -332,11 +338,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Level/Helium 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: Nitrogen
hfactory ${scobj_hpath}/Level/Nitrogen plain user float
hsetprop ${scobj_hpath}/Level/Nitrogen read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:NIT:LEV}
hsetprop ${scobj_hpath}/Level/Nitrogen rdValue ${ns}::rdValue ${scobj_hpath}
@@ -354,16 +362,20 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Level/Nitrogen 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Level data "true"
hsetprop ${scobj_hpath}/Level klass "@none"
hsetprop ${scobj_hpath}/Level type "part"
# End of named group: Level
# Start of named group: Loop1
hfactory ${scobj_hpath}/Loop1 plain spy none
# Start of var: nick
hfactory ${scobj_hpath}/Loop1/nick plain user text
hsetprop ${scobj_hpath}/Loop1/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:MB1.T1:TEMP:NICK}
hsetprop ${scobj_hpath}/Loop1/nick rdText ${ns}::rdText ${scobj_hpath}
@@ -379,11 +391,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop1/nick 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: power
hfactory ${scobj_hpath}/Loop1/power plain user float
hsetprop ${scobj_hpath}/Loop1/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB0.H1:HTR:SIG:POWR}
hsetprop ${scobj_hpath}/Loop1/power rdValue ${ns}::rdValue ${scobj_hpath}
@@ -399,11 +413,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop1/power 5
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: sensor
hfactory ${scobj_hpath}/Loop1/sensor plain user float
hsetprop ${scobj_hpath}/Loop1/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:SIG:TEMP}
hsetprop ${scobj_hpath}/Loop1/sensor rdValue ${ns}::rdValue ${scobj_hpath}
@@ -421,11 +437,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop1/sensor 1
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: setpoint
hfactory ${scobj_hpath}/Loop1/setpoint plain user float
hsetprop ${scobj_hpath}/Loop1/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:LOOP:TSET}
hsetprop ${scobj_hpath}/Loop1/setpoint rdValue ${ns}::rdValue ${scobj_hpath}
@@ -456,17 +474,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop1/setpoint 5
${sct_controller} write ${scobj_hpath}/Loop1/setpoint
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Loop1 data "true"
hsetprop ${scobj_hpath}/Loop1 klass "@none"
hsetprop ${scobj_hpath}/Loop1 type "part"
# End of named group: Loop1
ansto_makesctdrive ${name}_Loop1_setpoint ${scobj_hpath}/Loop1/setpoint ${scobj_hpath}/Loop1/sensor ${sct_controller}
# Start of named group: Loop2
hfactory ${scobj_hpath}/Loop2 plain spy none
# Start of var: nick
hfactory ${scobj_hpath}/Loop2/nick plain user text
hsetprop ${scobj_hpath}/Loop2/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB6.T1:TEMP:NICK}
hsetprop ${scobj_hpath}/Loop2/nick rdText ${ns}::rdText ${scobj_hpath}
@@ -482,11 +504,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop2/nick 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: power
hfactory ${scobj_hpath}/Loop2/power plain user float
hsetprop ${scobj_hpath}/Loop2/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB1.H1:HTR:SIG:POWR}
hsetprop ${scobj_hpath}/Loop2/power rdValue ${ns}::rdValue ${scobj_hpath}
@@ -502,11 +526,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop2/power 5
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: sensor
hfactory ${scobj_hpath}/Loop2/sensor plain user float
hsetprop ${scobj_hpath}/Loop2/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:SIG:TEMP}
hsetprop ${scobj_hpath}/Loop2/sensor rdValue ${ns}::rdValue ${scobj_hpath}
@@ -524,11 +550,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop2/sensor 1
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: setpoint
hfactory ${scobj_hpath}/Loop2/setpoint plain user float
hsetprop ${scobj_hpath}/Loop2/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:LOOP:TSET}
hsetprop ${scobj_hpath}/Loop2/setpoint rdValue ${ns}::rdValue ${scobj_hpath}
@@ -559,17 +587,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop2/setpoint 5
${sct_controller} write ${scobj_hpath}/Loop2/setpoint
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Loop2 data "true"
hsetprop ${scobj_hpath}/Loop2 klass "@none"
hsetprop ${scobj_hpath}/Loop2 type "part"
# End of named group: Loop2
ansto_makesctdrive ${name}_Loop2_setpoint ${scobj_hpath}/Loop2/setpoint ${scobj_hpath}/Loop2/sensor ${sct_controller}
# Start of named group: Loop3
hfactory ${scobj_hpath}/Loop3 plain spy none
# Start of var: nick
hfactory ${scobj_hpath}/Loop3/nick plain user text
hsetprop ${scobj_hpath}/Loop3/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB7.T1:TEMP:NICK}
hsetprop ${scobj_hpath}/Loop3/nick rdText ${ns}::rdText ${scobj_hpath}
@@ -585,11 +617,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop3/nick 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: power
hfactory ${scobj_hpath}/Loop3/power plain user float
hsetprop ${scobj_hpath}/Loop3/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB2.H1:HTR:SIG:POWR}
hsetprop ${scobj_hpath}/Loop3/power rdValue ${ns}::rdValue ${scobj_hpath}
@@ -605,11 +639,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop3/power 5
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: sensor
hfactory ${scobj_hpath}/Loop3/sensor plain user float
hsetprop ${scobj_hpath}/Loop3/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:SIG:TEMP}
hsetprop ${scobj_hpath}/Loop3/sensor rdValue ${ns}::rdValue ${scobj_hpath}
@@ -627,11 +663,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop3/sensor 1
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: setpoint
hfactory ${scobj_hpath}/Loop3/setpoint plain user float
hsetprop ${scobj_hpath}/Loop3/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:LOOP:TSET}
hsetprop ${scobj_hpath}/Loop3/setpoint rdValue ${ns}::rdValue ${scobj_hpath}
@@ -662,17 +700,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop3/setpoint 5
${sct_controller} write ${scobj_hpath}/Loop3/setpoint
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Loop3 data "true"
hsetprop ${scobj_hpath}/Loop3 klass "@none"
hsetprop ${scobj_hpath}/Loop3 type "part"
# End of named group: Loop3
ansto_makesctdrive ${name}_Loop3_setpoint ${scobj_hpath}/Loop3/setpoint ${scobj_hpath}/Loop3/sensor ${sct_controller}
# Start of named group: Loop4
hfactory ${scobj_hpath}/Loop4 plain spy none
# Start of var: nick
hfactory ${scobj_hpath}/Loop4/nick plain user text
hsetprop ${scobj_hpath}/Loop4/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB8.T1:TEMP:NICK}
hsetprop ${scobj_hpath}/Loop4/nick rdText ${ns}::rdText ${scobj_hpath}
@@ -688,11 +730,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop4/nick 15
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: power
hfactory ${scobj_hpath}/Loop4/power plain user float
hsetprop ${scobj_hpath}/Loop4/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB3.H1:HTR:SIG:POWR}
hsetprop ${scobj_hpath}/Loop4/power rdValue ${ns}::rdValue ${scobj_hpath}
@@ -708,11 +752,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop4/power 5
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: sensor
hfactory ${scobj_hpath}/Loop4/sensor plain user float
hsetprop ${scobj_hpath}/Loop4/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:SIG:TEMP}
hsetprop ${scobj_hpath}/Loop4/sensor rdValue ${ns}::rdValue ${scobj_hpath}
@@ -730,11 +776,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop4/sensor 1
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: setpoint
hfactory ${scobj_hpath}/Loop4/setpoint plain user float
hsetprop ${scobj_hpath}/Loop4/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:LOOP:TSET}
hsetprop ${scobj_hpath}/Loop4/setpoint rdValue ${ns}::rdValue ${scobj_hpath}
@@ -765,17 +813,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Loop4/setpoint 5
${sct_controller} write ${scobj_hpath}/Loop4/setpoint
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Loop4 data "true"
hsetprop ${scobj_hpath}/Loop4 klass "@none"
hsetprop ${scobj_hpath}/Loop4 type "part"
# End of named group: Loop4
ansto_makesctdrive ${name}_Loop4_setpoint ${scobj_hpath}/Loop4/setpoint ${scobj_hpath}/Loop4/sensor ${sct_controller}
# Start of named group: Valve
hfactory ${scobj_hpath}/Valve plain spy none
# Start of var: sensor
hfactory ${scobj_hpath}/Valve/sensor plain user float
hsetprop ${scobj_hpath}/Valve/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB4.G1:AUX:SIG:OPEN}
hsetprop ${scobj_hpath}/Valve/sensor rdValue ${ns}::rdValue ${scobj_hpath}
@@ -793,11 +845,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} poll ${scobj_hpath}/Valve/sensor 5
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
# Start of var: setpoint
hfactory ${scobj_hpath}/Valve/setpoint plain user float
hsetprop ${scobj_hpath}/Valve/setpoint write ${ns}::setValve ${scobj_hpath} noResponse {SET:DEV:DB4.G1:AUX:SIG:OPEN:}
hsetprop ${scobj_hpath}/Valve/setpoint noResponse ${ns}::noResponse ${scobj_hpath}
@@ -825,12 +879,15 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
if {[string equal -nocase "${simulation_flag}" "false"]} {
${sct_controller} write ${scobj_hpath}/Valve/setpoint
hsetprop ${scobj_hpath}/%s simulated false
} else {
::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi"
hsetprop ${scobj_hpath}/%s simulated true
}
hsetprop ${scobj_hpath}/Valve data "true"
hsetprop ${scobj_hpath}/Valve klass "@none"
hsetprop ${scobj_hpath}/Valve type "part"
# End of named group: Valve
ansto_makesctdrive ${name}_Valve_setpoint ${scobj_hpath}/Valve/setpoint ${scobj_hpath}/Valve/sensor ${sct_controller}
hsetprop ${scobj_hpath} klass ${device_class}
hsetprop ${scobj_hpath} data true