Hide hmm objects from gumtree control view.
Improve feedback. r2233 | ffr | 2007-11-06 14:43:46 +1100 (Tue, 06 Nov 2007) | 3 lines
This commit is contained in:
committed by
Douglas Clowes
parent
ebf70bfe5c
commit
2853f0ae66
@@ -1,5 +1,5 @@
|
|||||||
# $Revision: 1.23 $
|
# $Revision: 1.24 $
|
||||||
# $Date: 2007-11-05 02:17:36 $
|
# $Date: 2007-11-06 03:43:46 $
|
||||||
# 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
|
||||||
@@ -59,7 +59,7 @@ namespace eval histogram_memory {
|
|||||||
::utility::mkVar detector_active_width_mm Float user active_width true detector true true
|
::utility::mkVar detector_active_width_mm Float user active_width true detector true true
|
||||||
sicslist setatt detector_active_width_mm units mm
|
sicslist setatt detector_active_width_mm units mm
|
||||||
|
|
||||||
::utility::mkVar hmm_user_configpath Text manager user_configpath false detector true false
|
::utility::mkVar hmm_user_configpath Text manager user_configpath false detector false false
|
||||||
hmm_user_configpath ../user_config/hmm
|
hmm_user_configpath ../user_config/hmm
|
||||||
::utility::mkVar hmm_mode Text user mode true detector true true
|
::utility::mkVar hmm_mode Text user mode true detector true true
|
||||||
::utility::mkVar _hmm_vert_axis Text user vert_axis true detector false true
|
::utility::mkVar _hmm_vert_axis Text user vert_axis true detector false true
|
||||||
@@ -238,7 +238,7 @@ namespace eval histogram_memory {
|
|||||||
sicslist setatt ::histogram_memory::save privilege internal;
|
sicslist setatt ::histogram_memory::save privilege internal;
|
||||||
|
|
||||||
foreach hm_obj [sicslist type histmem] {
|
foreach hm_obj [sicslist type histmem] {
|
||||||
set_sicsobj_atts $hm_obj detector @none $hm_obj true true;
|
set_sicsobj_atts $hm_obj detector @none $hm_obj false true;
|
||||||
sicslist setatt $hm_obj privilege user
|
sicslist setatt $hm_obj privilege user
|
||||||
sicslist setatt $hm_obj kind hobj
|
sicslist setatt $hm_obj kind hobj
|
||||||
sicslist setatt $hm_obj nxsave false
|
sicslist setatt $hm_obj nxsave false
|
||||||
@@ -844,8 +844,8 @@ proc ::histogram_memory::configure_server {instdef} {
|
|||||||
}
|
}
|
||||||
# TODO Set current oat table after uploading proposed oat_table
|
# TODO Set current oat table after uploading proposed oat_table
|
||||||
proc ::histogram_memory::upload_config {filler_defaults} {
|
proc ::histogram_memory::upload_config {filler_defaults} {
|
||||||
::histogram_memory::filler_defaults $filler_defaults
|
if [ catch {
|
||||||
#XXX ::histogram_memory::setup
|
::histogram_memory::filler_defaults $filler_defaults
|
||||||
hmm stop
|
hmm stop
|
||||||
hmm configure init 1
|
hmm configure init 1
|
||||||
hmm init
|
hmm init
|
||||||
@@ -859,7 +859,11 @@ proc ::histogram_memory::upload_config {filler_defaults} {
|
|||||||
hmm configure statuscheck true
|
hmm configure statuscheck true
|
||||||
hmm stop
|
hmm stop
|
||||||
hmm configure statuscheck false
|
hmm configure statuscheck false
|
||||||
::histogram_memory::configure_dims
|
::histogram_memory::configure_dims
|
||||||
|
}] {
|
||||||
|
return -code error $::errorInfo
|
||||||
|
}
|
||||||
|
clientput "histmem configuration uploaded"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -929,6 +933,12 @@ proc ::histogram_memory::configure_dims {} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# @brief Return the last frame frequency which SICS attempted to set
|
||||||
|
proc ::histogram_memory::get_frame_freq {} {
|
||||||
|
return [SplitReply [hmm configure fat_frame_frequency]]
|
||||||
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
# @brief Sets the histogram memory frame frequency to the given value.
|
# @brief Sets the histogram memory frame frequency to the given value.
|
||||||
#
|
#
|
||||||
@@ -938,8 +948,9 @@ proc ::histogram_memory::configure_dims {} {
|
|||||||
# If freq=0 then it sets the frequency to 50Hz with an internal frame source. This is useful
|
# If freq=0 then it sets the frequency to 50Hz with an internal frame source. This is useful
|
||||||
# if you are setting the frequency from a chopper which is stopped.
|
# if you are setting the frequency from a chopper which is stopped.
|
||||||
proc ::histogram_memory::set_frame_freq {freq {frame_source INTERNAL}} {
|
proc ::histogram_memory::set_frame_freq {freq {frame_source INTERNAL}} {
|
||||||
if {$freq < 0} {
|
variable state
|
||||||
return -code error "Frequency must not be negative"
|
if {[string is double $freq] == 0 || $freq < 0} {
|
||||||
|
return -code error "Frequency must be a non-negative floating point number"
|
||||||
}
|
}
|
||||||
#TODO Add tolerance parameters to choppercontroller
|
#TODO Add tolerance parameters to choppercontroller
|
||||||
if {abs($freq - 0) <= [expr {2.0/60.0}]} {
|
if {abs($freq - 0) <= [expr {2.0/60.0}]} {
|
||||||
@@ -991,12 +1002,16 @@ proc ::histogram_memory::_initialize {} {
|
|||||||
OAT_TABLE -init
|
OAT_TABLE -init
|
||||||
OAT_TABLE -set T_MIN 0
|
OAT_TABLE -set T_MIN 0
|
||||||
::histogram_memory::set_frame_freq 50
|
::histogram_memory::set_frame_freq 50
|
||||||
|
::histogram_memory::count_method unlimited
|
||||||
|
::histogram_memory::count_size 0
|
||||||
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 {
|
if [ catch {
|
||||||
::histogram_memory::configure_dims
|
::histogram_memory::configure_dims
|
||||||
} ] {clientput $::errorInfo}
|
} ] {
|
||||||
|
clientput $::errorInfo
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Publish ::histogram_memory::set_oat_offset user
|
Publish ::histogram_memory::set_oat_offset user
|
||||||
@@ -1028,9 +1043,10 @@ proc ::histogram_memory::post_count {} {}
|
|||||||
if [catch {hmc start 1000000000 timer pause 1}] {
|
if [catch {hmc start 1000000000 timer pause 1}] {
|
||||||
return -code error $::errorInfo
|
return -code error $::errorInfo
|
||||||
}
|
}
|
||||||
|
clientput "histmem started" value
|
||||||
if {$blocking == "block"} {
|
if {$blocking == "block"} {
|
||||||
blockctr count 0
|
blockctr count 0
|
||||||
::histogram_memory::stop
|
::histogram_memory::pause
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1042,6 +1058,7 @@ proc ::histogram_memory::post_count {} {}
|
|||||||
hmm configure statuscheck true
|
hmm configure statuscheck true
|
||||||
hmm stop
|
hmm stop
|
||||||
hmm configure statuscheck false
|
hmm configure statuscheck false
|
||||||
|
clientput "histmem stopped" value
|
||||||
} errmsg ] {
|
} errmsg ] {
|
||||||
return -code error $errmsg
|
return -code error $errmsg
|
||||||
}
|
}
|
||||||
@@ -1053,6 +1070,7 @@ proc ::histogram_memory::post_count {} {}
|
|||||||
if [ catch {
|
if [ catch {
|
||||||
hmm pause
|
hmm pause
|
||||||
::histogram_memory::post_count
|
::histogram_memory::post_count
|
||||||
|
clientput "histmem paused" value
|
||||||
} errmsg ] {
|
} errmsg ] {
|
||||||
return -code error $errmsg
|
return -code error $errmsg
|
||||||
}
|
}
|
||||||
@@ -1060,34 +1078,84 @@ proc ::histogram_memory::post_count {} {}
|
|||||||
|
|
||||||
##
|
##
|
||||||
# @brief Choose method for controlling acquisition duration.
|
# @brief Choose method for controlling acquisition duration.
|
||||||
proc ::histogram_memory::count_method {method} {
|
#
|
||||||
set modes [list time monitor unlimited period count frame]
|
# @param method Set histmem mode or return current mode if blank
|
||||||
|
proc ::histogram_memory::count_method {{method ""}} {
|
||||||
|
set modes [list time monitor unlimited period count frame]
|
||||||
|
if {$method==""} {
|
||||||
|
return [SplitReply [hmm_mode]]
|
||||||
|
} else {
|
||||||
if {[lsearch $modes $method] == -1} {
|
if {[lsearch $modes $method] == -1} {
|
||||||
return -code error "Count mode, $method, must be one of $modes"
|
return -code error "Count mode, $method, must be one of $modes"
|
||||||
}
|
}
|
||||||
hmm configure FAT_COUNT_METHOD $method
|
if [ catch {
|
||||||
hmm init 0
|
hmm configure FAT_COUNT_METHOD $method
|
||||||
hmm init
|
hmm init 0
|
||||||
|
hmm init
|
||||||
|
hmm_mode $method
|
||||||
|
}] {
|
||||||
|
return -code error $::errorInfo
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
##
|
##
|
||||||
# @brief Count until the preset count size has been reached.
|
# @brief Count until the preset count size has been reached.
|
||||||
#
|
#
|
||||||
# @param preset: The interpretation of the preset depends on the count method.
|
# @param preset: The interpretation of the preset depends on the count method.
|
||||||
# @see count_method
|
# @see count_method
|
||||||
proc ::histogram_memory::count_size {preset} {
|
proc ::histogram_memory::count_size {{preset ""}} {
|
||||||
hmm configure FAT_COUNT_SIZE [expr {100.0 * $preset}]
|
variable state
|
||||||
hmm init 0
|
|
||||||
hmm init
|
if {$preset == ""} {
|
||||||
|
return $state(preset)
|
||||||
|
} else {
|
||||||
|
if {[string is double $preset] == 0 || $preset < 0} {
|
||||||
|
return -code error "The preset must be a non-negative floating point number"
|
||||||
|
}
|
||||||
|
if [ catch {
|
||||||
|
hmm configure FAT_COUNT_SIZE [expr {100.0 * $preset}]
|
||||||
|
hmm init 0
|
||||||
|
hmm init
|
||||||
|
set state(preset) $preset
|
||||||
|
}] {
|
||||||
|
return -code error $::errorInfo
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##
|
||||||
|
# @brief Check histogram memory status
|
||||||
|
#
|
||||||
|
# @return Stopped, Paused, Started, or raises a Tcl error
|
||||||
|
proc ::histogram_memory::status {} {
|
||||||
|
if [ catch {
|
||||||
|
set reply [SplitReply [hmm configure daq]]
|
||||||
|
} ] {
|
||||||
|
return -code error $::errorInfo
|
||||||
|
} else {
|
||||||
|
return $reply
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
##
|
##
|
||||||
# @brief Set stop condition for histogram memory
|
# @brief Set stop condition for histogram memory
|
||||||
#
|
#
|
||||||
# @param condition
|
# @param condition
|
||||||
proc ::histogram_memory::stop_condition {condition} {
|
proc ::histogram_memory::stop_condition {condition} {
|
||||||
array set count_stop {immediate IMMEDIATE period AT_END_OF_PERIOD}
|
variable state
|
||||||
hmm configure FAT_COUNT_STOP $count_stop($condition)
|
array set count_stop {immediate IMMEDIATE period AT_END_OF_PERIOD}
|
||||||
hmm init 0
|
if [ catch {
|
||||||
hmm init
|
if {$condition == ""} {
|
||||||
|
return $state(stop_cond)
|
||||||
|
} else {
|
||||||
|
hmm configure FAT_COUNT_STOP $count_stop($condition)
|
||||||
|
hmm init 0
|
||||||
|
hmm init
|
||||||
|
set state(stop_cond) $condition
|
||||||
|
}
|
||||||
|
}] {
|
||||||
|
return -code error $::errorInfo
|
||||||
|
}
|
||||||
}
|
}
|
||||||
namespace eval ::histogram_memory {
|
namespace eval ::histogram_memory {
|
||||||
#TODO Create GumTree commands to setup, start and stop the histmem
|
#TODO Create GumTree commands to setup, start and stop the histmem
|
||||||
@@ -1125,13 +1193,28 @@ namespace eval ::histogram_memory {
|
|||||||
::histogram_memory::pause
|
::histogram_memory::pause
|
||||||
}
|
}
|
||||||
"mode" {
|
"mode" {
|
||||||
eval "::histogram_memory::count_method $args"
|
if {$args == ""} {
|
||||||
|
return [::histogram_memory::count_method ]
|
||||||
|
} else {
|
||||||
|
eval "::histogram_memory::count_method $args"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"preset" {
|
"preset" {
|
||||||
eval "::histogram_memory::count_size $args"
|
if {$args == ""} {
|
||||||
|
return [::histogram_memory::count_size ]
|
||||||
|
} else {
|
||||||
|
eval "::histogram_memory::count_size $args"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"setfreq" {
|
"freq" {
|
||||||
eval "::histogram_memory::set_frame_freq $args"
|
if {$args == ""} {
|
||||||
|
return [::histogram_memory::get_frame_freq ]
|
||||||
|
} else {
|
||||||
|
eval "::histogram_memory::set_frame_freq $args"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"status" {
|
||||||
|
return [::histogram_memory::status]
|
||||||
}
|
}
|
||||||
"loadconf" {
|
"loadconf" {
|
||||||
# Loads configuration tables (OAT, FAT, ...) to histogram server
|
# Loads configuration tables (OAT, FAT, ...) to histogram server
|
||||||
@@ -1142,7 +1225,7 @@ namespace eval ::histogram_memory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
default {
|
default {
|
||||||
error "Available commands are, start stop pause mode preset setfreq loadconf"
|
error "Available commands are, start stop pause mode preset freq status loadconf"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} errmsg ] {
|
} errmsg ] {
|
||||||
|
|||||||
Reference in New Issue
Block a user