# Author: Jing Chen (jgn@ansto.gov.au) # Required by server_config.tcl VarMake Instrument Text Internal Instrument taipan Instrument lock #START SERVER CONFIGURATION SECTION source util/dmc2280/dmc2280_util.tcl source sics_ports.tcl source server_config.tcl MakeDrive #END SERVER CONFIGURATION SECTION ######################################## # INSTRUMENT SPECIFIC CONFIGURATION set no_histmem true fileeval $cfPath(source)/source.tcl source $cfPath(hipadaba)/hipadaba_configuration.tcl fileeval $cfPath(motors)/sct_aerotech_soloist.tcl fileeval $cfPath(motors)/motor_configuration.tcl #fileeval $cfPath(motors)/spin_galil.tcl fileeval $cfPath(motors)/positmotor_configuration.tcl fileeval $cfPath(plc)/plc.tcl fileeval $cfPath(optics)/optics.tcl fileeval $cfPath(counter)/counter.tcl fileeval $cfPath(hmm)/hmm_configuration.tcl fileeval $cfPath(nexus)/nxscripts.tcl fileeval $cfPath(scan)/scan.tcl fileeval $cfPath(commands)/commands.tcl fileeval $cfPath(commands)/pulser.tcl fileeval $cfPath(commands)/hvcommands.tcl namespace eval anticollider { proc ::anticollider::init {} {} } #fileeval $cfPath(anticollider)/anticollider.tcl #fileeval $cfPath(tasmad)/taspub_sics/tasp.tcl #fileeval $cfPath(tasmad)/taspub_sics/tasscript.tcl fileeval $cfPath(environment)/sct_agilent_33220A.tcl fileeval $cfPath(environment)/sct_protek_common.tcl fileeval $cfPath(environment)/sct_protekmm.tcl fileeval $cfPath(environment)/temperature/sct_eurotherm_2000.tcl fileeval $cfPath(environment)/temperature/sct_eurotherm_3200.tcl fileeval $cfPath(environment)/temperature/sct_julabo_lh45.tcl fileeval $cfPath(environment)/temperature/sct_lakeshore_336.tcl fileeval $cfPath(environment)/temperature/sct_ls336.tcl fileeval $cfPath(environment)/temperature/sct_lakeshore_340.tcl fileeval $cfPath(environment)/temperature/sct_ls340.tcl fileeval $cfPath(environment)/temperature/sct_lakeshore_370.tcl fileeval $cfPath(environment)/temperature/sct_lakeshore_m370.tcl fileeval $cfPath(environment)/temperature/sct_oxford_itc.tcl fileeval $cfPath(environment)/temperature/sct_oxford_mercury.tcl fileeval $cfPath(environment)/temperature/west400.tcl fileeval $cfPath(environment)/temperature/sct_west_6100.tcl fileeval $cfPath(environment)/he3/sct_he3.tcl fileeval $cfPath(environment)/magneticField/oxford_labview.tcl fileeval $cfPath(environment)/magneticField/sct_oxford12tlv.tcl fileeval $cfPath(beamline)/sct_he3_polanal.tcl fileeval config/load_setup.tcl fileeval log.tcl publish logbook spy source gumxml.tcl ::utility::mkVar ::anticollider::protect_detector text manager protect_detector false detector true false ::anticollider::protect_detector "true" if { [ dict exists $::config_dict sample_stage implementation ] } { set sample_stage [ dict get $::config_dict sample_stage implementation ] } else { set sample_stage "normal_sample_stage" } switch $sample_stage { "eulerian_cradle" { # s1-> eom, sgu -> ephi, sgl -> echi set OMEGA s1 set PHI ephi set CHI echi } "normal_sample_stage" - default { set OMEGA s1 set PHI sgu set CHI sgl } } # init for the tasUB #make mcv mch acv ach into mvfocus mhfocus avfocus ahfocus when it works puts "doing tasub" MakeTasUB tasub m1 m2 mvfocus mhfocus $OMEGA s2 $PHI $CHI a1 a2 avfocus ahfocus tasub mono dd 3.35416 tasub ana dd 3.35416 # NOTE Autofocussing parameters (vbn, hbn) persist in status.tcl # To override this behaviour you can set them in extraconfig.tcl tasub mono vb1 102.2 tasub mono vb2 1.78 tasub mono hb1 18.28 tasub mono hb2 60.1 tasub mono hb3 0.951 tasub ana vb1 115 tasub ana vb2 2.13 tasub ana hb1 45.68 tasub ana hb2 105.7 tasub ana hb3 0.945 tasub focusfn energy tasub autofocus 0 tasub updatetargets puts "done tasub" MakeDiffScan load_setup ../taipan_setup.txt server_init ########################################### # WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly. puts "Making hkl command" MakeMono mono PG m1 m2 mono dd 3.35416 MakeWaveLength lambda mono MakeEnergy energy mono #MakeSingleX singlex #MakeHKL s2 $OMEGA $PHI $CHI #MakeHKLMot hkl #MakeUBcalc ubcalc hkl # Provide tasmot notifications to GumTree when real motors move proc m2tasupdate {} { tasub update hupdate /sample/ei hupdate /sample/en hupdate /sample/ki hupdate /sample/qh hupdate /sample/qk hupdate /sample/ql hupdate /sample/qm } publish m2tasupdate user proc s1s2tasupdate {} { tasub update hupdate /sample/qh hupdate /sample/qk hupdate /sample/ql hupdate /sample/qm } publish s1s2tasupdate user proc a2tasupdate {} { tasub update hupdate /sample/ef hupdate /sample/en hupdate /sample/kf hupdate /sample/qh hupdate /sample/qk hupdate /sample/ql hupdate /sample/qm } publish a2tasupdate user scriptcallback connect m2 MOTEND m2tasupdate scriptcallback connect $OMEGA MOTEND s1s2tasupdate scriptcallback connect s2 MOTEND s1s2tasupdate scriptcallback connect a2 MOTEND a2tasupdate set MY_INSTRUMENT_IS_BROKEN_AND_I_DIDNT_FIXIT false if {$MY_INSTRUMENT_IS_BROKEN_AND_I_DIDNT_FIXIT} { AntiCollisionInstall anticollision register m2 anticollision register s2 anticollision register a2 array set tasacscript_levels {m2 0 s2 1 a2 2} proc tasacscript {args} { anticollision clear array set targets $args foreach {mot target} $args { anticollision add $::tasacscript_levels($mot) $mot $targets($mot) } return } publish tasacscript user anticollision script tasacscript } # fix all motors if {0} { foreach m [sicslist type motor] { if {$m == "motor" || $m == "dummy_motor"} { # skipit } else { clientput fix $m position $m fixed 1 } } } # You can add extra-configuration code in ../extraconfig.tcl