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:
committed by
Douglas Clowes
parent
05c5b5ee12
commit
8550b93a00
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user