source $cfPath(environment)/temperature/lakeshore340_common.tcl # @brief Adds a lakeshore 340 temperature controller object. # # This must be called when the instrument configuration is loaded and before\n # the buildHDB function is called. Currently there is no way to add and remove\n # environment controllers and their hdb paths at runtime. # # @param tcn temperature controller name, the hdb name will be tcn_cntrl # @param mport, the moxa RS232 port number, ie 1,2,3,4 # # Optional parameters, see lakeshore340_common.tcl for defaults in tc_dfltPar # @param tolerance, temperature controller tolerance # @param settle, settling time in seconds # @param range, lakeshore range # @param upperlimit, upper temperature limit Kelvin # @param lowerlimit, lower temperature limit Kelvin proc ::environment::temperature::add_ls340 {tcn mport args} { variable tc_dfltPar variable tc_dfltURL variable moxaPortMap if [catch { if {$tcn == "" || $mport == ""} { error "ERROR: You must provide a temperature controller name and moxa port number" } array set tc_param [array get tc_dfltPar] if {$args != ""} { array set tc_param $args foreach {nm v} $args { set tc_param($nm) $v } } set sim_mode [SplitReply [environment_simulation]] if {$sim_mode == "true"} { ::environment::temperature::mkls340sim $tcn } else { ::environment::temperature::mkls340 $tcn $tc_dfltURL $moxaPortMap($mport) foreach nm [array names tc_param] { $tcn $nm $tc_param($nm) } } sicslist setatt $tcn environment_name ${tcn}_cntrl sicslist setatt $tcn long_name control_sensor_reading ::environment::mkenvinfo $tcn {heateron {priv user} range {priv manager} } } message ] { if {$::errorCode=="NONE"} {return $message} return -code error $message } }