Adapted ::nexus::script::save to use sicsdata objects for data arrays returned from script -arrayname

Added data, control, nxsave, mutable attributes to axes data scripts.

r2223 | ffr | 2007-11-05 13:17:36 +1100 (Mon, 05 Nov 2007) | 4 lines
This commit is contained in:
Ferdi Franceschini
2007-11-05 13:17:36 +11:00
committed by Douglas Clowes
parent 05c5b5ee12
commit 8550b93a00

View File

@@ -1,5 +1,5 @@
# $Revision: 1.22 $ # $Revision: 1.23 $
# $Date: 2007-11-01 01:57:43 $ # $Date: 2007-11-05 02:17:36 $
# Author: Ferdi Franceschini # Author: Ferdi Franceschini
# Based on the examples in the hs_test.tcl sample configuration by Mark Lesha. # Based on the examples in the hs_test.tcl sample configuration by Mark Lesha.
# http://gumtree.ansto.gov.au:9080/nbicms/bragg-systems/histogram-server/hs_test.tcl/view # http://gumtree.ansto.gov.au:9080/nbicms/bragg-systems/histogram-server/hs_test.tcl/view
@@ -32,12 +32,6 @@ if {$sim_mode == "true"} {
hmm countblock; hmm countblock;
} }
} }
proc ::histogram_memory::initialize {} {
hmm configure hmaddress http://das1-[SplitReply [instrument]]:8080;
hmm configure username spy;
hmm configure password 007;
hmm configure hmDataPath ../HMData;
}
} else { } else {
MakeHM hmm anstohttp; MakeHM hmm anstohttp;
MakeHM hmm_xy anstohttp; MakeHM hmm_xy anstohttp;
@@ -269,7 +263,6 @@ namespace eval histogram_memory {
# \param boundaries list of bin boundaries or @none # \param boundaries list of bin boundaries or @none
proc calc_axis {proc_name scale_factor offset boundaries args} { proc calc_axis {proc_name scale_factor offset boundaries args} {
variable state variable state
variable ${proc_name}_array
set parlist [join $args] set parlist [join $args]
set opt [lindex $parlist 0] set opt [lindex $parlist 0]
@@ -278,19 +271,19 @@ namespace eval histogram_memory {
# Don't calculate axis values, we're just setting or getting the graph_type # Don't calculate axis values, we're just setting or getting the graph_type
} else { } else {
set i 0 set i 0
array unset ${proc_name}_array ${proc_name}_array clear
if {$state($proc_name,graph_type) == "boundaries"} { if {$state($proc_name,graph_type) == "boundaries"} {
foreach bb $boundaries { foreach bb $boundaries {
set val [expr {$scale_factor*$bb + $offset}] set val [expr {$scale_factor*$bb + $offset}]
lappend values $val lappend values $val
set ${proc_name}_array($i) $val ${proc_name}_array putfloat $i $val
incr i incr i
} }
} else { } else {
foreach b0 [lrange $boundaries 0 end-1] b1 [lrange $boundaries 1 end] { foreach b0 [lrange $boundaries 0 end-1] b1 [lrange $boundaries 1 end] {
set val [expr {$scale_factor*($b1 + $b0)/2.0 + $offset}] set val [expr {$scale_factor*($b1 + $b0)/2.0 + $offset}]
lappend values $val lappend values $val
set ${proc_name}_array($i) $val ${proc_name}_array putfloat $i $val
incr i incr i
} }
} }
@@ -316,6 +309,7 @@ namespace eval histogram_memory {
## ##
# @brief Provides y_bin boundary array for data axes # @brief Provides y_bin boundary array for data axes
sicsdatafactory new ::histogram_memory::y_bin_array
proc y_bin {args} { proc y_bin {args} {
set opt [lindex $args 0] set opt [lindex $args 0]
set arglist [lrange $args 1 end] set arglist [lrange $args 1 end]
@@ -334,17 +328,22 @@ namespace eval histogram_memory {
} }
set script_name ::histogram_memory::y_bin set script_name ::histogram_memory::y_bin
publish $script_name user publish $script_name user
sicslist setatt $script_name privilege internal sicslist setatt $script_name privilege user
sicslist setatt $script_name kind script sicslist setatt $script_name kind script
sicslist setatt $script_name access read_only sicslist setatt $script_name access read_only
sicslist setatt $script_name dtype floatvarar sicslist setatt $script_name dtype floatvarar
sicslist setatt $script_name dlen 100 sicslist setatt $script_name dlen 100
sicslist setatt $script_name klass detector sicslist setatt $script_name klass detector
sicslist setatt $script_name control false
sicslist setatt $script_name data true
sicslist setatt $script_name nxsave true
sicslist setatt $script_name mutable false sicslist setatt $script_name mutable false
sicslist setatt $script_name long_name y_bin sicslist setatt $script_name long_name y_bin
unset script_name
## ##
# @brief Provides x_bin boundary array for data axes # @brief Provides x_bin boundary array for data axes
sicsdatafactory new ::histogram_memory::x_bin_array
proc x_bin {args} { proc x_bin {args} {
set opt [lindex $args 0] set opt [lindex $args 0]
set arglist [lrange $args 1 end] set arglist [lrange $args 1 end]
@@ -363,16 +362,21 @@ namespace eval histogram_memory {
} }
set script_name ::histogram_memory::x_bin set script_name ::histogram_memory::x_bin
publish $script_name user publish $script_name user
sicslist setatt $script_name privilege internal sicslist setatt $script_name privilege user
sicslist setatt $script_name kind script sicslist setatt $script_name kind script
sicslist setatt $script_name access read_only sicslist setatt $script_name access read_only
sicslist setatt $script_name dtype floatvarar sicslist setatt $script_name dtype floatvarar
sicslist setatt $script_name dlen 100 sicslist setatt $script_name dlen 100
sicslist setatt $script_name klass detector sicslist setatt $script_name klass detector
sicslist setatt $script_name control false
sicslist setatt $script_name data true
sicslist setatt $script_name nxsave true
sicslist setatt $script_name mutable false sicslist setatt $script_name mutable false
sicslist setatt $script_name long_name x_bin sicslist setatt $script_name long_name x_bin
unset script_name
# requires detector_active_width_mm det_radius_mm # requires detector_active_width_mm det_radius_mm
sicsdatafactory new ::histogram_memory::y_pixel_offset_array
proc y_pixel_offset {args} { proc y_pixel_offset {args} {
variable state variable state
set opt [lindex $args 0] set opt [lindex $args 0]
@@ -405,17 +409,22 @@ namespace eval histogram_memory {
} }
set script_name ::histogram_memory::y_pixel_offset set script_name ::histogram_memory::y_pixel_offset
publish $script_name user publish $script_name user
sicslist setatt $script_name privilege internal sicslist setatt $script_name privilege user
sicslist setatt $script_name kind script sicslist setatt $script_name kind script
sicslist setatt $script_name access read_only sicslist setatt $script_name access read_only
sicslist setatt $script_name dtype floatvarar sicslist setatt $script_name dtype floatvarar
sicslist setatt $script_name dlen 100 sicslist setatt $script_name dlen 100
sicslist setatt $script_name klass detector sicslist setatt $script_name klass detector
sicslist setatt $script_name control false
sicslist setatt $script_name data true
sicslist setatt $script_name nxsave true
sicslist setatt $script_name mutable false sicslist setatt $script_name mutable false
sicslist setatt $script_name long_name y_pixel_offset sicslist setatt $script_name long_name y_pixel_offset
sicslist setatt $script_name units [::histogram_memory::y_pixel_offset -units] sicslist setatt $script_name units [::histogram_memory::y_pixel_offset -units]
unset script_name
# requires detector_active_width_mm det_radius_mm # requires detector_active_width_mm det_radius_mm
sicsdatafactory new ::histogram_memory::x_pixel_offset_array
proc x_pixel_offset {args} { proc x_pixel_offset {args} {
variable state variable state
set opt [lindex $args 0] set opt [lindex $args 0]
@@ -448,16 +457,21 @@ namespace eval histogram_memory {
} }
set script_name ::histogram_memory::x_pixel_offset set script_name ::histogram_memory::x_pixel_offset
publish $script_name user publish $script_name user
sicslist setatt $script_name privilege internal sicslist setatt $script_name privilege user
sicslist setatt $script_name kind script sicslist setatt $script_name kind script
sicslist setatt $script_name access read_only sicslist setatt $script_name access read_only
sicslist setatt $script_name dtype floatvarar sicslist setatt $script_name dtype floatvarar
sicslist setatt $script_name dlen 100 sicslist setatt $script_name dlen 100
sicslist setatt $script_name klass detector sicslist setatt $script_name klass detector
sicslist setatt $script_name control false
sicslist setatt $script_name data true
sicslist setatt $script_name nxsave true
sicslist setatt $script_name mutable false sicslist setatt $script_name mutable false
sicslist setatt $script_name long_name x_pixel_offset sicslist setatt $script_name long_name x_pixel_offset
sicslist setatt $script_name units [::histogram_memory::x_pixel_offset -units] sicslist setatt $script_name units [::histogram_memory::x_pixel_offset -units]
unset script_name
sicsdatafactory new ::histogram_memory::time_channel_array
proc time_channel {args} { proc time_channel {args} {
variable state variable state
set opt [lindex $args 0] set opt [lindex $args 0]
@@ -477,15 +491,19 @@ namespace eval histogram_memory {
} }
set script_name ::histogram_memory::time_channel set script_name ::histogram_memory::time_channel
publish $script_name user publish $script_name user
sicslist setatt $script_name privilege internal sicslist setatt $script_name privilege user
sicslist setatt $script_name kind script sicslist setatt $script_name kind script
sicslist setatt $script_name access read_only sicslist setatt $script_name access read_only
sicslist setatt $script_name dtype floatvarar sicslist setatt $script_name dtype floatvarar
sicslist setatt $script_name dlen 100 sicslist setatt $script_name dlen 100
sicslist setatt $script_name klass detector sicslist setatt $script_name klass detector
sicslist setatt $script_name control false
sicslist setatt $script_name data true
sicslist setatt $script_name nxsave true
sicslist setatt $script_name mutable false sicslist setatt $script_name mutable false
sicslist setatt $script_name long_name time_of_flight sicslist setatt $script_name long_name time_of_flight
sicslist setatt $script_name units [::histogram_memory::clock_scale units] sicslist setatt $script_name units [::histogram_memory::clock_scale units]
unset script_name
} }
## ##
@@ -976,7 +994,9 @@ proc ::histogram_memory::_initialize {} {
FAT_TABLE -init SIZE_PERIOD_MAX 125000000 FAT_TABLE -init SIZE_PERIOD_MAX 125000000
hmm configure hmDataPath ../HMData hmm configure hmDataPath ../HMData
hmm configure hmconfigscript $configuration hmm configure hmconfigscript $configuration
if [ catch {
::histogram_memory::configure_dims ::histogram_memory::configure_dims
} ] {clientput $::errorInfo}
} }
Publish ::histogram_memory::set_oat_offset user Publish ::histogram_memory::set_oat_offset user