Provide a parameters and parameters/derived_parameters section as a one stop shop for all your instrument parameter needs.

r2625 | ffr | 2008-06-12 12:42:17 +1000 (Thu, 12 Jun 2008) | 2 lines
This commit is contained in:
Ferdi Franceschini
2008-06-12 12:42:17 +10:00
committed by Douglas Clowes
parent 3a40ea5693
commit 177d5f3ed6
3 changed files with 99 additions and 72 deletions

View File

@@ -32,6 +32,18 @@ set instrument_dictionary [subst {
datatype @none
property {data true control true nxsave false klass NXinstrument type instrument}
}
instrument/parameters {
privilege spy
sobj {@any parameter}
datatype @none
property {data false control true nxsave false klass @none type part}
}
instrument/parameters/derived_parameters {
privilege spy
sobj {@any derived_parameter}
datatype @none
property {data false control true nxsave false klass @none type part}
}
instrument/aperture {
privilege spy
sobj {@any aperture}

View File

@@ -11,7 +11,7 @@ set boolean {true false}
#}
# SICS OBJECTS MUST PROVIDE THE FOLLOWING INFORMATION
set sobj_klass_list {@none aperture attenuator collimator command crystal data detector entry environment experiment graphics instrument monitor monochromator plc sample scan sensor user}
set sobj_klass_list {@none aperture attenuator collimator command crystal data detector entry environment experiment graphics instrument monitor monochromator parameter derived_parameter plc sample scan sensor user}
set sobj_sicstype_list {environment_controller sicsvariable macro motor configurablevirtualmotor singlecounter histmem nxscript sicsdata scanobject}
# Different kinds of things are added to the hdb in different ways.
# command: This is something a client can run with hset /a/b/c start, it may have parameters and feedback.

View File

@@ -10,7 +10,7 @@ foreach {var nxname} {
BeamstopCoordScheme coordinate_scheme
CollCoordScheme coordinate_scheme
} {
::utility::mkVar $var text readonly $nxname true @none false true
::utility::mkVar $var text readonly $var true @none false true
$var Cartesian
$var lock
}
@@ -28,7 +28,7 @@ foreach {var nxname priv} {
SApShape shape readonly
BSShape shape user
} {
::utility::mkVar $var text $priv $nxname true @none true true
::utility::mkVar $var text $priv $var true @none true true
}
# The velocity selector position is used as the reference for other instrument
@@ -40,7 +40,7 @@ foreach {var nxname units} {
EndFacePosYmm y mm
RotApPosYmm y mm
} {
::utility::mkVar $var float readonly $nxname true @none true true
::utility::mkVar $var float readonly $var true @none true true
if {$units != 1} {
sicslist setatt $var units $units
}
@@ -53,6 +53,7 @@ foreach {var nxname units priv} {
LambdaResFWHM% wavelength_spread 1 user
VSdeg twist degrees user
VSrpm rotation_speed rpm user
AttFactor attenuation_factor 1 user
AttRotDeg AttRotDeg degrees readonly
PleXmm x mm user
RotApXmm x mm user
@@ -77,7 +78,7 @@ foreach {var nxname units priv} {
BSXmm x mm user
BSZmm z mm user
} {
::utility::mkVar $var float $priv $nxname true @none true true
::utility::mkVar $var float $priv $var true @none true true
if {$units != 1} {
sicslist setatt $var units $units
}
@@ -114,7 +115,7 @@ foreach {pname motor hdbname units} {
return [sicsmsgfmt [SplitReply [$motor]]]
}]
sicslist setatt $pname units $units
sicslist setatt $pname long_name $hdbname
sicslist setatt $pname long_name $pname
}
################################################################################
@@ -202,12 +203,8 @@ RotApPosYmm 675
################################################################################
# Check Config
##
# @brief List undefined parameters
proc missingparams {} {
namespace eval parameters {
set paramlist {
AttFactor
AttRotDeg
BS1
BS2
@@ -238,8 +235,6 @@ proc missingparams {} {
EApYmm
EApZmm
EndFacePosYmm
L1mm
L2mm
LambdaA
LambdaResFWHM%
Pent
@@ -270,6 +265,26 @@ proc missingparams {} {
VSdeg
VSrpm
}
foreach p $paramlist {
if [::utility::obj_exists $p] {
sicslist setatt $p klass parameter
}
}
set derived_paramlist {
AttFactor
L1mm
L2mm
}
foreach p $derived_paramlist {
if [::utility::obj_exists $p] {
sicslist setatt $p klass derived_parameter
}
}
}
##
# @brief List undefined parameters
proc ::parameters::missingparams {} {
variable paramlist
set num 0
foreach param $paramlist {
if {[sicslist match $param] == " "} {