Added validation and fixed attributes. r2708 | ffr | 2008-09-25 10:49:06 +1000 (Thu, 25 Sep 2008) | 3 lines
112 lines
3.5 KiB
Tcl
112 lines
3.5 KiB
Tcl
# Make the opal status info object
|
|
set sim_mode [SplitReply [opal_simulation]]
|
|
if {$sim_mode == "true"} {
|
|
proc opal {status} {
|
|
set opal_status {
|
|
"CALIBRATED.CALIBRATED REACTOR POWER 0290_04:ARPCS_CNTRL.RO0005 = 20 (08-06-04 11:42:39)"
|
|
"CNS HELIUM INLET TEMPERATURE 6290_09:TI_100.PNT = 19.6426 (08-06-20 12:17:36)"
|
|
"CNS H/E HELIUM OUTLET TEMPERATUR 6290_MB08:TI_712DCI.MEAS = 25.68 (08-06-20 12:17:36)"
|
|
"CNS HELIUM FLOW 6290_09:FI1_106.PNT = 64.2064 (08-06-20 12:17:36)"
|
|
}
|
|
switch $status {
|
|
"CALIBRATED REACTOR POWER" {
|
|
return [lindex $opal_status 0]
|
|
}
|
|
"CNS HELIUM INLET TEMPERATURE" {
|
|
return [lindex $opal_status 1]
|
|
}
|
|
"HELIUM OUTLET TEMPERATUR" {
|
|
return [lindex $opal_status 2]
|
|
}
|
|
"CNS HELIUM FLOW" {
|
|
return [lindex $opal_status 3]
|
|
}
|
|
"list" {
|
|
return $opal_status
|
|
}
|
|
}
|
|
}
|
|
publish opal user
|
|
} else {
|
|
MakeAsyncQueue lss_chan LSS 137.157.204.67 31250
|
|
MakeLSSMonitor opal lss_chan 0
|
|
}
|
|
::utility::macro::getset float reactor_power {} {
|
|
set str [opal "CALIBRATED REACTOR POWER"]
|
|
set value [lindex [lindex [split $str =] 1] 0]
|
|
if [string is double $value] {
|
|
return "reactor_power = $value"
|
|
} else {
|
|
return "reactor_power = -1"
|
|
}
|
|
}
|
|
sicslist setatt reactor_power klass source
|
|
sicslist setatt reactor_power long_name power
|
|
sicslist setatt reactor_power mutable true
|
|
sicslist setatt reactor_power units "MW"
|
|
|
|
namespace eval source { }
|
|
proc ::source::ic_initialize {guide} {
|
|
switch $guide {
|
|
"cold" {
|
|
::utility::macro::getset float cns_inlet_temp {} {
|
|
set str [opal "CNS HELIUM INLET TEMPERATURE"]
|
|
set value [lindex [lindex [split $str =] 1] 0]
|
|
if [string is double $value] {
|
|
return "cns_inlet_temp = $value"
|
|
} else {
|
|
return "cns_inlet_temp = -1"
|
|
}
|
|
}
|
|
sicslist setatt cns_inlet_temp klass source
|
|
sicslist setatt cns_inlet_temp long_name cns_inlet_temp
|
|
sicslist setatt cns_inlet_temp mutable true
|
|
sicslist setatt cns_inlet_temp units "K"
|
|
|
|
::utility::macro::getset float cns_outlet_temp {} {
|
|
set str [opal "HELIUM OUTLET TEMPERATUR"]
|
|
set value [lindex [lindex [split $str =] 1] 0]
|
|
if [string is double $value] {
|
|
return "cns_outlet_temp = $value"
|
|
} else {
|
|
return "cns_outlet_temp = -1"
|
|
}
|
|
}
|
|
sicslist setatt cns_outlet_temp klass source
|
|
sicslist setatt cns_outlet_temp long_name cns_outlet_temp
|
|
sicslist setatt cns_outlet_temp mutable true
|
|
sicslist setatt cns_outlet_temp units "K"
|
|
|
|
::utility::macro::getset float cns_flow {} {
|
|
set str [opal "CNS HELIUM FLOW"]
|
|
set value [lindex [lindex [split $str =] 1] 0]
|
|
if [string is double $value] {
|
|
return "cns_flow = $value"
|
|
} else {
|
|
return "cns_flow = -1"
|
|
}
|
|
}
|
|
sicslist setatt cns_flow klass source
|
|
sicslist setatt cns_flow long_name cns_flow_temp
|
|
sicslist setatt cns_flow mutable true
|
|
sicslist setatt cns_flow units "ls-1"
|
|
|
|
::utility::macro::getset float cg123He_temp {} {
|
|
set str [opal "CG 1,2,3 HELIUM TEMPERATURE"]
|
|
set value [lindex [lindex [split $str =] 1] 0]
|
|
if [string is double $value] {
|
|
return "cg123He_temp = $value"
|
|
} else {
|
|
return "cg123He_temp = -1"
|
|
}
|
|
}
|
|
sicslist setatt cg123He_temp klass source
|
|
sicslist setatt cg123He_temp long_name cg123He_temp
|
|
sicslist setatt cg123He_temp mutable true
|
|
sicslist setatt cg123He_temp units "K"
|
|
}
|
|
"thermal" {
|
|
}
|
|
}
|
|
}
|