Merge branch 'RELEASE-3_1' into RELEASE-3_2
Conflicts: sics/site_ansto/instrument/config/beamline/sct_he3_polanal.tcl sics/site_ansto/instrument/hipd/wombat_configuration.tcl sics/site_ansto/instrument/hrpd/echidna_configuration.tcl sics/site_ansto/instrument/pelican/pelican_configuration.tcl
This commit is contained in:
@@ -239,6 +239,7 @@ proc ::scobj::eurotherm_3200::mkDriver { sct_controller name device_class simula
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver eurotherm_3200
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -564,6 +565,7 @@ proc ::scobj::eurotherm_3200::mkDriver { sct_controller name device_class simula
|
||||
hsetprop ${scobj_hpath}/util data "false"
|
||||
hsetprop ${scobj_hpath}/util klass "@none"
|
||||
hsetprop ${scobj_hpath}/util type "part"
|
||||
hsetprop ${scobj_hpath} driver eurotherm_3200
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::eurotherm_m2000::mkDriver { sct_controller name device_class simul
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT user float
|
||||
|
||||
sicslist setatt ${name} driver eurotherm_m2000
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver eurotherm_m2000
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -379,6 +379,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver julabo_lh45_gen
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -674,6 +675,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul
|
||||
hsetprop ${scobj_hpath}/sensor data "true"
|
||||
hsetprop ${scobj_hpath}/sensor klass "@none"
|
||||
hsetprop ${scobj_hpath}/sensor type "part"
|
||||
hsetprop ${scobj_hpath} driver julabo_lh45_gen
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -200,6 +200,7 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver lakeshore_218
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -419,6 +420,7 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat
|
||||
hsetprop ${scobj_hpath}/sensor data "true"
|
||||
hsetprop ${scobj_hpath}/sensor klass "@none"
|
||||
hsetprop ${scobj_hpath}/sensor type "part"
|
||||
hsetprop ${scobj_hpath} driver lakeshore_218
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::lakeshore_m370::mkDriver { sct_controller name device_class simula
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT user none
|
||||
|
||||
sicslist setatt ${name} driver lakeshore_m370
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver lakeshore_m370
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::ls336::mkDriver { sct_controller name device_class simulation_flag
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver ls336
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver ls336
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::ls340::mkDriver { sct_controller name device_class simulation_flag
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver ls340
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver ls340
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -281,6 +281,7 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_base
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -606,6 +607,7 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati
|
||||
hsetprop ${scobj_hpath}/Loop3 klass "@none"
|
||||
hsetprop ${scobj_hpath}/Loop3 type "part"
|
||||
ansto_makesctdrive ${name}_Loop3_setpoint ${scobj_hpath}/Loop3/setpoint ${scobj_hpath}/Loop3/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver mercury_base
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -147,6 +147,7 @@ proc ::scobj::mercury_level::mkDriver { sct_controller name device_class simulat
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_level
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -202,6 +203,7 @@ proc ::scobj::mercury_level::mkDriver { sct_controller name device_class simulat
|
||||
hsetprop ${scobj_hpath}/Level data "true"
|
||||
hsetprop ${scobj_hpath}/Level klass "@none"
|
||||
hsetprop ${scobj_hpath}/Level type "part"
|
||||
hsetprop ${scobj_hpath} driver mercury_level
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -287,6 +287,7 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_pres
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -379,6 +380,7 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati
|
||||
hsetprop ${scobj_hpath}/Loop8 klass "@none"
|
||||
hsetprop ${scobj_hpath}/Loop8 type "part"
|
||||
ansto_makesctdrive ${name}_Loop8_setpoint ${scobj_hpath}/Loop8/setpoint ${scobj_hpath}/Loop8/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver mercury_pres
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -315,6 +315,7 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_scpi
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -860,6 +861,7 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati
|
||||
hsetprop ${scobj_hpath}/Valve klass "@none"
|
||||
hsetprop ${scobj_hpath}/Valve type "part"
|
||||
ansto_makesctdrive ${name}_Valve_setpoint ${scobj_hpath}/Valve/setpoint ${scobj_hpath}/Valve/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver mercury_scpi
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -281,6 +281,7 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_temp
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -392,6 +393,7 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati
|
||||
hsetprop ${scobj_hpath}/Loop4 klass "@none"
|
||||
hsetprop ${scobj_hpath}/Loop4 type "part"
|
||||
ansto_makesctdrive ${name}_Loop4_setpoint ${scobj_hpath}/Loop4/setpoint ${scobj_hpath}/Loop4/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver mercury_temp
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -259,6 +259,7 @@ proc ::scobj::mercury_valve::mkDriver { sct_controller name device_class simulat
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver mercury_valve
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -325,6 +326,7 @@ proc ::scobj::mercury_valve::mkDriver { sct_controller name device_class simulat
|
||||
hsetprop ${scobj_hpath}/Valve klass "@none"
|
||||
hsetprop ${scobj_hpath}/Valve type "part"
|
||||
ansto_makesctdrive ${name}_Valve_setpoint ${scobj_hpath}/Valve/setpoint ${scobj_hpath}/Valve/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver mercury_valve
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::nprvasm2::mkDriver { sct_controller name device_class simulation_f
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver nprvasm2
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver nprvasm2
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -19,96 +19,151 @@ driver oxford_mercury = {
|
||||
group_property 'cards' = '${cards}';
|
||||
group_property 'assoc' = '${assoc}';
|
||||
|
||||
group Temp0 = {
|
||||
group temp0 = {
|
||||
# Always the motherboard, always there
|
||||
priv = user; type = float; readable = 5;
|
||||
var sensor = { readable = 1; read_command = 'READ:DEV:MB1.T1:TEMP:SIG:TEMP'; permlink = 'T.S00'; }
|
||||
var nick = { type=text; readable = 15; read_command = 'READ:DEV:MB1.T1:TEMP:NICK'; read_function = rdText; }
|
||||
var power = { read_command = 'READ:DEV:MB0.H1:HTR:SIG:POWR'; }
|
||||
var auto = {
|
||||
type = int; allowed = '0,1';
|
||||
read_function = rdOnOff; read_command = 'READ:DEV:MB1.T1:TEMP:LOOP:ENAB';
|
||||
writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:MB1.T1:TEMP:LOOP:ENAB:';
|
||||
}
|
||||
var setpoint = { read_command = 'READ:DEV:MB1.T1:TEMP:LOOP:TSET';
|
||||
driveable = Temp0/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ttol}'; property settle_time = 15;
|
||||
driveable = temp0/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ttol}'; property settle_time = 15;
|
||||
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:MB1.T1:TEMP:LOOP:TSET:';
|
||||
permlink = 'T.SP00';
|
||||
}
|
||||
group heater = {
|
||||
var power = { read_command = 'READ:DEV:MB0.H1:HTR:SIG:POWR'; }
|
||||
var perc = { read_command = 'READ:DEV:MB0.H1:HTR:SIG:PERC'; }
|
||||
var hset = {
|
||||
read_command = 'READ:DEV:MB1.T1:TEMP:LOOP:HSET';
|
||||
lowerlimit = 0; upperlimit = 100;
|
||||
writeable = 1; write_command = 'SET:DEV:MB1.T1:TEMP:LOOP:HSET:';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
%exec
|
||||
exec_output = []
|
||||
for i in range(8):
|
||||
exec_output += [""]
|
||||
exec_output += [" group Temp%d = {" % (i+1)]
|
||||
exec_output += [" group temp%d = {" % (i+1)]
|
||||
exec_output += [" conditional = '[string equal -nocase [string index ${cards} %d] T]';" % i]
|
||||
exec_output += [" priv = user; type = float; readable = 5;"]
|
||||
exec_output += [" var sensor = { readable = 1; read_command = 'READ:DEV:DB%d.T1:TEMP:SIG:TEMP'; permlink = 'T.S%02d'; }" % (i+1,i+1)]
|
||||
exec_output += [" var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB%d.T1:TEMP:NICK'; read_function = rdText; }" % (i+1)]
|
||||
if i > 4:
|
||||
exec_output += [" var power = {"]
|
||||
exec_output += [" var auto = {"]
|
||||
exec_output += [" conditional = '[string equal -nocase [string index ${cards} %d] H] && [string equal -nocase [string index ${assoc} %d] %d]';" % (i-5, i, i-4)]
|
||||
exec_output += [" read_command = 'READ:DEV:DB%d.H1:HTR:SIG:POWR';" % (i - 4)]
|
||||
exec_output += [" type = int; allowed = '0,1'; read_command = 'READ:DEV:DB%d.T1:TEMP:LOOP:ENAB';" % (i + 1)]
|
||||
exec_output += [" read_function = rdOnOff; read_command = 'READ:DEV:DB%d.T1:TEMP:LOOP:ENAB';" % (i + 1)]
|
||||
exec_output += [" writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:DB%d.T1:TEMP:LOOP:ENAB:';" % (i + 1)]
|
||||
exec_output += [" }"]
|
||||
exec_output += [" var setpoint = {"]
|
||||
exec_output += [" conditional = '[string equal -nocase [string index ${cards} %d] H] && [string equal -nocase [string index ${assoc} %d] %d]';" % (i-5, i, i-4)]
|
||||
exec_output += [" read_command = 'READ:DEV:DB%d.T1:TEMP:LOOP:TSET';" % (i + 1)]
|
||||
exec_output += [" driveable = Temp%d/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ttol}'; property settle_time = 15;" % (i + 1)]
|
||||
exec_output += [" driveable = temp%d/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ttol}'; property settle_time = 15;" % (i + 1)]
|
||||
exec_output += [" writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB%d.T1:TEMP:LOOP:TSET:';" % (i + 1)]
|
||||
exec_output += [" permlink = 'T.SP%02d';" % (i + 1)]
|
||||
exec_output += [" }"]
|
||||
exec_output += [" group heater = {"]
|
||||
exec_output += [" conditional = '[string equal -nocase [string index ${cards} %d] H] && [string equal -nocase [string index ${assoc} %d] %d]';" % (i-5, i, i-4)]
|
||||
exec_output += [" var power = { read_command = 'READ:DEV:DB%d.H1:HTR:SIG:POWR'; }" % (i - 4)]
|
||||
exec_output += [" var perc = { read_command = 'READ:DEV:DB%d.H1:HTR:SIG:PERC'; }" % (i - 4)]
|
||||
exec_output += [" var hset = {"]
|
||||
exec_output += [" read_command = 'READ:DEV:DB%d.T1:TEMP:LOOP:HSET';" % (i + 1)]
|
||||
exec_output += [" lowerlimit = 0; upperlimit = 100;"]
|
||||
exec_output += [" writeable = 1; write_command = 'SET:DEV:DB%d.T1:TEMP:LOOP:HSET:';" % (i + 1)]
|
||||
exec_output += [" }"]
|
||||
exec_output += [" }"]
|
||||
exec_output += [" }"]
|
||||
%end
|
||||
|
||||
group Pres5 = {
|
||||
group pres5 = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 4] P]';
|
||||
priv = user; type = float; readable = 5;
|
||||
var sensor = { readable = 1; read_command = 'READ:DEV:DB5.P1:PRES:SIG:PRES'; permlink = 'P.PS05'; units = "mB"; }
|
||||
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB5.P1:PRES:NICK'; read_function = rdText; }
|
||||
var valve = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 4] 4]';
|
||||
read_command = 'READ:DEV:DB4.G1:AUX:SIG:OPEN';
|
||||
read_command = 'READ:DEV:DB4.G1:AUX:SIG:PERC';
|
||||
}
|
||||
var enab = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 4] 4]';
|
||||
type = int; allowed = '0,1';
|
||||
read_function = rdOnOff; read_command = 'READ:DEV:DB5.P1:PRES:LOOP:ENAB';
|
||||
writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:DB5.P1:PRES:LOOP:ENAB:';
|
||||
}
|
||||
var auto = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 4] 4]';
|
||||
type = int; allowed = '0,1';
|
||||
read_function = rdOnOff; read_command = 'READ:DEV:DB5.P1:PRES:LOOP:FAUT';
|
||||
writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:DB5.P1:PRES:LOOP:FAUT:';
|
||||
}
|
||||
var setpoint = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 4] 4]';
|
||||
read_command = 'READ:DEV:DB5.P1:PRES:LOOP:TSET';
|
||||
driveable = Pres5/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ptol}'; property settle_time = 15;
|
||||
driveable = pres5/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ptol}'; property settle_time = 15;
|
||||
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB8.P1:PRES:LOOP:TSET:';
|
||||
permlink = 'P.PSP05'; units = "mB";
|
||||
}
|
||||
var fset = {
|
||||
read_command = 'READ:DEV:DB5.P1:PRES:LOOP:FSET';
|
||||
lowerlimit = 0; upperlimit = 100;
|
||||
writeable = 1; write_command = 'SET:DEV:DB5.P1:PRES:LOOP:FSET:';
|
||||
}
|
||||
}
|
||||
group Pres8 = {
|
||||
group pres8 = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 7] P]';
|
||||
priv = user; type = float; readable = 5;
|
||||
var sensor = { readable = 1; read_command = 'READ:DEV:DB8.P1:PRES:SIG:PRES'; permlink = 'P.PS08'; units = "mB"; }
|
||||
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB8.P1:PRES:NICK'; read_function = rdText; }
|
||||
var valve = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 7] 4]';
|
||||
read_command = 'READ:DEV:DB4.G1:AUX:SIG:OPEN';
|
||||
read_command = 'READ:DEV:DB4.G1:AUX:SIG:PERC';
|
||||
}
|
||||
var enab = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 7] 4]';
|
||||
type = int; allowed = '0,1';
|
||||
read_function = rdOnOff; read_command = 'READ:DEV:DB8.P1:PRES:LOOP:ENAB';
|
||||
writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:DB8.P1:PRES:LOOP:ENAB:';
|
||||
}
|
||||
var auto = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 7] 4]';
|
||||
type = int; allowed = '0,1';
|
||||
read_function = rdOnOff; read_command = 'READ:DEV:DB8.P1:PRES:LOOP:FAUT';
|
||||
writeable = 1; write_function = wrOnOff; write_command = 'SET:DEV:DB8.P1:PRES:LOOP:FAUT:';
|
||||
}
|
||||
var setpoint = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V] && [string equal -nocase [string index ${assoc} 7] 4]';
|
||||
read_command = 'READ:DEV:DB8.P1:PRES:LOOP:TSET';
|
||||
driveable = Pres8/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ptol}'; property settle_time = 15;
|
||||
driveable = pres8/sensor; lowerlimit = 0; upperlimit = 333; tolerance = '${ptol}'; property settle_time = 15;
|
||||
writeable = 1; write_function = setPoint; write_command = 'SET:DEV:DB8.P1:PRES:LOOP:TSET:';
|
||||
permlink = 'P.PSP08'; units = "mB";
|
||||
}
|
||||
var fset = {
|
||||
read_command = 'READ:DEV:DB8.P1:PRES:LOOP:FSET';
|
||||
lowerlimit = 0; upperlimit = 100;
|
||||
writeable = 1; write_command = 'SET:DEV:DB8.P1:PRES:LOOP:FSET:';
|
||||
}
|
||||
}
|
||||
|
||||
group Valve = {
|
||||
group valve = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 3] V]';
|
||||
priv = user; type = float;
|
||||
var sensor = {
|
||||
readable = 5; read_command = 'READ:DEV:DB4.G1:AUX:SIG:OPEN';
|
||||
readable = 5; read_command = 'READ:DEV:DB4.G1:AUX:SIG:PERC';
|
||||
}
|
||||
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB4.G1:AUX:NICK'; read_function = rdText; }
|
||||
var setpoint = {
|
||||
driveable = Valve/sensor; lowerlimit = 0; upperlimit = 100; tolerance = '${vtol}'; property settle_time = 30;
|
||||
writeable = 1; write_function = setValve; write_command = 'SET:DEV:DB4.G1:AUX:SIG:OPEN:';
|
||||
}
|
||||
}
|
||||
|
||||
group Level = {
|
||||
group level = {
|
||||
conditional = '[string equal -nocase [string index ${cards} 4] L]';
|
||||
priv = user; type = float; readable = 15;
|
||||
var Nitrogen = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:NIT:LEV'; permlink = 'T.N2'; }
|
||||
var Helium = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:HEL:LEV'; permlink = 'T.He'; }
|
||||
var nitrogen = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:NIT:LEV'; permlink = 'T.N2'; }
|
||||
var helium = { read_command = 'READ:DEV:DB5.L1:LVL:SIG:HEL:LEV'; permlink = 'T.He'; }
|
||||
var nick = { type=text; readable = 15; read_command = 'READ:DEV:DB5.L1:LVL:NICK'; read_function = rdText; }
|
||||
}
|
||||
|
||||
@@ -116,18 +171,17 @@ for i in range(8):
|
||||
code read_function rdValue = {
|
||||
@TCL
|
||||
set value [lindex [split "${data}" ":"] end]
|
||||
if {[string equal -nocase [string index ${value} end] K]} {
|
||||
set value [string range ${value} 0 end-1]
|
||||
}
|
||||
if {[string equal -nocase ${value} NaN]} {
|
||||
if {[string equal -nocase -length 3 ${value} NaN]} {
|
||||
set value 0
|
||||
}
|
||||
if {[string equal -nocase ${value} inf] || [string equal -nocase ${value} -inf]} {
|
||||
if {[string equal -nocase -length 3 ${value} inf] || [string equal -nocase -length 4 ${value} -inf]} {
|
||||
set value 0
|
||||
}
|
||||
if {![string is double ${value}]} {
|
||||
if {![string is digit [string index ${value} 0]]} {
|
||||
set value 0
|
||||
}
|
||||
debug_log ${tc_root} 1 "rdValue tc_root=${tc_root} sct=[sct] result=[sct result]"
|
||||
debug_log ${tc_root} 1 "rdValue tc_root=${tc_root} data=${data} value=${value}"
|
||||
scan ${value} "%g" data
|
||||
@END
|
||||
}
|
||||
@@ -136,10 +190,31 @@ for i in range(8):
|
||||
@ scan [lindex [split "$data" ":"] end] "%s" data
|
||||
}
|
||||
|
||||
code Write_function setPoint = {
|
||||
code write_function setPoint = {
|
||||
}
|
||||
|
||||
code Write_function setValve = {
|
||||
code write_function setValve = {
|
||||
}
|
||||
|
||||
code read_function rdOnOff = {
|
||||
@TCL
|
||||
scan [lindex [split "$data" ":"] end] "%s" data
|
||||
if {[string equal -nocase ${data} "ON"]} {
|
||||
set data 1
|
||||
} else {
|
||||
set data 0
|
||||
}
|
||||
@END
|
||||
}
|
||||
|
||||
code write_function wrOnOff = {
|
||||
@TCL
|
||||
if { ${par} == 1 } {
|
||||
set cmd "${cmd_str}ON"
|
||||
} else {
|
||||
set cmd "${cmd_str}OFF"
|
||||
}
|
||||
@END
|
||||
}
|
||||
|
||||
code preamble = {
|
||||
@@ -147,7 +222,7 @@ for i in range(8):
|
||||
proc make_config {sct_controller} {
|
||||
set syscat [${sct_controller} transact READ:SYS:CAT]
|
||||
set result ""
|
||||
set devs [regexp -inline -all {DEV:D[[:alnum:]\.]*:[[:alnum:]]*} ${syscat}]
|
||||
set devs [regexp -inline -all {DEV:[DM][[:alnum:]\.]*:[[:alnum:]]*} ${syscat}]
|
||||
foreach dev [lsort ${devs}] {
|
||||
set typ [string index [lindex [split ${dev} :] end] 0]
|
||||
set typ [string map {A V} ${typ}]
|
||||
@@ -157,6 +232,34 @@ for i in range(8):
|
||||
clientput "Result: ${result}"
|
||||
return ${result}
|
||||
}
|
||||
proc read_all {sct_controller} {
|
||||
set syscat [${sct_controller} transact READ:SYS:CAT]
|
||||
set devs [regexp -inline -all {DEV:[DM][[:alnum:]\.]*:[[:alnum:]]*} ${syscat}]
|
||||
foreach dev [lsort ${devs}] {
|
||||
set response [${sct_controller} transact READ:${dev}]
|
||||
clientput "Device: ${response}"
|
||||
}
|
||||
}
|
||||
proc read_loop {sct_controller} {
|
||||
set pat {\m[A-Z]{1,}:[^:]{1,}}
|
||||
set syscat [${sct_controller} transact READ:SYS:CAT]
|
||||
set devs [regexp -inline -all {DEV:[DM][[:alnum:]\.]*:[[:alnum:]]*} ${syscat}]
|
||||
foreach dev [lsort ${devs}] {
|
||||
set response [${sct_controller} transact READ:${dev}:LOOP]
|
||||
clientput "Device: ${response}"
|
||||
clientput " Loop: [regexp -inline -all $pat [string trim ${response}]]"
|
||||
}
|
||||
}
|
||||
proc read_sig {sct_controller} {
|
||||
set pat {\m[A-Z]{1,}:[^:]{1,}}
|
||||
set syscat [${sct_controller} transact READ:SYS:CAT]
|
||||
set devs [regexp -inline -all {DEV:[DM][[:alnum:]\.]*:[[:alnum:]]*} ${syscat}]
|
||||
foreach dev [lsort ${devs}] {
|
||||
set response [${sct_controller} transact READ:${dev}:SIG]
|
||||
clientput "Device: ${response}"
|
||||
clientput " Sig: [regexp -inline -all $pat [string trim ${response}]]"
|
||||
}
|
||||
}
|
||||
@END
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -387,6 +387,7 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver pfeiffer_hg
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -477,6 +478,7 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio
|
||||
hsetprop ${scobj_hpath}/pressure klass "@none"
|
||||
hsetprop ${scobj_hpath}/pressure type "part"
|
||||
ansto_makesctdrive ${name}_pressure_setpoint ${scobj_hpath}/pressure/setpoint ${scobj_hpath}/pressure/sensor ${sct_controller}
|
||||
hsetprop ${scobj_hpath} driver pfeiffer_hg
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -239,6 +239,7 @@ proc ::scobj::eurotherm_3200::mkDriver { sct_controller name device_class simula
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver eurotherm_3200
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -564,6 +565,7 @@ proc ::scobj::eurotherm_3200::mkDriver { sct_controller name device_class simula
|
||||
hsetprop ${scobj_hpath}/util data "false"
|
||||
hsetprop ${scobj_hpath}/util klass "@none"
|
||||
hsetprop ${scobj_hpath}/util type "part"
|
||||
hsetprop ${scobj_hpath} driver eurotherm_3200
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -201,6 +201,7 @@ proc ::scobj::srs_sr630::mkDriver { sct_controller name device_class simulation_
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver srs_sr630
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -399,6 +400,7 @@ proc ::scobj::srs_sr630::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath} data "true"
|
||||
hsetprop ${scobj_hpath} klass "@none"
|
||||
hsetprop ${scobj_hpath} type "part"
|
||||
hsetprop ${scobj_hpath} driver srs_sr630
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -350,6 +350,7 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver west_6100
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -630,6 +631,7 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath}/aux data "false"
|
||||
hsetprop ${scobj_hpath}/aux klass "@none"
|
||||
hsetprop ${scobj_hpath}/aux type "part"
|
||||
hsetprop ${scobj_hpath} driver west_6100
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -201,6 +201,7 @@ proc ::scobj::srs_sr630::mkDriver { sct_controller name device_class simulation_
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver srs_sr630
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -399,6 +400,7 @@ proc ::scobj::srs_sr630::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath} data "true"
|
||||
hsetprop ${scobj_hpath} klass "@none"
|
||||
hsetprop ${scobj_hpath} type "part"
|
||||
hsetprop ${scobj_hpath} driver srs_sr630
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::watlow_mpm::mkDriver { sct_controller name device_class simulation
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT user float
|
||||
|
||||
sicslist setatt ${name} driver watlow_mpm
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver watlow_mpm
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::watlow_mrm::mkDriver { sct_controller name device_class simulation
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT user float
|
||||
|
||||
sicslist setatt ${name} driver watlow_mrm
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver watlow_mrm
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -37,10 +37,12 @@ proc ::scobj::watlow_mst4::mkDriver { sct_controller name device_class simulatio
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT user float
|
||||
|
||||
sicslist setatt ${name} driver watlow_mst4
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
set scobj_hpath /sics/${name}
|
||||
hsetprop ${scobj_hpath} driver watlow_mst4
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
@@ -99,6 +99,8 @@ proc ::scobj::west4100::read_config {} {
|
||||
}
|
||||
if { [string equal -nocase [dict get $v "driver"] "west4100"] } {
|
||||
::scobj::west4100::sics_log 9 "No sctcontroller for west4100"
|
||||
set ip_address [dict get $v ip]
|
||||
set tcp_port [dict get $v port]
|
||||
set arg_list [list]
|
||||
set missing_list [list]
|
||||
foreach arg {dev_id} {
|
||||
|
||||
@@ -350,6 +350,7 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
|
||||
MakeSICSObj ${name} SCT_OBJECT
|
||||
|
||||
sicslist setatt ${name} driver west_6100
|
||||
sicslist setatt ${name} klass ${device_class}
|
||||
sicslist setatt ${name} long_name ${name}
|
||||
|
||||
@@ -630,6 +631,7 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath}/aux data "false"
|
||||
hsetprop ${scobj_hpath}/aux klass "@none"
|
||||
hsetprop ${scobj_hpath}/aux type "part"
|
||||
hsetprop ${scobj_hpath} driver west_6100
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
|
||||
Reference in New Issue
Block a user