From 093479f80841a863efd75282c142cd5aca9e8547 Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Thu, 14 Nov 2013 20:44:03 +1100 Subject: [PATCH] SICS-697 Make named links to data group using new typed naming system. --- .../temperature/sct_lakeshore_340.tcl | 35 +++++++++++++------ .../instrument/tas/util/sics_config.ini | 16 +++++++-- 2 files changed, 38 insertions(+), 13 deletions(-) diff --git a/site_ansto/instrument/config/environment/temperature/sct_lakeshore_340.tcl b/site_ansto/instrument/config/environment/temperature/sct_lakeshore_340.tcl index 06b67d83..1138a3ec 100644 --- a/site_ansto/instrument/config/environment/temperature/sct_lakeshore_340.tcl +++ b/site_ansto/instrument/config/environment/temperature/sct_lakeshore_340.tcl @@ -1755,7 +1755,7 @@ proc createNode {scobj_hpath sct_controller cmdGroup varName readable writable p # @param tempobj short name for the temperature controller scriptcontext object (typ. tc1 or tc2) # @param tol temperature tolerance in Kelvin (typ. 1) # @return nothing (well, the sct object) - proc mk_sct_lakeshore_340 {sct_controller klasse tempobj LSmodel tol1 tol2 verbose} { + proc mk_sct_lakeshore_340 {sct_controller klasse tempobj CID CTYPE LSmodel tol1 tol2 verbose} { if {[ catch { set ::scobj::ls340::ls340_driveTolerance1 $tol1 set ::scobj::ls340::ls340_driveTolerance2 $tol2 @@ -2050,6 +2050,13 @@ proc createNode {scobj_hpath sct_controller cmdGroup varName readable writable p # Problem: Does not write non-numbers to the hdf file unless told differently - but how? # How can I make it write the NAME (or any character/string variable) to the hdf file? # ::scobj::hinitprops $tempobj/sensor sampleSensor + hsetprop $scobj_hpath/sensor/setpoint1 permlink data_set ${CTYPE}${CID}SP1 + hsetprop $scobj_hpath/sensor/setpoint2 permlink data_set ${CTYPE}${CID}SP2 + + hsetprop $scobj_hpath/sensor/sensorValueA permlink data_set ${CTYPE}${CID}S1 + hsetprop $scobj_hpath/sensor/sensorValueB permlink data_set ${CTYPE}${CID}S2 + hsetprop $scobj_hpath/sensor/sensorValueC permlink data_set ${CTYPE}${CID}S3 + hsetprop $scobj_hpath/sensor/sensorValueD permlink data_set ${CTYPE}${CID}S4 hsetprop $scobj_hpath/sensor/setpoint1 type drivable hsetprop $scobj_hpath/sensor/setpoint2 type drivable @@ -2077,7 +2084,7 @@ proc createNode {scobj_hpath sct_controller cmdGroup varName readable writable p # @param port port number on the moxabox (typ. 4001, 4002, 4003, or 4004) # @param tol temperature tolerance in Kelvin (typ. 1) # @return nothing (well, the sct object) -proc add_sct_ls340 {name IP port terminator {_tol1 1.0} {_tol2 1.0} {_verbose 0} } { +proc add_sct_ls340 {name IP port terminator {_tol1 1.0} {_tol2 1.0} {CID 1} {CTYPE T} {_verbose 0} } { # ffr 2009-11-09, Don't create a temperature controller for the script validator, this causes the # lakeshore to lock up. # NOTE: I put this outside the catch block because "return" raises an exception @@ -2091,9 +2098,9 @@ proc add_sct_ls340 {name IP port terminator {_tol1 1.0} {_tol2 1.0} {_verbose 0} makesctcontroller sct_ls340_$name aqadapter ${port} } else { puts "\nadd_ls340: makesctcontroller sct_ls340_$name std ${IP}:$port $terminator for Lakeshore model 340" - makesctcontroller sct_ls340_$name std ${IP}:$port $terminator + makesctcontroller sct_ls340_$name std ${IP}:$port {*}$terminator } - mk_sct_lakeshore_340 sct_ls340_$name environment $name $_ls340_LSmodel $_tol1 $_tol2 $_verbose + ::scobj::ls340::mk_sct_lakeshore_340 sct_ls340_$name environment $name $CID $CTYPE $_ls340_LSmodel $_tol1 $_tol2 $_verbose makesctemon $name /sics/$name/emon/monMode_Lp1 /sics/$name/emon/isInTolerance_Lp1 /sics/$name/emon/errhandler # set m2 "_2" # makesctemon $name$m2 /sics/$name/emon/monMode_Lp2 /sics/$name/emon/isInTolerance_Lp2 /sics/$name/emon/errhandler @@ -2102,16 +2109,22 @@ proc add_sct_ls340 {name IP port terminator {_tol1 1.0} {_tol2 1.0} {_verbose 0} } } +if {[ catch { if { [ info exists ::config_dict ] } { if { [ dict get $::config_dict ls340_1 enabled ] } { - set IP [dict get $::config_dict ls340_1 ip] - set PORT [dict get $::config_dict ls340_1 port] - set name [dict get $::config_dict ls340_1 name] - set term [dict get $::config_dict ls340_1 terminator] - set tol1 [dict get $::config_dict ls340_1 tol1] - set tol2 [dict get $::config_dict ls340_1 tol2] + set IP [dict get $::config_dict ls340_1 ip] + set PORT [dict get $::config_dict ls340_1 port] + set name [dict get $::config_dict ls340_1 name] + set ctype [dict get $::config_dict ls340_1 type] + set cid [dict get $::config_dict ls340_1 id] + set term [dict get $::config_dict ls340_1 terminator] + set tol1 [dict get $::config_dict ls340_1 tol1] + set tol2 [dict get $::config_dict ls340_1 tol2] - add_sct_ls340 $name $IP $PORT $term $tol1 $tol2 + add_sct_ls340 $name $IP $PORT $term $tol1 $tol2 $cid $ctype } + } +} message ]} { + puts "ERROR: $message" } namespace import ::scobj::ls340::* diff --git a/site_ansto/instrument/tas/util/sics_config.ini b/site_ansto/instrument/tas/util/sics_config.ini index 084591e9..a40cc442 100644 --- a/site_ansto/instrument/tas/util/sics_config.ini +++ b/site_ansto/instrument/tas/util/sics_config.ini @@ -4,6 +4,8 @@ enabled = False group = environment:magnet ip = 10.157.205.3 name = magnetic +type = B +id = 1 port = 55001 [12tmagnet_setup] @@ -17,8 +19,10 @@ enabled = False group = environment:temperature ip = 137.157.203.137 name = tc1 +type = T +id = 1 port = 4001 -terminator = "\r\n" +terminator = \r\n tol1 = 1.0 tol2 = 1.0 @@ -28,8 +32,10 @@ enabled = False group = environment:temperature ip = 137.157.203.137 name = tc2 +type = T +id = 2 port = 4003 -terminator = "\r\n" +terminator = \r\n tol = 2.0 [mercury_itc500] @@ -39,6 +45,8 @@ enabled = False group = environment:temperature ip = 10.157.205.5 name = tc9 +type = T +id = 9 offifon = mercury_scipi port = 7020 tol = 2.0 @@ -49,6 +57,8 @@ enabled = False group = environment:temperature ip = 10.157.205.5 name = tc9 +type = T +id = 9 offifon = mercury_itc500 port = 7020 tol = 2.0 @@ -64,3 +74,5 @@ enabled = False group = environment:temperature ip = 137.157.203.141 name = tc1 +type = T +id = 1