175 lines
5.4 KiB
Tcl
175 lines
5.4 KiB
Tcl
# --------------------------------------------------------------------------
|
|
# Initialization script for DMC at SINQ, SICS server.
|
|
#
|
|
# Dr. Mark Koennecke March 1997
|
|
#---------------------------------------------------------------------------
|
|
# O P T I O N S
|
|
|
|
set auto_path "/data/koenneck/src/sics/tcl"
|
|
source $auto_path/dmccom.tcl
|
|
|
|
|
|
# first all the server options are set
|
|
|
|
ServerOption ReadTimeOut 100
|
|
# timeout when checking for commands. In the main loop SICS checks for
|
|
# pending commands on each connection with the above timeout, has
|
|
# PERFORMANCE impact!
|
|
|
|
ServerOption AcceptTimeOut 100
|
|
# timeout when checking for connection req.
|
|
# Similar to above, but for connections
|
|
|
|
ServerOption ReadUserPasswdTimeout 500000
|
|
# time to wiat for a user/passwd to be sent from a client. Increase this
|
|
# if there is a problem connecting to a server due to network overload\
|
|
|
|
ServerOption ServerLogBaseName /data/koenneck/src/sics/server
|
|
# the path and base name of the internal server logfile to which all
|
|
# activity will be logged.
|
|
|
|
ServerOption ServerPort 2910
|
|
# the port number the server is going to listen at. The client MUST know
|
|
# this number in order to connect. It is in client.ini
|
|
|
|
ServerOption InterruptPort 2913
|
|
# The UDP port where the server will wait for Interrupts from clients.
|
|
# Obviously, clients wishing to interrupt need to know this number.
|
|
|
|
ServerOption DefaultCommandFile dmccom.tcl
|
|
# The path to the file containing common Tcl-commands and procedures.
|
|
# Every connection is initialized with this
|
|
|
|
#---------------------------------------------------------------------------
|
|
# U S E R S
|
|
|
|
# than the SICS users are specified
|
|
# Syntax: SicsUser name password userRightsCode
|
|
SicsUser Mugger Diethelm 1
|
|
SicsUser User Rosy 2
|
|
SicsUser Spy 007 3
|
|
|
|
|
|
#--------------------------------------------------------------------------
|
|
# D E V I C E S : M O T O R S
|
|
|
|
#Motor a4 EL734 LNSP22 4000 5 6
|
|
# EL734 motor with parameters: hostname PortNumber Channel MotorID
|
|
|
|
# Motor nam SIM -20. 20. 5. 1.0
|
|
# Simulated motor with name nam, lower limit -20, upper limit +20,
|
|
# error ratio 5% and speed 1.0. Speed may be omitted
|
|
|
|
# Monochromator motors
|
|
Motor OmegaM SIM 20. 120. 5. 2.0
|
|
Motor TwoThetaM SIM 20. 120. 5. 0.5
|
|
Motor MonoX SIM -20. 20. 5. 5.0
|
|
Motor MonoY SIM -20. 20. 5. 5.0
|
|
Motor CurveM SIM 0. 1000. 10. 5.0
|
|
Motor MonoPhi SIM -20. 20. 5. 5.0
|
|
Motor MonoChi SIM -20. 20. 5. 5.0
|
|
|
|
# sample Table
|
|
Motor Table SIM -180. 180. 5. 7.0
|
|
Motor TwoThetaD SIM 10. 330. 5. 1.0
|
|
#--------------------------------------------------------------------------
|
|
# Configure Detector
|
|
# needs a EL737 or simualation for count control
|
|
MakeCounter xxxNo SIM
|
|
|
|
#MakeHM banana SINQHM
|
|
MakeHM banana SIM
|
|
banana configure HistMode Normal
|
|
banana configure OverFlowMode Ceil
|
|
banana configure Rank 1
|
|
banana configure Length 400
|
|
banana configure BinWidth 4
|
|
banana configure Time 10. 12. 14 16. 17.
|
|
banana preset 100.
|
|
banana CountMode Timer
|
|
#banana configure HMComputer psds02.psi.ch
|
|
#banana configure HMport 2400
|
|
#banana configure Counter xxxNo
|
|
banana init
|
|
#--------------------------------------------------------------------------
|
|
# C O N F I G U R E D E V I C E S T O H A L T I N
|
|
# I N T E R R U P T
|
|
AddHalt OmegaM TwoThetaM MonoX MonoY MonoChi MonoPhi CurveM Table TwoThetaD
|
|
#--------------------------------------------------------------------------
|
|
# V A R I A B L E S
|
|
|
|
# now a few general variables are created
|
|
# Syntax: VarMake name type access
|
|
# type can be one of: Text, Int, Float
|
|
#access can be one of: Internal, Mugger, User, Spy
|
|
|
|
VarMake Instrument Text Internal
|
|
Instrument "DMC at SINQ,PSI"
|
|
#initialisation
|
|
|
|
VarMake Title Text User
|
|
VarMake User Text User
|
|
VarMake Collimation Text User
|
|
VarMake Sample Text User
|
|
VarMake comment1 Text User
|
|
VarMake comment2 Text User
|
|
VarMake Comment3 Text User
|
|
|
|
VarMake SicsDataPath Text Internal
|
|
SicsDataPath "/data/koenneck/src/sics/"
|
|
VarMake SicsDataPrefix Text Internal
|
|
SicsDataPrefix DMC
|
|
VarMake SicsDataNumber Int Internal
|
|
SicsDataNumber 0
|
|
VarMake SicsDataPostFix Text Internal
|
|
SicsDataPostFix ".hdf"
|
|
VarMake Adress Text User
|
|
VarMake phone Text User
|
|
VarMake fax Text User
|
|
VarMake email Text User
|
|
VarMake sample_mur Float User
|
|
VarMake DetStepWidth Float Internal
|
|
DetStepWidth 0.02
|
|
|
|
|
|
|
|
# Monochromator variables
|
|
# Syntax MakeMono name type OmegaMotor 2ThetaMotor CurveMotor1 CurveMotor2
|
|
MakeMono Mono "Ge-111" OmegaM TwoThetaM CurveM
|
|
# Syntax MakeWaveLength name MonochromatorToUse
|
|
MakeWaveLength lambda Mono
|
|
|
|
|
|
#--------------------------------------------------------------------------
|
|
# P R O C E D U R E S
|
|
|
|
# create the drive command
|
|
MakeDrive
|
|
#start RuenBuffer system
|
|
MakeRuenBuffer
|
|
|
|
if { 0 } {
|
|
|
|
DMCInit 5 2.0 1
|
|
# end -------- of ------------- file -------------------------------------
|
|
# test code for powder diagrams, merging etc.
|
|
|
|
set id1 [DMCShot set 1 2 2 2 2 2 2]
|
|
set id2 [DMCShot set 2 3 3 3 3 3 3]
|
|
set id3 [DMCShot set 6 1 1 1 1 1 1]
|
|
set id4 [DMCShot set 7 5 5 5 5 5 5]
|
|
set p1 [DMCPowder merge $id1 $id2 $id3 $id4]
|
|
ClientPut [DMCPowder info $p1]
|
|
ClientPut [DMCPowder list $p1 0 17]
|
|
ClientPut [DMCPowder Start $p1]
|
|
ClientPut [DMCPowder Step $p1]
|
|
ClientPut [DMCPowder Stop $p1]
|
|
DMCReset
|
|
}
|
|
# test of alias
|
|
SicsAlias OmegaM A1
|
|
SicsAlias TwoThetaM A2
|
|
SicsAlias Table A3
|
|
SicsAlias TwoThetaD A4
|
|
InitDMC
|