Files
sics/site_ansto/instrument/sans/config/parameters/parameters.tcl
Ferdi Franceschini 724af2d4ca hipadaba_configuration_common.tcl
Oops calling the deleted hlistplainprop function instead of the new hlistprop.

sans/config/commands/commands.tcl
Set beamstop diameter (BSdiam) when selecting a beamstop

sans optics/aperture_configuration.tcl
The entrance app is 50mm when guide config is g1 to g9 or p1 to p9

sans parameters.tcl
Added GuideConfig parameter to record the last configuration set by SICS.

r2870 | ffr | 2010-01-15 18:19:22 +1100 (Fri, 15 Jan 2010) | 12 lines
2012-11-15 16:59:29 +11:00

160 lines
4.4 KiB
Tcl

# TODO Make readonly getset macro for AttFactor
##
# @file The velocity selector position is used as the reference for other instrument
# component positions. For simplicity we set it as the origin x=y=z=0.
##
# Note EndFacePosY and RotApPosY are surveyed positions
foreach {var lname type priv units klass} {
BeamCenterX BeamCenterX float user mm parameter
BeamCenterZ BeamCenterZ float user mm parameter
BeamStop BeamStop int user none parameter
BSdiam BSdiam float user mm parameter
DetPosYOffset DetPosYOffsetfloat float user mm parameter
EApPosY EApPosY float user mm parameter
EndFacePosY EndFacePosY float readonly mm parameter
GuideConfig GuideConfig text user none parameter
magnetic_field magnetic_field float user T sample
RotApPosY RotApPosY float readonly mm @none
SampleThickness SampleThickness float user mm sample
SamYOffset SamYOffset float user mm parameter
Transmission Transmission float user 1 parameter
TransmissionFlag TransmissionFlag int user none sample
} {
::utility::mkVar $var $type $priv $lname true $klass true true
if {$units != "none"} {
sicslist setatt $var units $units
}
}
proc sicsmsgfmt {args} {return "[info level -1] = $args"}
::utility::macro::getset float SamplePosYmm {} {
set sy [SplitReply [samy]]
set syo [SplitReply [SamYOffset]]
return [sicsmsgfmt [expr {$sy+$syo}]]
}
sicslist setatt SamplePosYmm long_name SamplePosYmm
sicslist setatt SamplePosYmm klass parameter
sicslist setatt SamplePosYmm units mm
::utility::macro::getset float Plex {} {
return [sicsmsgfmt [ ::optics::AttRotLookup [SplitReply [att]] ]]
}
sicslist setatt Plex units mm
sicslist setatt Plex long_name Plex
sicslist setatt Plex klass parameter
::utility::macro::getset float EApX {} {
return [sicsmsgfmt [::optics::EApLookUp [SplitReply [srce]] "size"]]
}
sicslist setatt EApX units mm
sicslist setatt EApX long_name EApX
sicslist setatt EApX klass parameter
::utility::macro::getset float EApZ {} {
return [sicsmsgfmt [::optics::EApLookUp [SplitReply [srce]] "size"]]
}
sicslist setatt EApZ units mm
sicslist setatt EApZ long_name EApZ
sicslist setatt EApZ klass parameter
::utility::macro::getset text EApShape {} {
return [sicsmsgfmt [::optics::EApLookUp [SplitReply [srce]] "shape"]]
}
sicslist setatt EApShape long_name EApShape
sicslist setatt EApShape klass parameter
sicslist setatt EApShape mutable false
::utility::macro::getset float L1 {} {
set efpy [SplitReply [EndFacePosY]]
set samposy [SplitReply [SamplePosYmm]]
set eapy [SplitReply [EApPosY]]
return [sicsmsgfmt [expr {$efpy + $samposy - $eapy}]]
}
sicslist setatt L1 long_name L1
sicslist setatt L1 klass parameter
sicslist setatt L1 units mm
::utility::macro::getset float L2 {} {
set detpy [SplitReply [det]]
set detpyos [SplitReply [DetPosYOffset]]
set sapy [SplitReply [SamplePosYmm]]
return [sicsmsgfmt [expr {$detpy + $detpyos - $sapy}]]
}
sicslist setatt L2 long_name L2
sicslist setatt L2 klass parameter
sicslist setatt L2 units mm
################################################################################
# INITIALISE PARAMETERS
# The collimation system aperture positions
# Reference position is outer wall of velocity selector bunker, ie VelSelPosYmm
array set collapposmm {
inputguide 633
apwheel 675
ap1 4929
ap2 6934
ap3 8949
ap4 10955
ap5 12943
ap6 14970
ap7 16971
ap9 19925
}
EndFacePosY 20095
RotApPosY 675
################################################################################
# Check Config
namespace eval parameters {
set paramlist {
AttFactor
BSdiam
DetPosYOffset
EApPosY
EApShape
EApX
EApZ
EndFacePosY
L1
L2
Plex
SamYOffset
SamplePosYmm
Transmission
}
}
##
# @brief List undefined parameters
proc ::parameters::missingparams {} {
variable paramlist
set num 0
foreach param $paramlist {
if {[sicslist match $param] == " "} {
clientput $param
incr num
}
}
if {$num > 0} {
clientput "There are $num missing parameters"
} else {
clientput "OK"
}
}
##
# @brief Check list
proc check {args} {
switch $args {
"missing" {
::parameters::missingparams
}
}
}
publish check user