Histmem now only calls TaskYield after SICS has finished initalising, this stops the statusfile task from being called early and overwriting the status file. Created ANSTO_MakeHistMemory command to install ANSTO_HistAction Added veto functions. Mapped the HistDriver interface Pause() and Continue() commands to AnstoHttpVeto and AnstoHttpNoVeto. Implemented an ANSTO_Histaction to call AnstoHttpPause when sent a "pause" subcommand. hmcontrol_ansto.c Call AnstoHttpPause() directly when Pause_HM_After_Count is set to preserver current behaviour. counterdriv.c Now sends the correct "SICS RESUME" command to resume a paused count. ansto_sctdriveadapter.c NEW This lets you create driveable objects from script-context controllers which have one node for setting a parameter and another node for reading the parameter (eg temperature controllers, choppers, velocity selectors) sctemonadapter.c NEW This generates an environment monitor interface for script-context controllers so that the emon object in SICS will be able to pause counters if the controller goes out of tolerance. sct_usbtmcprot.c, usbtmc.h NEW First attempt at a protocol handler for USB Test and Measurement Class devices sct_julabo_lh45.tcl NEW Implements script-context controller for the Julabo LH45 temperature controller. Makefile Added ansto_sctdriveadapter and sctemonadapter hardsup/makefile Added velocity selector and usbtmc protocol handlers hardsup/sct_velselprot.c Simplified, don't worry about trying to implement a login handler for now, just implement a "Reading" handler. site_ansto.c Add the velocity selector and USBTMC protocol handlers. Added the ANSTO_MakeHM command instrument/config/hipadaba/common_instrument_dictionary.tcl Added support for auxiliary data, ie extra meta-data entries in the "data" group of the nexus file. Add new NXvelocity_selector object under /instrument. instrument/config/hipadaba/hipadaba_configuration_common.tcl Add the new "sct_object" script-context controller objects to the hdb tree. instrument/config/hipadaba/instdict_specification.tcl Define the new sct_object controllers. instrument/config/hmm/hmm_configuration_common_1.tcl Use the new ANSTO_MakeHM command to create histmem drivers which support veto. Define allowed attributes and elements for the BAT_TABLE and FAT_TABLE Stop between counts instead of pausing because setting pause now sends a veto. instrument/config/motors/sct_jogmotor_common.tcl You now need to specify klass when creating a jogmotor. instrument/config/motors/sct_positmotor_common.tcl You can now specify an optional function which calculates the instrument parameter (eg attenuation) from a posit table entry when defining a posit motor. instrument/config/nexus/nxscripts_common_1.tcl Report file status info in the /experiment section of the hdb tree. Add auxiliary data to data file. Handle saving data from script-context controller objects. instrument/util/script_context_util.tcl Added procedure to set required properties for saving script-context object data. instrument/util/utility.tcl Added set_sct_object_attributes proc to automatically set required attributes on SCT_OBJECTs Fixed hlistplainprop to deal with empty property fields on hdb nodes. instrument/server_config.tcl Call the new nexus initialisation command and set attributes on sct objects. hrpd/config/motors/motor_configuration.tcl New absenc home readings for mchi and mphi. New absenc home and range for mf1 hipd/config/commands/commands.tcl Exported and published the new ajscmds so that they can be used in batch files. hipd/config/motors/motor_configuration.tcl New mchi absenc home rsd/config/hmm/hmm_configuration.tcl Provide support for saving corrected hmm data rsd/config/motors/motor_configuration.tcl Use simple names for motors. SICS-329 sans/config/INSTCFCOMMON.TXT Added julabo and lakeshore configuration files to list. sans/config/optics/guide_configuration.tcl Added entrance aperture positions to the configuration table and the cn_maps which map the index to the component ID. sans/commands/commands.tcl The "guide" command now set EApPosYmm after driving the guides in place. The indexed position to component maps (cn_map) have been moved to the guide_configuration.tcl file. sans/motors/motor_configuration.tcl Set samy home to 56.1mm sans/config/velsel/sct_velsel.tc NEW Implements script-context controller object for the NVS40 velocity selector. TODO tilt-angle control, driveable interface. sans/config/hmm/hmm_configuration.tcl Set 5.08mm spacing on detector width. Use pixel-offset for vertical and horizontal detector axes. sans/config/motors/motor_configuration.tcl Swap directions of beamstops 4 and 5 (the two smallest) New config parameters for samx, samthet, apx, det, detoff, bsz, sans/config/motors/positmotor_configuration.tcl Added descriptive headers to positmotor configuration tables and new synstax for the make positmotor command. sans/config/nexus/nxscripts.tcl Implemented initialisation command. sans/config/parameters/parameters.tcl Added SampleThickness and TransmissionFlag. Calculate SamplePosYmm from samy and SamyOffsetmm. Added beamstops to hdb tree. reflectometer/config/nexus/nxscripts.tcl Implement the initialisation procedure. r2767 | ffr | 2009-03-31 10:16:54 +1100 (Tue, 31 Mar 2009) | 123 lines
144 lines
4.6 KiB
Tcl
144 lines
4.6 KiB
Tcl
# The attributes and values for sics objects and instrument dictionaries must comply
|
|
# with the following lists.
|
|
|
|
set boolean {true false}
|
|
# INSTRUMENT DICTIONARIES MUST PROVIDE THE FOLLOWING INFORMATION
|
|
#set dict_property_list {
|
|
# data [subst {{$boolean}}]
|
|
# control [subst {{$boolean}}]
|
|
# nxsave [subst {{$boolean}}]
|
|
# nxtype [subst {{$nexus_classes}}]
|
|
#}
|
|
|
|
# SICS OBJECTS MUST PROVIDE THE FOLLOWING INFORMATION
|
|
set sobj_klass_list {@none aperture attenuator collimator command crystal data detector disk_chopper entry environment experiment graphics instrument slits monitor monochromator parameter derived_parameter plc sample scan sensor source user}
|
|
set sobj_sicstype_list {chopperadapter environment_controller sicsvariable macro motor configurablevirtualmotor singlecounter histmem nxscript sicsdata scanobject sct_object}
|
|
# 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.
|
|
# Parameters and feedback should be made available in 'ilists' named after the command.
|
|
# script: Supplies an rscript and a wscript to attach to a node for hgets and hsets.
|
|
# hobj: Something that can be hattached to a node. {motor sicsvariable histmem}.
|
|
# hdb_subtree: Is a macro which returns a keyed list that describes a hdb subtree.
|
|
set sobj_kind_list {command hobj script getset hdb_subtree scobj}
|
|
set sobj_interfacelist [subst {drivable {$boolean} countable {$boolean} callback {$boolean} environment {$boolean} }]
|
|
|
|
set privilege_list {spy user manager readonly internal}
|
|
set sobj_privilege [subst {privilege {$privilege_list}}]
|
|
|
|
# This is a subset of the list of attributes which the
|
|
# [sicslist <sobj>] command must return for the hdbbuilder
|
|
# The 'data' and 'control' attributes need to be part of the metadata for
|
|
# a sics object because you know how it could/should be used when you
|
|
# create it.
|
|
set sobj_attlist [subst {
|
|
$sobj_interfacelist
|
|
type [subst {{$sobj_sicstype_list}}]
|
|
klass [subst {{$sobj_klass_list}}]
|
|
long_name {text}
|
|
data [subst {{$boolean}}]
|
|
control [subst {{$boolean}}]
|
|
kind [subst {{$sobj_kind_list}}]
|
|
nxsave [subst {{$boolean}}]
|
|
$sobj_privilege
|
|
}]
|
|
|
|
# OBJECT SPECIFIC ATTRIBUTES
|
|
set chopperadapter_attlist [subst {
|
|
$sobj_attlist
|
|
savecmd {print}
|
|
sdsinfo {print}
|
|
nxalias {text}
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
set environment_controller_attlist [subst {
|
|
$sobj_attlist
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
set histmem_attlist [subst {
|
|
$sobj_attlist
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
# A macro can be attached to an hdb node as a command or a script
|
|
set macro_attlist [subst {
|
|
$sobj_attlist
|
|
}]
|
|
|
|
set motor_attlist [subst {
|
|
$sobj_attlist
|
|
units alpha
|
|
savecmd {print}
|
|
nxalias {text}
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
set configurablevirtualmotor_attlist [subst {
|
|
$motor_attlist
|
|
}]
|
|
|
|
set nxscript_attlist [subst {
|
|
$sobj_attlist
|
|
}]
|
|
|
|
set scanobject_attlist [subst {
|
|
$sobj_attlist
|
|
}]
|
|
|
|
set sct_object_attlist [subst {
|
|
$sobj_attlist
|
|
}]
|
|
|
|
set sicsdata_attlist [subst {
|
|
$sobj_attlist
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
set sicsvariable_attlist [subst {
|
|
$sobj_attlist
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
|
|
set singlecounter_attlist [subst {
|
|
$sobj_attlist
|
|
mutable [subst {{$boolean}}]
|
|
}]
|
|
# INSTRUMENT DICTIONARIES MUST PROVIDE THE FOLLOWING INFORMATION
|
|
if 1 {
|
|
set nexus_classes { NXaperture NXattenuator NXbeam_stop NXbeam NXbending_magnet NXcharacterizations NXcollimator NXcrystal NXdata NXdetector NXdisk_chopper NXentry NXenvironment NXevent_data NXfermi_chopper NXfilter NXflipper NXgeometry NXguide NXinsertion_device NXinstrument NXlog NXmirror NXmoderator NXmonitor NXnote NXorientation NXpositioner NXprocess NXroot NXsample NXsensor NXshape NXsource NXtranslation NXuser NXvelocity_selector}
|
|
|
|
set dict_privilege_list {
|
|
}
|
|
# datatype can include rank and dimensions
|
|
# @none is included to allow subtree nodes and leaves to be handled
|
|
# uniformly.
|
|
set dict_datatype_list { @none NX_CHAR NX_FLOAT32 NX_INT32 }
|
|
|
|
# link = name of an nxalias
|
|
set dict_property_list [subst {
|
|
{data control nxsave} {$boolean}
|
|
klass {@none $nexus_classes}
|
|
type {commandset graphset instrument part nxvgroup}
|
|
nxalias text
|
|
link {@none text}
|
|
savecmd text
|
|
}]
|
|
|
|
|
|
# hpath looks like /a/b/c/
|
|
set regex_hpath {^(/)$|^([_a-z0-9]+)(/[_a-z0-9]+)*$}
|
|
set instrument_dictionary_spec [subst {
|
|
regex_hpath {
|
|
optional {
|
|
sobj {{@any $sobj_sicstype_list} {$sobj_klass_list}}
|
|
}
|
|
required {
|
|
privilege {$privilege_list}
|
|
datatype [subst {{$dict_datatype_list}}]
|
|
property [subst {{$dict_property_list}}]
|
|
}
|
|
}
|
|
}]
|
|
}
|