Use commands_hpath_setup and graphics_hpath_setup to generate scancommand hpaths.
r1638 | ffr | 2007-03-13 09:11:39 +1100 (Tue, 13 Mar 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
2f499bfc60
commit
075cdabfa2
@@ -44,24 +44,9 @@ foreach {obj name part master_obj} $cvirtmotor_hpath {
|
||||
|
||||
#------------- scan command
|
||||
hsetprop /commands type part
|
||||
hcommand /commands/scan hdb_hmscan
|
||||
hsetprop /commands/scan type command
|
||||
hsetprop /commands/scan priv user
|
||||
hmake /commands/scan/scan_variable user text
|
||||
hsetprop /commands/scan/scan_variable argtype drivable
|
||||
hmake /commands/scan/scan_start user float
|
||||
hsetprop /commands/scan/scan_start argtype float
|
||||
hmake /commands/scan/scan_increment user float
|
||||
hsetprop /commands/scan/scan_increment argtype float
|
||||
hmake /commands/scan/NP user int
|
||||
hsetprop /commands/scan/NP argtype int
|
||||
hmake /commands/scan/mode user text
|
||||
hsetprop /commands/scan/mode argtype text
|
||||
hsetprop /commands/scan/mode values monitor,timer
|
||||
hmake /commands/scan/preset user float
|
||||
hsetprop /commands/scan/preset argtype float
|
||||
|
||||
#--- Graphics
|
||||
hmake /Graphics spy none
|
||||
::scanCommand::hpath_setup /Graphics
|
||||
::scanCommand::init
|
||||
hmake /graphics spy none
|
||||
::scancommand::commands_hpath_setup /commands
|
||||
::scancommand::graphics_hpath_setup /graphics
|
||||
::scancommand::init
|
||||
|
||||
@@ -1,8 +1,23 @@
|
||||
#TODO Define bmon and hmm scan commands in separate namespaces
|
||||
|
||||
namespace eval scancommand {
|
||||
VarMake bmonscan_np Int User
|
||||
VarMake bmonscan_point Int User
|
||||
VarMake bmonscan_var_name Text User
|
||||
VarMake bmonscan_var_value Float User
|
||||
VarMake bmonscan_var_start Float User
|
||||
VarMake bmonscan_var_step Float User
|
||||
VarMake bmonscan_mode Text User
|
||||
VarMake bmonscan_preset Float User
|
||||
VarMake bmonscan_np_target Int User
|
||||
VarMake bmonscan_point_current Int User
|
||||
|
||||
VarMake hmscan_var_name Text User
|
||||
VarMake hmscan_var_value Float User
|
||||
VarMake hmscan_var_start Float User
|
||||
VarMake hmscan_var_step Float User
|
||||
VarMake hmscan_mode Text User
|
||||
VarMake hmscan_preset Float User
|
||||
VarMake hmscan_np_target Int User
|
||||
VarMake hmscan_point_current Int User
|
||||
|
||||
variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
proc scan_prepare {sobj uobj} {
|
||||
@@ -13,16 +28,26 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
nxcreatefile nexus_hmscan.dic;
|
||||
nxclosefile;
|
||||
# stdscan prepare $sobj $uobj;
|
||||
hmscan_np_target [SplitReply [$sobj np]]
|
||||
set vlist [split [$sobj getvarpar 0] = ];
|
||||
set scanVariable [string trim [lindex [split [lindex $vlist 0] . ] 1]];
|
||||
set scanVarStart [lindex $vlist 1];
|
||||
set scanVarStep [lindex $vlist 2];
|
||||
|
||||
hmscan_var_name $scanVariable
|
||||
hmscan_var_start $scanVarStart
|
||||
hmscan_var_step $scanVarStep
|
||||
::histogram_memory::hs_prepare $sobj $uobj
|
||||
}
|
||||
|
||||
proc hm_count {sobj uobj point mode preset} {
|
||||
variable scan_pt_start_time
|
||||
set scan_pt_start_time [sicstime]
|
||||
hmscan_point_current $point;
|
||||
hmscan_mode $mode;
|
||||
hmscan_preset $preset;
|
||||
set scanvar [SplitReply [hmscan_var_name]]
|
||||
hmscan_var_value [SplitReply [$scanvar]]
|
||||
::histogram_memory::hs_count_bm_controlled $sobj $uobj $point $mode $preset;
|
||||
|
||||
}
|
||||
@@ -65,10 +90,14 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
|
||||
proc donothing {args} {}
|
||||
|
||||
proc bmcount {sobj uobj pt mode preset} {
|
||||
proc bmcount {sobj uobj point mode preset} {
|
||||
variable scan_pt_start_time
|
||||
set scan_pt_start_time [sicstime]
|
||||
bmonscan_point $pt
|
||||
bmonscan_point_current $point
|
||||
bmonscan_mode $mode;
|
||||
bmonscan_preset $preset;
|
||||
set scanvar [SplitReply [bmonscan_var_name]]
|
||||
bmonscan_var_value [SplitReply [$scanvar]]
|
||||
bm setmode $mode
|
||||
bm count $preset;
|
||||
}
|
||||
@@ -79,27 +108,76 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
variable scanVariable;
|
||||
nxcreatefile nexus_bmonscan.dic;
|
||||
nxclosefile;
|
||||
bmonscan_np_target [SplitReply [$sobj np]];
|
||||
set vlist [split [$sobj getvarpar 0] = ];
|
||||
set scanVariable [string trim [lindex [split [lindex $vlist 0] . ] 1]];
|
||||
set scanVarStart [lindex $vlist 1];
|
||||
set scanVarStep [lindex $vlist 2];
|
||||
bmonscan_var_name $scanVariable
|
||||
bmonscan_var_start $scanVarStart
|
||||
bmonscan_var_step $scanVarStep
|
||||
#stdscan prepare $sobj $uobj;
|
||||
}
|
||||
|
||||
|
||||
proc init {} {
|
||||
#TODO HSET bmonscan_np IN SCAN FUNCTION
|
||||
bmonscan_np 1;
|
||||
bmonscan_point 0;
|
||||
#TODO HSET bmonscan_np_target IN SCAN FUNCTION
|
||||
bmonscan_np_target 1;
|
||||
bmonscan_point_current 0;
|
||||
hmscan_np_target 1;
|
||||
hmscan_point_current 0;
|
||||
}
|
||||
|
||||
proc hpath_setup {parent} {
|
||||
proc commands_hpath_setup {parent} {
|
||||
hcommand $parent/bmonscan hdb_bmonscan
|
||||
hsetprop $parent/bmonscan type command
|
||||
hsetprop $parent/bmonscan priv user
|
||||
|
||||
hattach $parent/bmonscan bmonscan_var_name scan_variable
|
||||
hsetprop $parent/bmonscan/scan_variable argtype drivable
|
||||
|
||||
hattach $parent/bmonscan bmonscan_var_start scan_start
|
||||
hsetprop $parent/bmonscan/scan_start argtype float
|
||||
|
||||
hattach $parent/bmonscan bmonscan_var_step scan_increment
|
||||
hsetprop $parent/bmonscan/scan_increment argtype float
|
||||
|
||||
hattach $parent/bmonscan/ bmonscan_np_target NP
|
||||
hsetprop $parent/bmonscan/NP argtype int
|
||||
|
||||
hmake $parent/bmonscan/mode user text
|
||||
hsetprop $parent/bmonscan/mode argtype text
|
||||
hsetprop $parent/bmonscan/mode values monitor,timer
|
||||
|
||||
hmake $parent/bmonscan/preset user float
|
||||
hsetprop $parent/bmonscan/preset argtype float
|
||||
|
||||
# Optional feedback node
|
||||
hmake $parent/bmonscan/feedback spy none
|
||||
hattach $parent/bmonscan/feedback dataFileName filename
|
||||
hattach $parent/bmonscan/feedback bmonscan_mode mode
|
||||
hattach $parent/bmonscan/feedback bmonscan_preset preset
|
||||
hmake $parent/bmonscan/feedback/scan_variable spy none
|
||||
hattach $parent/bmonscan/feedback/scan_variable bmonscan_var_value value
|
||||
hmake $parent/bmonscan/feedback/NP spy none
|
||||
hattach $parent/bmonscan/feedback/NP bmonscan_point_current current
|
||||
}
|
||||
|
||||
proc graphics_hpath_setup {parent} {
|
||||
hmake $parent/beam_monitor_scan spy none;
|
||||
hsetprop $parent/beam_monitor_scan type graphdata;
|
||||
hsetprop $parent/beam_monitor_scan viewer default;
|
||||
hsetprop $parent/beam_monitor_scan rank 1;
|
||||
hattach $parent/beam_monitor_scan bmonscan_np dim;
|
||||
hattach $parent/beam_monitor_scan bmonscan_point point;
|
||||
hattach $parent/beam_monitor_scan bmonscan_np_target dim;
|
||||
hattach $parent/beam_monitor_scan bmonscan_point_current point;
|
||||
|
||||
hmake $parent/histogram_memory_scan spy none;
|
||||
hsetprop $parent/histogram_memory_scan type graphdata;
|
||||
hsetprop $parent/histogram_memory_scan viewer default;
|
||||
hsetprop $parent/histogram_memory_scan rank 2;
|
||||
hattach $parent/histogram_memory_scan hmscan_np_target dim0;
|
||||
hattach $parent/histogram_memory_scan hmscan_np_target dim1;
|
||||
hattach $parent/histogram_memory_scan hmscan_point_current point;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -148,19 +226,20 @@ hmscan function count ::scancommand::hm_count
|
||||
hmscan function prepare ::scancommand::scan_prepare
|
||||
hmscan function finish ::scancommand::hm_scan_finish
|
||||
# Wombat proc hdb_hmscan {scanvar scanstart scanincr scanend mode preset} {
|
||||
proc hdb_hmscan {scanvar scanstart scanincr np mode preset} {
|
||||
hmscan clear
|
||||
# hmscan configure script
|
||||
proc hdb_bmonscan {scanvar scanstart scanincr np mode preset} {
|
||||
bmonscan clear
|
||||
# bmonscan configure script
|
||||
|
||||
hmscan add $scanvar $scanstart $scanincr
|
||||
set status [catch {hmscan run $np $mode $preset} msg]
|
||||
hmscan configure soft
|
||||
bmonscan add $scanvar $scanstart $scanincr
|
||||
set status [catch {bmonscan run $np $mode $preset} msg]
|
||||
# bmonscan configure soft
|
||||
if {$status == 0} {
|
||||
return $msg
|
||||
} else {
|
||||
clientput "hdb_bmonscan ERROR: $msg"
|
||||
error $msg
|
||||
}
|
||||
}
|
||||
|
||||
publish hdb_hmscan user
|
||||
publish hdb_bmonscan user
|
||||
|
||||
|
||||
Reference in New Issue
Block a user