proc select_environment_controller {envtemp} { if [ catch { puts "selecting $envtemp for environment control" switch $envtemp { "lh45" { add_lh45 tc1 ca5-lyrebird 4003 1 proc ::histogram_memory::pre_count {} { hset /sample/tc1/sensor/start_temperature [hval /sample/tc1/sensor/value] hset /sample/tc1/sensor/end_temperature [hval /sample/tc1/sensor/value] } proc ::histogram_memory::post_count {} { hset /sample/tc1/sensor/end_temperature [hval /sample/tc1/sensor/value] } } "rhqc" { puts "Configuring RHQC" # 9600 8 1 None None Enable add_sct_ls340 tc1 ca5-[instname] 4001 "\r" 0.5 5.0 # TODO Set controlsensor # if { [SplitReply [environment_simulation]] == "false"} { # tc1 controlsensor sensorB # } # puts "Added tc1 with [tc1 controlsensor]" # 9600 8 1 None None Enable add_sct_ls340 tc2 ca5-[instname] 4002 "\r" 0.5 5.0 # TODO Set controlsensor # if { [SplitReply [environment_simulation]] == "false"} { # tc2 controlsensor sensorD # } # puts "Added tc2 with [tc2 controlsensor]" } "11TMagnet" { puts "Configuring 11TMagnet" add_sct_ls340 tc2 ca5-[instname] 4001 "\r" 0.5 5.0 if { [SplitReply [environment_simulation]] == "false"} { ::utility::macro::getset float temperature {} { return [sicsmsgfmt [hval /sample/tc2/sensor/sensorValueA]] } sicslist setatt temperature long_name temperature sicslist setatt temperature klass sample sicslist setatt temperature units K # TODO Set controlsensor # tc1 controlsensor sensorA # } add_ips120 ips120 ca5-lyrebird 4004 0.001 } default { clientput "Unknown environment controller $envtemp" } } } msg ] { puts "Failed to configure $envtemp: $msg" } }