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_base::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] } {
@@ -278,9 +283,10 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati
set scobj_hpath /sics/${name}
# 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}
@@ -296,11 +302,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -316,11 +324,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -338,11 +348,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -373,17 +385,21 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -399,11 +415,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -419,11 +437,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -441,11 +461,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -476,17 +498,21 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -502,11 +528,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -522,11 +550,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -544,11 +574,13 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
@@ -579,12 +611,15 @@ proc ::scobj::mercury_base::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_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base"
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}
hsetprop ${scobj_hpath} klass ${device_class}
hsetprop ${scobj_hpath} data true