diff --git a/site_ansto/instrument/config/nexus/nexus_in_bmon_common_1.dic b/site_ansto/instrument/config/nexus/nexus_in_bmon_common_1.dic index 79c5a77a..9fc6b23c 100644 --- a/site_ansto/instrument/config/nexus/nexus_in_bmon_common_1.dic +++ b/site_ansto/instrument/config/nexus/nexus_in_bmon_common_1.dic @@ -1,6 +1,7 @@ #----------------- NXmonitor mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32 -mdata=/$(entryName),NXentry/monitor,NXmonitor/SDS data -type NX_INT32 +dcounts=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS \ + data -type NX_FLOAT32 -LZW -rank 1 -dim {-1} -attr {signal,1} mdistance=/$(entryName),NXentry/monitor,NXmonitor/SDS distance -type NX_FLOAT32 -attr {units,metre} dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR diff --git a/site_ansto/instrument/config/nexus/nexus_in_scan_common_1.dic b/site_ansto/instrument/config/nexus/nexus_in_scan_common_1.dic index 4869430c..45830ef6 100644 --- a/site_ansto/instrument/config/nexus/nexus_in_scan_common_1.dic +++ b/site_ansto/instrument/config/nexus/nexus_in_scan_common_1.dic @@ -4,9 +4,9 @@ scanvar_longname=xxx #----------------NXdata ------------------------------------------------ -scandata=/$(entryName),NXentry/scan_data,NXdata/NXVGROUP +scandata=/$(entryName),NXentry/data,NXdata/NXVGROUP scanvertaxis=/$(entryName),NXentry/vertical_axis,NXdata/NXVGROUP -scanvar=/$(entryName),NXentry/scan_variable,NXdata/SDS $(scanvar_name) -type NX_FLOAT32 -attr {units,$(scanvar_units)} -attr {long_name,$(scanvar_longname)} +scanvar=/$(entryName),NXentry/data,NXdata/SDS $(scanvar_name) -type NX_FLOAT32 -attr {units,$(scanvar_units)} -attr {long_name,$(scanvar_longname)} -rank 1 -dim {-1} -attr {axis,1} scanstep=/$(entryName),NXentry/scan_step,NXdata/SDS value -type NX_FLOAT32 -attr {units,degree} -attr {long_name,stepsize} #histogram=/$(entryName),NXentry/histogram,NXdata/NXVGROUP #scanvar=/$(entryName),NXentry/$(scan_variable),NXdata/NXVGROUP diff --git a/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl b/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl index 76763ba4..9b98a5be 100644 --- a/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl +++ b/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl @@ -2,6 +2,7 @@ # with filename MakeNXScript +sicsdatafactory new nxscript_data proc getVal {msg} { return [string trim [lindex [split $msg =] 1 ] ] @@ -67,11 +68,11 @@ proc det_height_arr {active_height_mm row_zero dim0} { } } -proc hmm_save {nxobj entryname} { +proc hmm_save {nxobj entryname point} { global dradius ndect angsep; set dim0 [SplitReply [hmm configure dim0]]; set dim1 [SplitReply [hmm configure dim1]]; - putcommon $nxobj $entryname; + putcommon $nxobj $entryname $point; putcrystal $nxobj; putmonitor $nxobj; putsample $nxobj; @@ -88,52 +89,64 @@ proc hmm_save {nxobj entryname} { $nxobj makelink scanvertaxis dvaxis } -proc hmm_addnxscanentry {nxobj entryname scanVariable scanVarPos scanVarStep start_time} { +proc hmm_addnxscanentry {nxobj entryname point scanVariable scanVarPos scanVarStep start_time} { $nxobj puttext estart $start_time $nxobj updatedictvar scan_variable $scanVariable set scanVar_value [string trim [lindex [split [$scanVariable] =] 1]] $nxobj updatedictvar scanvar_name $scanVariable - $nxobj updatedictvar scanvar_units [SplitReply [$scanVariable units]] +#TODO $nxobj updatedictvar scanvar_units [SplitReply [$scanVariable units]] + $nxobj updatedictvar scanvar_units "unknown" $nxobj updatedictvar scanvar_longname $scanVariable - $nxobj putfloat scanvar $scanVar_value - $nxobj putfloat scanstep $scanVarStep + nxscript_data clear + nxscript_data putfloat 0 $scanVar_value + $nxobj putslab scanvar [list $point] [list 1] nxscript_data +# $nxobj putfloat scanstep $scanVarStep - hmm_save $nxobj $entryname; + hmm_save $nxobj $entryname $point; $nxobj puttext eend [sicstime]; } -#TODO Refactor: Add bm_save command and use it here. -proc bm_addnxscanentry {nxobj entryname scanVariable scanVarPos scanVarStep start_time} { +proc bm_save {nxobj entryname point} { global dradius ndect angsep; - $nxobj updatedictvar scan_variable $scanVariable; - putcommon $nxobj $entryname +# $nxobj updatedictvar scan_variable $scanVariable; + putcommon $nxobj $entryname $point putcrystal $nxobj - putmonitor $nxobj + putmonitor $nxobj $point putsample $nxobj + $nxobj puttext dlayout point + $nxobj makelink scandata dcounts +} + +#TODO Refactor: Add bm_save command and use it here. +proc bm_addnxscanentry {nxobj entryname point scanVariable scanVarPos scanVarStep start_time} { + $nxobj puttext estart $start_time + set scanVar_value [string trim [lindex [split [$scanVariable] =] 1]] $nxobj updatedictvar scanvar_name $scanVariable #TODO $nxobj updatedictvar scanvar_units [SplitReply [$scanVariable units]] -$nxobj updatedictvar scanvar_units "unknown" - + $nxobj updatedictvar scanvar_units "unknown" $nxobj updatedictvar scanvar_longname $scanVariable - $nxobj putfloat scanvar $scanVar_value - $nxobj putfloat scanstep $scanVarStep + nxscript_data clear + nxscript_data putfloat 0 $scanVar_value + $nxobj putslab scanvar [list $point] [list 1] nxscript_data + bm_save $nxobj $entryname $point +# $nxobj putfloat scanstep $scanVarStep # Add thetamin and stth to tharr(i) # $nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm # $nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217) # $nxobj putfloat dradius $dradius - $nxobj puttext estart $start_time #TODO add dtype ddesc - $nxobj puttext dlayout point - $nxobj makelink scandata mdata $nxobj puttext eend [sicstime]; } -proc putmonitor {nxobj} { +proc putmonitor {nxobj point} { $nxobj puttext mmode [string trim [lindex [split [bm getmode] =] 1]] $nxobj putfloat mpreset [string trim [lindex [split [bm getpreset] =] 1]] - $nxobj putint mdata [string trim [lindex [split [bm getcounts] =] 1]] +# $nxobj putint mdata [string trim [lindex [split [bm getcounts] =] 1]] + nxscript_data clear + nxscript_data putfloat 0 [SplitReply [bm getcounts]] + $nxobj putslab dcounts [list $point] [list 1] nxscript_data $nxobj putfloat mdistance [SplitReply [bmon_distance]] } @@ -168,7 +181,7 @@ proc putcrystal {nxobj} { $nxobj puttext ctype [SplitReply [crystal_type]] $nxobj putfloat clambda [SplitReply [crystal_wavelength_A]] } -proc putcommon {nxobj entryName} { +proc putcommon {nxobj entryName point} { $nxobj updatedictvar entryName $entryName $nxobj puttext etitle [getVal [Title]] $nxobj puttext iname [getVal [Instrument]] @@ -180,42 +193,54 @@ proc putcommon {nxobj entryName} { $nxobj puttext sname OPAL $nxobj puttext stype Reactor Neutron Source $nxobj puttext sprobe Neutron - putsamplemotors $nxobj - putslitmotors $nxobj - putmonomotors $nxobj + putsamplemotors $nxobj $point + putslitmotors $nxobj $point + putmonomotors $nxobj $point } -proc putsamplemotors {nxobj} { +proc putsamplemotors {nxobj point} { foreach motor { som schi sphi sx sy stth } { $nxobj updatedictvar mot_name $motor; $nxobj updatedictvar mot_long_name $motor; $nxobj updatedictvar mot_units [SplitReply [$motor units]]; - $nxobj putfloat nxsample_mot [getVal [$motor] ]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [$motor] ] + $nxobj putslab nxsample_mot [list $point] [list 1] nxscript_data; } # sth is a virtual motor - $nxobj putfloat sth [getVal [sth ]]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [sth ]] + $nxobj putslab sth [list $point] [list 1] nxscript_data; } -proc putmonomotors {nxobj} { +proc putmonomotors {nxobj point} { foreach motor { mom mchi mphi mx my mtth } { $nxobj updatedictvar mot_name $motor; $nxobj updatedictvar mot_long_name $motor; $nxobj updatedictvar mot_units [SplitReply [$motor units]]; - $nxobj putfloat nxcrystal_mot [getVal [$motor] ]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [$motor] ] + $nxobj putslab nxcrystal_mot [list $point] [list 1] nxscript_data; } # mth is a virtual motor - $nxobj putfloat mth [getVal [mth ]]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [mth ]] + $nxobj putslab mth [list $point] [list 1] nxscript_data; } -proc putslitmotors {nxobj} { +proc putslitmotors {nxobj point} { foreach motor {ss1u ss1d ss1l ss1r ss2u ss2d ss2l ss2r } { $nxobj updatedictvar mot_name $motor; $nxobj updatedictvar mot_long_name $motor; $nxobj updatedictvar mot_units [SplitReply [$motor units]]; - $nxobj putfloat nxfilter_mot [getVal [$motor] ]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [$motor] ] + $nxobj putslab nxfilter_mot [list $point] [list 1] nxscript_data; } foreach motor {ss1vg ss1vo ss1hg ss1ho ss2vg ss2vo ss2hg ss2ho } { - $nxobj putfloat $motor [getVal [$motor] ]; + nxscript_data clear + nxscript_data putfloat 0 [getVal [$motor] ] + $nxobj putslab $motor [list $point] [list 1] nxscript_data; } } diff --git a/site_ansto/instrument/config/scan/scan_common_1.tcl b/site_ansto/instrument/config/scan/scan_common_1.tcl index b8c025d2..b2f41e1c 100644 --- a/site_ansto/instrument/config/scan/scan_common_1.tcl +++ b/site_ansto/instrument/config/scan/scan_common_1.tcl @@ -102,7 +102,8 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1 set scanVarPos [expr {$scanVarStart + $point * $scanVarStep} ]; nxreopenfile; - $nxentryCmd nxscript scan_[format "%05d" $point] $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time; +# $nxentryCmd nxscript scan_[format "%05d" $point] $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time; + $nxentryCmd nxscript entry1 $point $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time; nxclosefile; } diff --git a/site_ansto/instrument/hrpd/config/nexus/nexus_in_motors.dic b/site_ansto/instrument/hrpd/config/nexus/nexus_in_motors.dic index f46c7a4b..3f58509c 100644 --- a/site_ansto/instrument/hrpd/config/nexus/nexus_in_motors.dic +++ b/site_ansto/instrument/hrpd/config/nexus/nexus_in_motors.dic @@ -2,21 +2,21 @@ mot_name=xxx mot_units=xxx mot_long_name=xxx #--------------- NXmonochromator -nxcrystal_mot=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +nxcrystal_mot=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS $(mot_name) -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} #XXX add units command to configurable virtual motors. -mth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS mth -type NX_FLOAT32 -attr {units,degrees} -attr {long_name,mono_theta} +mth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXcrystal/SDS mth -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,degrees} -attr {long_name,mono_theta} #--------------- NXsample -nxsample_mot=/$(entryName),NXentry/sample,NXsample/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +nxsample_mot=/$(entryName),NXentry/sample,NXsample/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -rank 1 -dim {-1} -attr {long_name,$(mot_long_name)} #XXX add units command to configurable virtual motors. -sth=/$(entryName),NXentry/sample,NXsample/SDS sth -type NX_FLOAT32 -attr {units,degree} -attr {long_name,sth} +sth=/$(entryName),NXentry/sample,NXsample/SDS sth -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,degree} -attr {long_name,sth} # Slit motors -nxfilter_mot=/$(entryName),NXentry/slits,NXfilter/SDS $(mot_name) -type NX_FLOAT32 -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} +nxfilter_mot=/$(entryName),NXentry/slits,NXfilter/SDS $(mot_name) -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,$(mot_units)} -attr {long_name,$(mot_long_name)} #XXX add units command to configurable virtual motors. -ss1vg=/$(entryName),NXentry/slits,NXfilter/SDS ss1vg -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss1vg} -ss1vo=/$(entryName),NXentry/slits,NXfilter/SDS ss1vo -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss1vo} -ss1hg=/$(entryName),NXentry/slits,NXfilter/SDS ss1hg -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss1hg} -ss1ho=/$(entryName),NXentry/slits,NXfilter/SDS ss1ho -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss1ho} -ss2vg=/$(entryName),NXentry/slits,NXfilter/SDS ss2vg -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss2vg} -ss2vo=/$(entryName),NXentry/slits,NXfilter/SDS ss2vo -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss2vo} -ss2hg=/$(entryName),NXentry/slits,NXfilter/SDS ss2hg -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss2hg} -ss2ho=/$(entryName),NXentry/slits,NXfilter/SDS ss2ho -type NX_FLOAT32 -attr {units,mm} -attr {long_name,ss2ho} +ss1vg=/$(entryName),NXentry/slits,NXfilter/SDS ss1vg -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss1vg} +ss1vo=/$(entryName),NXentry/slits,NXfilter/SDS ss1vo -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss1vo} +ss1hg=/$(entryName),NXentry/slits,NXfilter/SDS ss1hg -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss1hg} +ss1ho=/$(entryName),NXentry/slits,NXfilter/SDS ss1ho -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss1ho} +ss2vg=/$(entryName),NXentry/slits,NXfilter/SDS ss2vg -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss2vg} +ss2vo=/$(entryName),NXentry/slits,NXfilter/SDS ss2vo -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss2vo} +ss2hg=/$(entryName),NXentry/slits,NXfilter/SDS ss2hg -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss2hg} +ss2ho=/$(entryName),NXentry/slits,NXfilter/SDS ss2ho -type NX_FLOAT32 -rank 1 -dim {-1} -attr {units,mm} -attr {long_name,ss2ho}