# 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 = 0 (08-06-04 11:42:39)" "CNS HELIUM INLET TEMPERATURE 6290_09:TI_100.PNT = 0 (08-06-20 12:17:36)" "CNS H/E HELIUM OUTLET TEMPERATUR 6290_MB08:TI_712DCI.MEAS = 0 (08-06-20 12:17:36)" "CNS HELIUM FLOW 6290_09:FI1_106.PNT = 0 (08-06-20 12:17:36)" "CG 1,2,3 HELIUM TEMPERATURE.CG 1,2,3 HELIUM TEMPERATURE 6090_08:TI_117.PNT = 0 (08-09-26 14:42:38)" } 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] } "CG 1,2,3 HELIUM TEMPERATURE" { return [lindex $opal_status 4] } "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" { } } }