From e0e6bed82ee50d40c833cb2ea01aa553e441cbcb Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Fri, 30 Mar 2007 17:21:49 +1000 Subject: [PATCH] Initial support for growing multidimensional histogram memory datasets. r1744 | ffr | 2007-03-30 17:21:49 +1000 (Fri, 30 Mar 2007) | 2 lines --- .../config/nexus/nexus_in_bmon_common_1.dic | 2 +- .../config/nexus/nexus_in_hmm_common_1.dic | 6 +++--- .../config/nexus/nxscripts_common_1.tcl | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) 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 9fc6b23c..59ab5997 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,7 +1,7 @@ #----------------- NXmonitor mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32 -dcounts=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS \ +bmcounts=/$(entryName),NXentry/monitor,NXmonitor/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_hmm_common_1.dic b/site_ansto/instrument/config/nexus/nexus_in_hmm_common_1.dic index eb9ceb37..d9f33d8d 100644 --- a/site_ansto/instrument/config/nexus/nexus_in_hmm_common_1.dic +++ b/site_ansto/instrument/config/nexus/nexus_in_hmm_common_1.dic @@ -9,9 +9,9 @@ detangle_degrees=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetect dtheta=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS polar_angle -type NX_FLOAT32 -LZW -rank 2 -dim {$(padim0),$(padim1)} -attr {units,radians} dvaxis=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS vertical_axis -type NX_FLOAT32 -LZW -rank 1 -dim {$(padim0)} -attr {units,mm} -dcounts=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS \ - data -type NX_INT32 -LZW -rank 2 -dim {$(dim0),$(dim1)} \ - -attr {signal,1} + +hmcounts=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS \ + data -type NX_INT32 -LZW -rank 3 -dim {-1,$(padim0),$(padim1)} -attr {signal,1} deff=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/calibration,NXdata/SDS efficiency -type NX_INT32 -LZW -rank 2 -dim {$(dim0),$(dim1)} diff --git a/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl b/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl index c0db1717..3b77c3fe 100644 --- a/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl +++ b/site_ansto/instrument/config/nexus/nxscripts_common_1.tcl @@ -2,7 +2,7 @@ # with filename set tmpstr [string map {"$" ""} {$Name: not supported by cvs2svn $}] set nx_content_release_tag [lindex $tmpstr [expr [llength $tmpstr] - 1]] -set tmpstr [string map {"$" ""} {$Revision: 1.10 $}] +set tmpstr [string map {"$" ""} {$Revision: 1.11 $}] set nx_content_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]] MakeNXScript @@ -80,7 +80,7 @@ proc hmm_save {nxobj entryname point} { set dim1 [SplitReply [hmm configure dim1]]; putcommon $nxobj $entryname $point; putcrystal $nxobj; - putmonitor $nxobj; + putmonitor $nxobj $point; putsample $nxobj; $nxobj putfloat detangle_degrees [SplitReply [detector_angle_deg]] @@ -90,8 +90,14 @@ proc hmm_save {nxobj entryname point} { $nxobj puttext ddesc [SplitReply [detector_description]] $nxobj putfloat dradius [SplitReply [detector_radius_mm]] $nxobj puttext dlayout area - $nxobj puthm dcounts hmm [SplitReply [hmm_start]] [SplitReply [hmm_length]] [SplitReply [hmm_bank]] - $nxobj makelink scandata dcounts +# $nxobj puthm dcounts hmm [SplitReply [hmm_start]] [SplitReply [hmm_length]] [SplitReply [hmm_bank]] +#XXX set histo_length [SplitReply [hmm_length]] + $nxobj updatedictvar padim0 $dim0 + $nxobj updatedictvar padim1 $dim1 + $nxobj putslab hmcounts [list $point 0 0] [list 1 $dim0 $dim1 ] hmm +#XXX $nxobj putslab hmcounts [list $point 0 0] [list 1 $dim0 $dim1 ] hmm [SplitReply [hmm_start]] $histo_length [SplitReply [hmm_bank]] +# $nxobj putslab dcounts [list $point] [list 1] nxscript_data + $nxobj makelink scandata hmcounts $nxobj makelink scanvertaxis dvaxis } @@ -121,7 +127,7 @@ proc bm_save {nxobj entryname point} { putmonitor $nxobj $point putsample $nxobj $nxobj puttext dlayout point - $nxobj makelink scandata dcounts + $nxobj makelink scandata bmcounts } #TODO Refactor: Add bm_save command and use it here. @@ -152,7 +158,7 @@ proc putmonitor {nxobj point} { # $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 putslab bmcounts [list $point] [list 1] nxscript_data $nxobj putfloat mdistance [SplitReply [bmon_distance]] }