update for Lyrebird deployment
r3105 | jgn | 2011-04-20 08:48:12 +1000 (Wed, 20 Apr 2011) | 1 line
This commit is contained in:
committed by
Douglas Clowes
parent
9acffeb772
commit
8b1d0103f4
@@ -0,0 +1,348 @@
|
||||
#-------------------------------------------------------------------------
|
||||
# Functions for writing NeXus files for a triple axis spectrometer and
|
||||
# configuration of the internal scan object to support this.
|
||||
#
|
||||
# Mark Koennecke, May 2005
|
||||
# reworked to new NeXus standards, Mark Koennecke, February 2007
|
||||
#-----------------------------------------------------------------------
|
||||
catch {sicsdatafactory new __transfer}
|
||||
set __tasdata(out) ""
|
||||
#----------------------------------------------------------------------
|
||||
proc appendMotor {np motor alias} {
|
||||
set val [tasSplit [$motor]]
|
||||
if { [string length $val] > 0} {
|
||||
__transfer putfloat 0 $val
|
||||
nxscript putslab $alias [list $np] [list 1] __transfer
|
||||
} else {
|
||||
clientput "WARNING: failed to read $motor"
|
||||
}
|
||||
}
|
||||
#------------------------------------------------------------------
|
||||
proc appendIfPresent {np obj alias} {
|
||||
# sea_get is defined in ~/sea/tcl/remob.tcl
|
||||
set status [catch {sea_get val $obj} msg]
|
||||
if {$status != 0} {
|
||||
return
|
||||
}
|
||||
if {$msg} {
|
||||
__transfer putfloat 0 $val
|
||||
nxscript putslab $alias [list $np] [list 1] __transfer
|
||||
}
|
||||
}
|
||||
#------------------------------------------------------------------
|
||||
proc appendFloat {np alias val} {
|
||||
if {[string length $val] > 0} {
|
||||
__transfer putfloat 0 $val
|
||||
nxscript putslab $alias [list $np] [list 1] __transfer
|
||||
} else {
|
||||
clientput "WARNING: failed to read $alias"
|
||||
}
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc appendCount {np value alias} {
|
||||
__transfer putint 0 $value
|
||||
nxscript putslab $alias [list $np] [list 1] __transfer
|
||||
}
|
||||
#--------------------------------------------------------------------
|
||||
proc donothing {obj userobj} {
|
||||
}
|
||||
#---------------------------------------------------------------------
|
||||
proc xmlprepare {obj userobj} {
|
||||
global __tasdata
|
||||
#------- normal prepare
|
||||
tasscan prepare $obj $userobj
|
||||
|
||||
#--------- parse out variable
|
||||
set out [tasSplit [output]]
|
||||
if {[string compare [string toupper $out] "UNKNOWN"]==0} {
|
||||
set out ""
|
||||
}
|
||||
set out [string map { "=" " " "," " "} $out]
|
||||
set outlist [split $out]
|
||||
foreach var $outlist {
|
||||
if { [string length $var] > 1} {
|
||||
set ret [catch {tasSplit [$var]} msg]
|
||||
if {$ret == 0} {
|
||||
lappend __tasdata(out) $var
|
||||
}
|
||||
}
|
||||
}
|
||||
#------- build Header
|
||||
append head " PNT "
|
||||
set scanvars [split [tasSplit [iscan getscanvars]]]
|
||||
foreach var $scanvars {
|
||||
if { [string length $var] > 1} {
|
||||
append head [format "%9s " [string toupper $var]]
|
||||
}
|
||||
}
|
||||
foreach var $__tasdata(out) {
|
||||
append head [format "%9s " [string toupper $var]]
|
||||
}
|
||||
append head [format "%8s " M1]
|
||||
append head [format "%8s " M2]
|
||||
append head [format "%8s " TIME]
|
||||
append head [format "%8s " CNTS]
|
||||
append head [format "%8s " CTOT]
|
||||
clientput $head
|
||||
|
||||
set __tasdata(starttime) [sicstime]
|
||||
|
||||
xmltaswrite $obj $userobj
|
||||
}
|
||||
#--------------------------------------------------------------------
|
||||
proc xmlwritepoint {obj userobj np} {
|
||||
global __tasdata scripthome
|
||||
|
||||
nxscript reopen $__tasdata(file) $scripthome/tasub.dic
|
||||
|
||||
append line [format " %3d" $np]
|
||||
set scanvars [split [tasSplit [iscan getscanvars]]]
|
||||
foreach var $scanvars {
|
||||
if { [string length $var] > 1} {
|
||||
set val [tasSplit [eval $var]]
|
||||
append line [format "%9.4f " [tasSplit [$var]]]
|
||||
appendMotor $np $var sc_$var
|
||||
lappend storedvars $var
|
||||
}
|
||||
}
|
||||
foreach var $__tasdata(out) {
|
||||
append line [format "%9.4f " [tasSplit [eval $var]]]
|
||||
appendMotor $np $var sc_$var
|
||||
lappend storedvars $var
|
||||
|
||||
}
|
||||
|
||||
|
||||
append line [format "%8d " [tasSplit [counter getmonitor 1]]]
|
||||
append line [format "%8d " [tasSplit [counter getmonitor 2]]]
|
||||
append line [format "%8.2f " [tasSplit [counter gettime]]]
|
||||
append line [format "%8d " [tasSplit [counter getcounts]]]
|
||||
clientput $line
|
||||
|
||||
appendCount $np [tasSplit [counter getcounts]] counts
|
||||
appendCount $np [tasSplit [counter getmonitor 1]] cter_01
|
||||
appendCount $np [tasSplit [counter getcounts]] cter_02
|
||||
appendFloat $np motime [tasSplit [counter gettime]]
|
||||
|
||||
set varlist [list qh qk ql qm en ei ef a1 a2 a3 a4 a5 a6 sgu sgl]
|
||||
|
||||
foreach var $varlist {
|
||||
if {[lsearch $storedvars $var] < 0} {
|
||||
appendMotor $np $var sc_${var}
|
||||
}
|
||||
}
|
||||
|
||||
if {$np == 0} {
|
||||
makeTASLinks
|
||||
}
|
||||
|
||||
nxscript close
|
||||
}
|
||||
#====================== actual XML stuff ============================
|
||||
proc writeUserData {} {
|
||||
writeTextVar usnam user
|
||||
writeTextVar usaff affiliation
|
||||
writeTextVar usadd address
|
||||
writeTextVar usmail email
|
||||
writeTextVar lonam local
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc writeMonochromator {} {
|
||||
global __tasdata
|
||||
nxscript puttext mono_type "Pyrolytic Graphite"
|
||||
appendMotor 0 mcv sc_mcv
|
||||
nxscript putfloat mono_dd [tasSplit [tasub mono dd]]
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc writeAnalyzer {} {
|
||||
global __tasdata
|
||||
nxscript puttext ana_type "Pyrolytic Graphite"
|
||||
nxscript putfloat ana_dd [tasSplit [tasub ana dd]]
|
||||
set sa [tasSplit [tasub ss]]
|
||||
if {$sa == 1} {
|
||||
set az 0.
|
||||
} else {
|
||||
set az 180.
|
||||
}
|
||||
nxscript putfloat ana_az $az
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc writeDetector {} {
|
||||
global __tasdata
|
||||
set sa [tasSplit [tasub ana ss]]
|
||||
if {$sa == 1} {
|
||||
set az 0.
|
||||
} else {
|
||||
set az 180.
|
||||
}
|
||||
nxscript putfloat det_az $az
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc writeMonitor {} {
|
||||
nxscript putcounter cter counter
|
||||
}
|
||||
#-----------------------------------------------------------------
|
||||
proc writeSample {} {
|
||||
global __tasdata
|
||||
tasscan nxdump nxscript sa
|
||||
writeTextVar sanam sample
|
||||
set sa [tasSplit [tasub mono ss]]
|
||||
if {$sa == 1} {
|
||||
set az 0.
|
||||
} else {
|
||||
set az 180.
|
||||
}
|
||||
nxscript putfloat saaz $az
|
||||
}
|
||||
#-----------------------------------------------------------------
|
||||
proc writePowderSample {} {
|
||||
global __tasdata
|
||||
tasscan nxdump nxscript sa
|
||||
writeTextVar sanam sample
|
||||
set sa [tasSplit [tasub mono ss]]
|
||||
if {$sa == 1} {
|
||||
set az 0.
|
||||
} else {
|
||||
set az 180.
|
||||
}
|
||||
nxscript putfloat saaz $az
|
||||
}
|
||||
#------------------------------------------------------------------
|
||||
proc makeTASLinks {} {
|
||||
nxscript makelink dana sc_ei
|
||||
nxscript makelink dana sc_ef
|
||||
nxscript makelink dana sc_qh
|
||||
nxscript makelink dana sc_qk
|
||||
nxscript makelink dana sc_ql
|
||||
nxscript makelink dana sc_en
|
||||
nxscript makelink dana counts
|
||||
}
|
||||
#------------------------------------------------------------------
|
||||
proc makePowderLinks {} {
|
||||
nxscript makelink dana sc_ei
|
||||
nxscript makelink dana sc_ef
|
||||
nxscript makelink dana sc_qm
|
||||
nxscript makelink dana sc_en
|
||||
nxscript makelink dana counts
|
||||
}
|
||||
#-------------------------------------------------------------------
|
||||
proc makeScanLinks {} {
|
||||
set alreadyLinked [list sc_ei sc_ef sc_qh sc_qf sc_qk sc_en sc_qm]
|
||||
set nscan [tasSplit [iscan noscanvar]]
|
||||
set axis 0
|
||||
for {set i 0} {$i < $nscan} {incr i } {
|
||||
set varpar [iscan getvarpar $i]
|
||||
set l [split $varpar =]
|
||||
set var [lindex $l 0]
|
||||
set idx [string first . $var]
|
||||
set var [string range $var [expr $idx + 1] end]
|
||||
set alias [format "sc_%s" [string trim $var]]
|
||||
set testalias [string trim [tasSplit [nxscript isalias $alias]]]
|
||||
if {[lsearch $alreadyLinked $alias] < 0} {
|
||||
if {$testalias == 1} {
|
||||
nxscript makelink dana $alias
|
||||
}
|
||||
}
|
||||
if {$axis == 0} {
|
||||
set step [string trim [lindex $l 2]]
|
||||
if {abs($step) > .001} {
|
||||
if {$testalias == 1} {
|
||||
nxscript putattribute $alias axis 1
|
||||
set axis 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
# if axis = 0 there is no alias; so we create something in here from the
|
||||
# scan data in iscan
|
||||
if {$axis == 0} {
|
||||
set data [tasSplit [iscan getvardata 0]]
|
||||
set count 0
|
||||
foreach e $data {
|
||||
set ar($count) [string trim $e]
|
||||
incr count
|
||||
}
|
||||
nxscript putarray danascanvar ar [llength $data]
|
||||
}
|
||||
}
|
||||
#--------------------------------------------------------------------
|
||||
proc xmltaswrite {obj userobj} {
|
||||
global home __tasdata
|
||||
|
||||
set fil [string trim [tasSplit [iscan getfile]]]
|
||||
nxscript createxml $fil $home/tasub.dic
|
||||
set __tasdata(file) $fil
|
||||
|
||||
writeTextVar etitle title
|
||||
nxscript puttext estart $__tasdata(starttime)
|
||||
nxscript puttext eend [sicstime]
|
||||
nxscript puttext edef NXmonotas
|
||||
nxscript putglobal file_name $fil
|
||||
nxscript putglobal file_time [sicstime]
|
||||
|
||||
nxscript updatedictvar NP [tasSplit [iscan np]]
|
||||
nxscript updatedictvar INSTRUMENT [tasSplit [instrument]]
|
||||
|
||||
writeUserData
|
||||
|
||||
writeMonochromator
|
||||
|
||||
writeMonitor
|
||||
|
||||
writeSample
|
||||
|
||||
writeAnalyzer
|
||||
|
||||
writeDetector
|
||||
|
||||
|
||||
nxscript close
|
||||
}
|
||||
#--------------------------------------------------------------------
|
||||
proc xmlpowderwrite {obj userobj} {
|
||||
global home __tasdata
|
||||
|
||||
set fil [string trim [tasSplit [iscan getfile]]]
|
||||
nxscript createxml $fil $home/tasub.dic
|
||||
set __tasData(file) $fil
|
||||
|
||||
writeTextVar etitle title
|
||||
nxscript puttext estart $__tasdata(starttime)
|
||||
nxscript puttext eend [sicstime]
|
||||
nxscript puttext edef NXmonotas
|
||||
nxscript putglobal file_name $fil
|
||||
nxscript putglobal file_time [sicstime]
|
||||
|
||||
nxscript updatedictvar NP [tasSplit [iscan np]]
|
||||
nxscript updatedictvar INSTRUMENT [tasSplit [instrument]]
|
||||
|
||||
writeUserData
|
||||
|
||||
writeMonochromator
|
||||
|
||||
writeMonitor
|
||||
|
||||
writePowderSample
|
||||
|
||||
writeAnalyzer
|
||||
|
||||
writeDetector
|
||||
|
||||
makePowderLinks
|
||||
|
||||
nxscript close
|
||||
}
|
||||
#--------------------------------------------------------------------
|
||||
proc xmlfinish {obj userobj} {
|
||||
}
|
||||
#----------------------------------------------------------------------
|
||||
proc initxmlscan {} {
|
||||
iscan configure script
|
||||
iscan function writeheader donothing
|
||||
iscan function prepare xmlprepare
|
||||
iscan function drive tasscan drive
|
||||
iscan function count tasscan count
|
||||
iscan function collect tasscan collect
|
||||
iscan function writepoint xmlwritepoint
|
||||
iscan function finish xmlfinish
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
##NXDICT-1.0
|
||||
#-----------------------------------------------------------------------
|
||||
# NeXus dictionary file for a triple axis spectrometer following
|
||||
# the instrument definition as of May 2005
|
||||
#
|
||||
# Do not modify this file if you do not knwo what you are doing,
|
||||
# you may corrupt your data files!
|
||||
#
|
||||
# Mark Koennecke, May 2005
|
||||
#----------------------------------------------------------------------
|
||||
NP=1
|
||||
INSTRUMENT=TASUB
|
||||
#--------- entry level
|
||||
etitle=/entry1,NXentry/SDS title -type NX_CHAR -rank 1
|
||||
estart=/entry1,NXentry/SDS start_time -type DFNT_CHAR -rank 1
|
||||
eend=/entry1,NXentry/SDS end_time -type DFNT_CHAR -rank 1
|
||||
edef=/entry1,NXentry/SDS definition -type DFNT_CHAR -rank 1 \
|
||||
-attr {URL,http://www.nexus.anl.gov/instruments/xml/NXmonotas.xml} \
|
||||
-attr {version,1.0}
|
||||
#---------- looser
|
||||
usnam=/entry1,NXentry/user,NXuser/SDS name -type NX_CHAR -rank 1
|
||||
usaff=/entry1,NXentry/user,NXuser/SDS affiliation -type NX_CHAR -rank 1
|
||||
usadd=/entry1,NXentry/user,NXuser/SDS address -type NX_CHAR -rank 1
|
||||
usmail=/entry1,NXentry/user,NXuser/SDS email -type NX_CHAR -rank 1
|
||||
#---------- local contact
|
||||
lonam=/entry1,NXentry/local_contact,NXuser/SDS name -type NX_CHAR -rank 1
|
||||
#------------- sample
|
||||
sanam=/entry1,NXentry/sample,NXsample/SDS name -type NX_CHAR -rank 1
|
||||
sa_cell=/entry1,NXentry/sample,NXsample/SDS unit_cell -rank 1 -dim {6}
|
||||
sa_norm=/entry1,NXentry/sample,NXsample/SDS plane_normal -rank 1 -dim {3}
|
||||
sa_vec1=/entry1,NXentry/sample,NXsample/SDS plane_vector_1 -rank 1 -dim {3}
|
||||
sa_vec2=/entry1,NXentry/sample,NXsample/SDS plane_vector_2 -rank 1 -dim {3}
|
||||
sa_ub=/entry1,NXentry/sample,NXsample/SDS orientation_matrix -rank 2 \
|
||||
-dim {3,3}
|
||||
sapol=/entry1,NXentry/sample,NXsample/SDS polar_angle \
|
||||
-rank 1 -attr {units,degree}
|
||||
saa3=/entry1,NXentry/sample,NXsample/SDS rotation_angle \
|
||||
-rank 1 -attr {units,degree}
|
||||
sasgl=/entry1,NXentry/sample,NXsample/SDS sgl \
|
||||
-rank 1 -attr {units,degree}
|
||||
sasgu=/entry1,NXentry/sample,NXsample/SDS sgu \
|
||||
-rank 1 -attr {units,degree}
|
||||
saqh=/entry1,NXentry/sample,NXsample/SDS Qh -rank 1
|
||||
saqk=/entry1,NXentry/sample,NXsample/SDS Qk -rank 1
|
||||
saql=/entry1,NXentry/sample,NXsample/SDS Ql -rank 1
|
||||
saqm=/entry1,NXentry/sample,NXsample/SDS Qm -rank 1
|
||||
saen=/entry1,NXentry/sample,NXsample/SDS energy_transfer -rank 1 \
|
||||
-attr {units,mev}
|
||||
saaz=/entry1,NXentry/sample,NXsample/SDS azimuthal_angle -attr {units,degree}
|
||||
#----------- monochromator
|
||||
mono_type=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS type -type NX_CHAR -rank 1
|
||||
mono_e=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS energy -rank 1 -dim {$(NP)} \
|
||||
-attr {units,mev}
|
||||
mono_theta=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS rotation_angle \
|
||||
-rank 1 -dim {$(NP)} -attr {units,degree}
|
||||
mono_dd=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS d_spacing -attr {units,Angstroem}
|
||||
#----------- analyzer
|
||||
ana_type=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS type -type NX_CHAR -rank 1
|
||||
ana_e=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS energy -rank 1 -dim {$(NP)} \
|
||||
-attr {units,mev}
|
||||
ana_theta=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS rotation_angle \
|
||||
-rank 1 -dim {$(NP)} -attr {units\,degree}
|
||||
ana_pol=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS polar_angle -rank 1 -dim {$(NP)} \
|
||||
-attr {units,degree}
|
||||
ana_dd=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS d_spacing -attr {units,Angstroem}
|
||||
ana_az=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS azimuthal_angle -attr {units,degree}
|
||||
#--------- detector
|
||||
det_pol=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS polar_angle -rank 1 -dim {$(NP)} \
|
||||
-attr {units,degree}
|
||||
counts=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS counts -type NX_INT32 -rank 1 -dim {$(NP)} \
|
||||
-attr {units,degree} -attr {signal,1}
|
||||
det_az=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS azimuthal_angle -attr {units,degree}
|
||||
#------- monitors
|
||||
cter_mode=/entry1,NXentry/control,NXmonitor/SDS mode -type NX_CHAR -rank 1 -dim {30}
|
||||
cter_preset=/entry1,NXentry/control,NXmonitor/SDS preset
|
||||
motime=/entry1,NXentry/control,NXmonitor/SDS time -attr {units,seconds} -rank 1 -dim {$(NP)}
|
||||
mo01=/entry1,NXentry/control,NXmonitor/SDS data -type NX_INT32 -rank 1 -dim {$(NP)}
|
||||
mo02=/entry1,NXentry/sample_stage,NXmonitor/SDS data -type NX_INT32 -rank 1 -dim {$(NP)}
|
||||
#------- NXdata
|
||||
dana=/entry1,NXentry/data,NXdata/NXVGROUP
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
*************************** TOPSI Data File ********************************
|
||||
Title = !!VAR(Title)!!
|
||||
User = !!VAR(User)!!
|
||||
File Creation Stardate: !!DATE!!
|
||||
****************************************************************************
|
||||
Monochromator Lamda = !!DRIV(lambda)!!
|
||||
Monochromator A1 = !!DRIV(A1)!!
|
||||
Monochromator A2 = !!DRIV(A2)!!
|
||||
----------------------------------------------------------------------------
|
||||
Sample STL = !!DRIV(STL)!!
|
||||
Sample STU = !!DRIV(STU)!!
|
||||
Sample SGL = !!DRIV(SGL)!!
|
||||
Sample SGU = !!DRIV(SGU)!!
|
||||
Zero STL = !!ZERO(STL)!!
|
||||
Zero STU = !!ZERO(STU)!!
|
||||
Zero SGL = !!ZERO(SGL)!!
|
||||
Zero SGU = !!ZERO(SGU)!!
|
||||
!!SCANZERO!!
|
||||
**************************** DATA ******************************************
|
||||
@@ -0,0 +1,286 @@
|
||||
# --------------------------------------------------------------------------
|
||||
# Initialization script for Triple Axis Instruments using the
|
||||
# Mark Lumsden UB matrix calculus
|
||||
#
|
||||
# Dr. Mark Koennecke, May 2005
|
||||
#---------------------------------------------------------------------------
|
||||
# O P T I O N S
|
||||
#--------------------------------------------------------------------------
|
||||
# simMode
|
||||
# - 0 real instrument
|
||||
# - 1 development simulation
|
||||
# - 2 simserver at instrument
|
||||
#--------------------------------------------------------------------------
|
||||
set simMode 1
|
||||
|
||||
set ts psts230.psi.ch
|
||||
set mupad 0
|
||||
|
||||
#---------- Enable this for more startup debugging
|
||||
protocol set all
|
||||
|
||||
#--------------- define home
|
||||
if {$simMode == 1} {
|
||||
set home $env(HOME)/src/workspace/sics/sim/taspub_sics
|
||||
set scripthome $home
|
||||
set loghome $env(HOME)/src/workspace/sics/sim/tmp
|
||||
set datahome $loghome
|
||||
ServerOption LoggerDir $env(HOME)/src/workspace/sics/test/samenv
|
||||
} else {
|
||||
set home /home/taspub
|
||||
set scripthome $home/taspub_sics
|
||||
set loghome $home/log
|
||||
set datahome $home/data/2010
|
||||
ServerOption LoggerDir $home/sea/logger
|
||||
}
|
||||
|
||||
#ServerOption RedirectFile $loghome/stdtas
|
||||
|
||||
ServerOption ReadTimeOut 10
|
||||
|
||||
ServerOption AcceptTimeOut 10
|
||||
|
||||
ServerOption ReadUserPasswdTimeout 500000
|
||||
|
||||
ServerOption LogFileBaseName $loghome/tasplog
|
||||
|
||||
ServerOption ServerPort 2911
|
||||
|
||||
ServerOption InterruptPort 2917
|
||||
|
||||
ServerOption LogFileDir $loghome
|
||||
|
||||
ServerOption QuieckPort 2108
|
||||
|
||||
ServerOption statusfile $datahome/taspubstat.tcl
|
||||
|
||||
# Telnet Options
|
||||
ServerOption TelnetPort 1301
|
||||
ServerOption TelWord sicslogin
|
||||
#---------------------------------------------------------------------------
|
||||
# U S E R S
|
||||
|
||||
# Here the SICS users are specified
|
||||
# Syntax: SicsUser name password userRightsCode
|
||||
#SicsUser Spy 007 3
|
||||
#---------------------------------------------------------------------------
|
||||
SicsUser Spy 007 1
|
||||
SicsUser Manager Manager 1
|
||||
SicsUser lnsmanager lnsSICSlns 1
|
||||
SicsUser user 10lns1 2
|
||||
SicsUser taspuser 10lns1 2
|
||||
#---------------------------------------------------------------------------
|
||||
# M O T O R S
|
||||
|
||||
if {$simMode == 0} {
|
||||
|
||||
MakeRS232Controller mota $ts 3002
|
||||
mota replyterminator 0xd
|
||||
mota timeout 1000
|
||||
mota send "RMT 1"
|
||||
mota send "ECHO 0"
|
||||
mota send "RMT 1"
|
||||
mota send "ECHO 0"
|
||||
#mota debug 1
|
||||
|
||||
Motor A1 el734hp mota 1 # Monochromator Theta
|
||||
a1 interruptmode 1
|
||||
Motor A2 el734hp mota 9 # Monochromator Two-Theta
|
||||
a2 interruptmode 1
|
||||
Motor A3 el734hp mota 10 # Sample theta or omega
|
||||
a3 interruptmode 1
|
||||
Motor A4 el734hp mota 11 # Sample Two-Theta
|
||||
a4 interruptmode 1
|
||||
Motor MCV el734hp mota 3 # Monochromator curvature vertical
|
||||
Motor SRO el734hp mota 12 # Sample table second ring
|
||||
Motor MTL el734hp mota 4 # Monochromator translation lower
|
||||
Motor MTU el734hp mota 5 # Monochromator Translation upper
|
||||
Motor MGL el734hp mota 7 # Monochromator lower goniometer
|
||||
|
||||
|
||||
MakeRS232Controller motb $ts 3003
|
||||
motb replyterminator 0xd
|
||||
motb timeout 1000
|
||||
motb send "RMT 1"
|
||||
motb send "ECHO 0"
|
||||
motb send "RMT 1"
|
||||
motb send "ECHO 0"
|
||||
|
||||
Motor A5 el734hp motb 5 # Analyzer Theta
|
||||
a5 interruptmode 1
|
||||
Motor A6 el734hp motb 9 # Analyzer Two-Theta
|
||||
a6 interruptmode 1
|
||||
Motor ACH el734hp motb 6 # Analyzer curvature horizontal
|
||||
Motor STL el734hp motb 1 # Sample lower translation
|
||||
Motor STU el734hp motb 2 # Sample upper translation
|
||||
Motor ATL el734hp motb 7 # Analyzer lower translation
|
||||
Motor ATU el734hp motb 8 # Analyzer upper translation
|
||||
#Motor SGL SIM -17 17 -1 .0 # Monochromator upper goniometer
|
||||
#Motor SGU SIM -17 17 -1 .0 # Monochromator upper goniometer
|
||||
Motor SGL el734hp motb 3 # Sample lower goniometer
|
||||
Motor SGU el734hp motb 4 # Sample upper goniometer
|
||||
Motor AGL el734hp motb 11 # Analyzer lower goniometer
|
||||
#Motor AGU SIM -30. 30. -.1 2. # Analyzer upper goniometer
|
||||
#Motor MSC SIM -30. 30. -.1 2. # Monochromator changer
|
||||
#Motor ASC SIM -30. 30. -.1 2. # Analyzer changer
|
||||
#Motor CSC SIM -30. 30. -.1 2. # Collimator changer
|
||||
mcv precision .1
|
||||
} else {
|
||||
Motor A1 sim -86.7 6.1 -.1 .1 # Monochromator Theta
|
||||
Motor A2 sim -128.5 -21.65 -.1 .1 # Monochromator Two-Theta
|
||||
Motor A3 sim -179 170 -.1 .1 # Sample theta or omega
|
||||
Motor A4 sim -135 137.9 -.1 .1 # Sample Two-Theta
|
||||
Motor A5 sim -103 103 -.1 .1 # Analyzer Theta
|
||||
Motor A6 sim -138 118 -.1 .1 # Analyzer Two-Theta
|
||||
Motor MCV sim -9 124 -.1 .1 # Monochromator curvature vertical
|
||||
Motor SRO sim -180 351 -.1 .1 # Sample table second ring
|
||||
Motor ACH sim -.5 11 -.1 .1 # Analyzer curvature horizontal
|
||||
Motor MTL sim -17 17 -.1 .1 # Monochromator translation lower
|
||||
Motor MTU sim -17 17 -.1 .1 # Monochromator Translation upper
|
||||
Motor SGL sim -19 19 -1. 0 # Sample lower translation
|
||||
Motor SGU SIM -30. 30. -.1 2. # Sample upper translation
|
||||
Motor ATL sim -17 17 -.1 .1 # Analyzer lower translation
|
||||
Motor ATU sim -17 17 -.1 .1 # Analyzer upper translation
|
||||
Motor MGL sim -10 10 -.1 .1 # Monochromator lower goniometer
|
||||
Motor SGL sim -16 16 -.1 .1 # Sample lower goniometer
|
||||
Motor SGU sim -16 16 -.1 .1 # Sample upper goniometer
|
||||
Motor AGL sim -10 10 -.1 .1 # Analyzer lower goniometer
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# C U R R E N T S
|
||||
Motor I1 sim -2 2 -0.1 0.1
|
||||
Motor I2 sim -2 2 -0.1 0.1
|
||||
Motor I3 sim -2 2 -0.1 0.1
|
||||
Motor I4 sim -2 2 -0.1 0.1
|
||||
Motor I5 sim -2 2 -0.1 0.1
|
||||
Motor I6 sim -2 2 -0.1 0.1
|
||||
Motor I7 sim -2 2 -0.1 0.1
|
||||
Motor I8 sim -2 2 -0.1 0.1
|
||||
|
||||
}
|
||||
|
||||
#--------- script for saving motor parameters
|
||||
Publish savemotorpar Mugger
|
||||
proc savemotorpar {dir} {
|
||||
set mot(controllerlist) [list mota motb]
|
||||
set mot(mota) [list 1 9 10 11 3 12 4 5 7]
|
||||
set mot(motb) [list 5 9 6 1 2 7 8 3 4 11]
|
||||
savemotorarray mot $dir
|
||||
clientput "Done saving motor parameters"
|
||||
}
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# C O U N T E R
|
||||
#--------------------------------------------------------------------------
|
||||
if {$simMode == 0} {
|
||||
MakeCounter counter el737hp $ts 3004
|
||||
} else {
|
||||
MakeCounter counter sim -1.
|
||||
}
|
||||
#--------------------------------------------------------------------------
|
||||
VarMake instrument Text Mugger
|
||||
instrument TASPUB
|
||||
instrument lock
|
||||
|
||||
VarMake title Text User
|
||||
VarMake user Text User
|
||||
VarMake affiliation Text User
|
||||
VarMake address Text User
|
||||
VarMake email Text User
|
||||
VarMake lastscancommand Text User
|
||||
VarMake output Text User
|
||||
VarMake local Text User
|
||||
VarMake sample Text User
|
||||
#--------------------------------------------------------------------------
|
||||
# I N S T A L L M U P A D
|
||||
#-------------------------------------------------------------------------
|
||||
if {$mupad == 1} {
|
||||
source $scripthome/mupad.tcl
|
||||
# new mupad commands by M.Z.
|
||||
set mudata(sim) 0
|
||||
source $scripthome/muco.tcl
|
||||
source $scripthome/stddrive.tcl
|
||||
source $scripthome/slsecho.tcl
|
||||
if {$simMode == 0} {
|
||||
makesctcontroller slssct slsecho taspmagnet:5001
|
||||
slsecho::makeslsecho i1 0 slssct
|
||||
slsecho::makeslsecho i2 1 slssct
|
||||
slsecho::makeslsecho i3 2 slssct
|
||||
slsecho::makeslsecho i4 3 slssct
|
||||
slsecho::makeslsecho i5 4 slssct
|
||||
slsecho::makeslsecho i6 5 slssct
|
||||
}
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
# Polarisation file
|
||||
VarMake polfile Text User
|
||||
#-------------------------------------------------------------------------
|
||||
# Datafile generation variables
|
||||
VarMake SicsDataPath Text Mugger
|
||||
SicsDataPath "$datahome/"
|
||||
sicsdatapath lock
|
||||
VarMake SicsDataPrefix Text Mugger
|
||||
SicsDataPrefix taspub
|
||||
SicsDataPrefix lock
|
||||
VarMake SicsDataPostFix Text Mugger
|
||||
SicsDataPostFix ".xml"
|
||||
#SicsDataPostFix ".scn"
|
||||
SicsDataPostFix lock
|
||||
MakeDataNumber SicsDataNumber "$datahome/DataNumber"
|
||||
#----------------------------------------------------------------------
|
||||
# Collimation etc. parameters
|
||||
#----------------------------------------------------------------------
|
||||
VarMake alf1 Float User
|
||||
VarMake alf2 Float User
|
||||
VarMake alf3 Float User
|
||||
VarMake alf4 Float User
|
||||
VarMake bet1 Float User
|
||||
VarMake bet2 Float User
|
||||
VarMake bet3 Float User
|
||||
VarMake bet4 Float User
|
||||
VarMake ETAM Float User
|
||||
VarMake ETAS Float User
|
||||
VarMake ETAA Float User
|
||||
#-----------------------------------------------------------------------
|
||||
# A helper variable for the status display
|
||||
#-----------------------------------------------------------------------
|
||||
VarMake scaninfo text Internal
|
||||
scaninfo "0,Unknown,1.0,.1"
|
||||
#------------------------------------------------------------------------
|
||||
# I N S T A L L S P E C I A L T A S C O M M A N D S
|
||||
#------------------------------------------------------------------------
|
||||
MakeTasUB tasub
|
||||
#--------------------------- TAS scan command
|
||||
MakeScanCommand iscan counter tas.hdd recover.bin
|
||||
MakePeakCenter iscan
|
||||
MakeTasScan iscan tasub
|
||||
#-------------------------- new exe manager
|
||||
definealias do exe
|
||||
alias batchroot exe batchpath
|
||||
#-------------------------- normal drive command
|
||||
MakeDrive
|
||||
#-------------------------- for NeXus
|
||||
MakeNXScript
|
||||
#------------------------------------------------------------------------
|
||||
# I N S T A L L T A S U B S C R I P T E D C O M M A N D S
|
||||
#------------------------------------------------------------------------
|
||||
source $scripthome/taspubcom.tcl
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# stuff for sea
|
||||
|
||||
if {$simMode == 0} {
|
||||
definealias tem temperature
|
||||
source $home/sea/tcl/remob.tcl
|
||||
connect_sea
|
||||
#-------------------------------------------------------------------------
|
||||
# SPS to look at guide field
|
||||
#------------------------------------------------------------------------
|
||||
MakeSPS sps $ts 3006 10
|
||||
|
||||
}
|
||||
|
||||
restore
|
||||
|
||||
sicscron 10 backupCron $datahome/statusHistory
|
||||
@@ -0,0 +1,47 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# The triple axis people love to have the command set emulate the command
|
||||
# set of TASMAD as closely as possible. This is implemented through
|
||||
# some scripting. This version is for the new syntax to be used with the
|
||||
# new UB matrix calculaus for triple axis.
|
||||
#
|
||||
# Mark Koennecke, May 2005
|
||||
#--------------------------------------------------------------------------
|
||||
|
||||
proc SplitReply { text } {
|
||||
set l [split $text =]
|
||||
return [string trim [lindex $l 1]]
|
||||
}
|
||||
|
||||
source $scripthome/nxtas.tcl
|
||||
source $scripthome/nxsupport.tcl
|
||||
source $scripthome/tasscript.tcl
|
||||
|
||||
initxmlscan
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
proc wwwsics {} {
|
||||
append result "<table BORDER=2>\n"
|
||||
append result "<tr><th>User</th> <td>" [tasSplit [user]] "</td></tr>\n"
|
||||
append result "<tr><th>Title</th> <td>"
|
||||
append result [tasSplit [title]] "</td></tr>\n"
|
||||
append result "<tr><th>Status</th> <td>"
|
||||
append result [tasSplit [status]] "</td></tr>\n"
|
||||
append result "<tr><th>Last Scan Command</th> <td>"
|
||||
append result [tasSplit [lastcommand]] "</td></tr>\n"
|
||||
append result "<tr><th>A1</td><td>"
|
||||
append result [tasSplit [a1]] "</td><th>A2</th><td>"
|
||||
append result [tasSplit [a2]] "</td></tr>\n"
|
||||
append result "<tr><th>A3</td><td>"
|
||||
append result [tasSplit [a3]] "</td><th>A4</th><td>"
|
||||
append result [tasSplit [a4]] "</td></tr>\n"
|
||||
append result "<tr><th>A5</td><td>"
|
||||
append result [tasSplit [a5]] "</td><th>A6</th><td>"
|
||||
append result [tasSplit [a6]] "</td></tr>\n"
|
||||
append result "<tr><th>Ki</th><td>" [tasSplit [ki]] "</td>"
|
||||
append result "<th>Kf</th><td>" [tasSplit [kf]] "</td>"
|
||||
append result "<th>En</th><td>" [tasSplit [en]] "</td></tr>\n"
|
||||
append result "<tr><th>Qh</th><td>" [tasSplit [qh]] "</td>"
|
||||
append result "<th>Qk</th><td>" [tasSplit [qk]] "</td>"
|
||||
append result "<th>Ql</th><td>" [tasSplit [ql]] "</td></tr>\n"
|
||||
append result "</table>\n"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,138 @@
|
||||
##NXDICT-1.0
|
||||
#-----------------------------------------------------------------------
|
||||
# NeXus dictionary file for a triple axis spectrometer following
|
||||
# the instrument definition as of May 2005
|
||||
#
|
||||
# Do not modify this file if you do not knwo what you are doing,
|
||||
# you may corrupt your data files!
|
||||
#
|
||||
# Mark Koennecke, May 2005
|
||||
# Mark Koennecke, August 2006
|
||||
# Change to new NeXus standards, Mark Koennecke, February 2007
|
||||
#----------------------------------------------------------------------
|
||||
NP=1
|
||||
INSTRUMENT=TASPUB
|
||||
#--------- entry level
|
||||
etitle=/entry1,NXentry/SDS title -type NX_CHAR -rank 1
|
||||
instrument=/entry1,NXentry/SDS instrument -type NX_CHAR -rank 1
|
||||
escancommand=/entry1,NXentry/SDS scancommand -type NX_CHAR -rank 1
|
||||
escanvars=/entry1,NXentry/SDS scanvars -type NX_CHAR -rank 1
|
||||
estart=/entry1,NXentry/SDS start_time -type DFNT_CHAR -rank 1
|
||||
eend=/entry1,NXentry/SDS end_time -type DFNT_CHAR -rank 1
|
||||
edef=/entry1,NXentry/SDS definition -type DFNT_CHAR -rank 1 \
|
||||
-attr {URL,http://www.nexus.anl.gov/instruments/xml/NXmonotas.xml} \
|
||||
-attr {version,1.0}
|
||||
#---------- looser
|
||||
usnam=/entry1,NXentry/user,NXuser/SDS name -type NX_CHAR -rank 1
|
||||
usaff=/entry1,NXentry/user,NXuser/SDS affiliation -type NX_CHAR -rank 1
|
||||
usadd=/entry1,NXentry/user,NXuser/SDS address -type NX_CHAR -rank 1
|
||||
usmail=/entry1,NXentry/user,NXuser/SDS email -type NX_CHAR -rank 1
|
||||
#---------- local contact
|
||||
lonam=/entry1,NXentry/local_contact,NXuser/SDS name -type NX_CHAR -rank 1
|
||||
#------------- sample
|
||||
sa_temperature=/entry1,NXentry/sample,NXsample/SDS temperature \
|
||||
-attr {units,K} -rank 1 -dim {-1}
|
||||
sc_tt=/entry1,NXentry/sample,NXsample/SDS temperature \
|
||||
-attr {units,K} -rank 1 -dim {-1}
|
||||
sa_field=/entry1,NXentry/sample,NXsample/SDS magnetic_field \
|
||||
-attr {units,Tesla} -rank 1 -dim {-1}
|
||||
sc_temperature=/entry1,NXentry/sample,NXsample/SDS temperature \
|
||||
-attr {units,K} -rank 1 -dim {-1}
|
||||
sc_te=/entry1,NXentry/sample,NXsample/SDS temperature \
|
||||
-attr {units,K} -rank 1 -dim {-1}
|
||||
sc_field=/entry1,NXentry/sample,NXsample/SDS magnetic_field \
|
||||
-attr {units,Tesla} -rank 1 -dim {-1}
|
||||
sc_mf=/entry1,NXentry/sample,NXsample/SDS magnetic_field \
|
||||
-attr {units,Tesla} -rank 1 -dim {-1}
|
||||
sanam=/entry1,NXentry/sample,NXsample/SDS name -type NX_CHAR -rank 1
|
||||
sa_cell=/entry1,NXentry/sample,NXsample/SDS unit_cell -rank 1 -dim {6}
|
||||
sa_norm=/entry1,NXentry/sample,NXsample/SDS plane_normal -rank 1 -dim {3}
|
||||
sa_vec1=/entry1,NXentry/sample,NXsample/SDS plane_vector_1 -rank 1 -dim {9}
|
||||
sa_vec2=/entry1,NXentry/sample,NXsample/SDS plane_vector_2 -rank 1 -dim {9}
|
||||
sa_ub=/entry1,NXentry/sample,NXsample/SDS orientation_matrix -rank 2 \
|
||||
-dim {3,3}
|
||||
sc_a2=/entry1,NXentry/sample,NXsample/SDS polar_angle \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
sc_a3=/entry1,NXentry/sample,NXsample/SDS rotation_angle \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
sc_sgl=/entry1,NXentry/sample,NXsample/SDS sgl \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
sc_sgu=/entry1,NXentry/sample,NXsample/SDS sgu \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
2tm_zero=/entry1,NXentry/sample,NXsample/SDS polar_angle_zero \
|
||||
-rank 1 -attr {units,degree}
|
||||
om_zero=/entry1,NXentry/sample,NXsample/SDS rotation_angle_zero \
|
||||
-rank 1 -attr {units,degree}
|
||||
sgl_zero=/entry1,NXentry/sample,NXsample/SDS sgl_zero \
|
||||
-rank 1 -attr {units,degree}
|
||||
sgu_zero=/entry1,NXentry/sample,NXsample/SDS sgu_zero \
|
||||
-rank 1 -attr {units,degree}
|
||||
sc_qh=/entry1,NXentry/sample,NXsample/SDS Qh -rank 1 -dim {-1}
|
||||
sc_qk=/entry1,NXentry/sample,NXsample/SDS Qk -rank 1 -dim {-1}
|
||||
sc_ql=/entry1,NXentry/sample,NXsample/SDS Ql -rank 1 -dim {-1}
|
||||
sc_qm=/entry1,NXentry/sample,NXsample/SDS Qm -rank 1 -dim {-1}
|
||||
sc_en=/entry1,NXentry/sample,NXsample/SDS energy_transfer -rank 1 \
|
||||
-attr {units,mev} -dim {-1}
|
||||
saaz=/entry1,NXentry/sample,NXsample/SDS azimuthal_angle -attr {units,degree}
|
||||
sc_tu=/entry1,NXentry/sample,NXsample/SDS x \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
sc_tl=/entry1,NXentry/sample,NXsample/SDS y \
|
||||
-rank 1 -attr {units,degree} -dim {-1}
|
||||
#----------- monochromator
|
||||
mono_type=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS type -type NX_CHAR -rank 1
|
||||
sc_ei=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS energy -rank 1 -dim {-1} \
|
||||
-attr {units,mev} -dim {-1}
|
||||
sc_a1=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS rotation_angle \
|
||||
-rank 1 -dim {-1} -attr {units,degree} -dim {-1}
|
||||
omm_zero=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS rotation_angle_zero \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
mono_dd=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS d_spacing -attr {units,Angstroem}
|
||||
sc_mcv=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS curvature \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
sc_cum=/entry1,NXentry/$(INSTRUMENT),NXinstrument/monochromator,NXcrystal/SDS curvature \
|
||||
-rank 1 -dim {-1} -attr {units,degree} -dim {-1}
|
||||
#----------- analyzer
|
||||
ana_type=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS type -type NX_CHAR -rank 1
|
||||
sc_ef=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS energy -rank 1 -dim {-1} \
|
||||
-attr {units,mev}
|
||||
sc_a5=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS rotation_angle \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
a5_zero=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS rotation_angle_zero \
|
||||
-attr {units,degree}
|
||||
sc_a4=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS polar_angle -rank 1 -dim {-1} \
|
||||
-attr {units,degree}
|
||||
2t_zero=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS polar_angle_zero -attr {units,degree}
|
||||
ana_dd=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS d_spacing -attr {units,Angstroem}
|
||||
ana_az=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS azimuthal_angle -attr {units,degree}
|
||||
sdistance=/entry1,NXentry/$(INSTRUMENT),NXinstrument/analyzer,NXcrystal/SDS distance -attr {units,mm}
|
||||
#--------- detector
|
||||
set winno 1
|
||||
sc_a6=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS polar_angle -rank 1 -dim {-1} \
|
||||
-attr {units,degree}
|
||||
2ta_zero=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS polar_angle_zero -attr {units,degree}
|
||||
counts=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS data -type NX_INT32 \
|
||||
-rank 1 -dim {-1} -attr {signal,1}
|
||||
det_az=/entry1,NXentry/$(INSTRUMENT),NXinstrument/detector,NXdetector/SDS azimuthal_angle -attr {units,degree}
|
||||
adistance=/entry1,NXentry/$(INSTRUMENT),NXinstrument/adetector,NXcrystal/SDS distance -attr {units,mm}
|
||||
#------- monitors
|
||||
cter_mode=/entry1,NXentry/control,NXmonitor/SDS mode -type NX_CHAR -rank 1 -dim {30}
|
||||
cter_preset=/entry1,NXentry/control,NXmonitor/SDS preset
|
||||
motime=/entry1,NXentry/control,NXmonitor/SDS time -attr {units,seconds} -rank 1 -dim {-1}
|
||||
cter_01=/entry1,NXentry/control,NXmonitor/SDS data -type NX_INT32 -rank 1 -dim {-1}
|
||||
cter_02=/entry1,NXentry/aux_detector,NXmonitor/SDS data -type NX_INT32 -rank 1 -dim {-1}
|
||||
#------- NXdata
|
||||
dana=/entry1,NXentry/data,NXdata/NXVGROUP
|
||||
emotor_a1=/entry1,NXentry/data,NXdata/SDS a1 \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
emotor_a2=/entry1,NXentry/data,NXdata/SDS a2 \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
emotor_a3=/entry1,NXentry/data,NXdata/SDS a3 \
|
||||
-rank 1 -dim {-1} -attr {units,degree}
|
||||
emotor_a4=/entry1,NXentry/data,NXdata/SDS a4 -rank 1 -dim {-1} \
|
||||
-attr {units,degree}
|
||||
emotor_a5=/entry1,NXentry/data,NXdata/SDS a5 -rank 1 -dim {-1} \
|
||||
-attr {units,degree}
|
||||
emotor_a6=/entry1,NXentry/data,NXdata/SDS a6 -rank 1 -dim {-1} \
|
||||
-attr {units,degree}
|
||||
danascanvar=/entry1,NXentry/data,NXdata/SDS scanvar \
|
||||
-type NX_FLOAT32 -attr {axis,1} -rank 1 -dim {-1}
|
||||
Reference in New Issue
Block a user