Merged new hdb and nexus code.
r2099 | ffr | 2007-07-22 15:23:41 +1000 (Sun, 22 Jul 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
4e407d0a73
commit
8770acc191
@@ -1,10 +1,10 @@
|
||||
#TODO Define bmon and hmm scan commands in separate namespaces
|
||||
|
||||
MakeScanCommand hmscan bm $cfPath(scan)/scan_common_1.hdd recover.bin
|
||||
MakeScanCommand bmonscan bm $cfPath(scan)/scan_common_1.hdd recover.bin
|
||||
MakeScanCommand scan2 bm $cfPath(scan)/scan_common_1.hdd recover.bin
|
||||
|
||||
namespace eval scancommand {
|
||||
namespace eval scan {
|
||||
variable event;
|
||||
# List of counts
|
||||
variable bmoncounts_array
|
||||
variable bmoncounts_axis
|
||||
@@ -13,87 +13,60 @@ variable bmonscanvar_axis_hpath
|
||||
# hpath to values from bmoncounts_array
|
||||
# we use this to get auto-notification on update of bmonscancounts_array_hpath
|
||||
variable bmonscancounts_array_hpath
|
||||
|
||||
# bmonscan setup parameters and feedback variables.
|
||||
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 bmonscan_counts Int User
|
||||
VarMake bmonscan_numchannels Int User
|
||||
VarMake bmonscan_channel Int User
|
||||
|
||||
# bmonscan graphdata variables.
|
||||
VarMake bmonscan_np_graphics_target Int User
|
||||
VarMake bmonscan_point_graphics_current Int User
|
||||
VarMake bmonscan_var_graphics_value Float 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
|
||||
VarMake hmscan_numchannels Int User
|
||||
VarMake hmscan_channel Int User
|
||||
|
||||
variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
proc scan_collect {sobj uobj point} {
|
||||
}
|
||||
|
||||
proc hmm_scan_prepare {sobj uobj} {
|
||||
variable scanVarStart;
|
||||
variable scanVarStep;
|
||||
variable scanVariable;
|
||||
variable scan_pt_start_time
|
||||
set nexusdic hmscan.dic
|
||||
|
||||
nxcreatefile nexus_hmscan.dic;
|
||||
nxclosefile;
|
||||
# stdscan prepare $sobj $uobj;
|
||||
hmscan_np_target [SplitReply [$sobj np]]
|
||||
::scan::hdb_hmscan -set NP [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];
|
||||
::scan::hdb_hmscan -set scan_variable [string trim [lindex [split [lindex $vlist 0] . ] 1]]
|
||||
::scan::hdb_hmscan -set scan_start [lindex $vlist 1];
|
||||
::scan::hdb_hmscan -set scan_increment [lindex $vlist 2];
|
||||
|
||||
hmscan_var_name $scanVariable
|
||||
hmscan_var_start $scanVarStart
|
||||
hmscan_var_step $scanVarStep
|
||||
set scan_pt_start_time [sicstime]
|
||||
|
||||
#FIXME remove dependency on hdb path
|
||||
::scan::hdb_hmscan -set feedback status BUSY
|
||||
|
||||
::histogram_memory::prepare
|
||||
data axis 1 [::scan::hdb_hmscan -set scan_variable]
|
||||
::hdb::set_save / true
|
||||
newfile [SplitReply [SicsDataSuffix]] $nexusdic
|
||||
}
|
||||
|
||||
proc hmm_count {sobj uobj point mode preset} {
|
||||
hmscan_point_current $point;
|
||||
hmscan_mode $mode;
|
||||
hmscan_preset $preset;
|
||||
set scanvar [SplitReply [hmscan_var_name]]
|
||||
hmscan_var_value [SplitReply [$scanvar]]
|
||||
::scan::hdb_hmscan -set mode $mode
|
||||
::scan::hdb_hmscan -set preset $preset;
|
||||
::scan::hdb_hmscan -set feedback scanpoint $point
|
||||
::scan::hdb_hmscan -set feedback mode $mode;
|
||||
::scan::hdb_hmscan -set feedback preset $preset;
|
||||
::scan::hdb_hmscan -set feedback scan_variable_value [SplitReply [[::scan::hdb_hmscan -set scan_variable]]]
|
||||
::histogram_memory::count_bm_controlled $mode $preset;
|
||||
}
|
||||
|
||||
proc hmm_scan_finish {sobj uobj} {
|
||||
::histogram_memory::finish;
|
||||
nxreopenfile;
|
||||
nxclosefile;
|
||||
::scan::hdb_hmscan -set feedback status IDLE
|
||||
# Make sure that the next save command doesn't overwrite our scan data.
|
||||
newfile [SplitReply [SicsDataSuffix]]
|
||||
}
|
||||
|
||||
proc bm_scan_finish {sobj uobj} {
|
||||
# stdscan finish $sobj $uobj;
|
||||
nxreopenfile;
|
||||
nxclosefile;
|
||||
::scan::hdb_bmonscan -set feedback status IDLE
|
||||
# Make sure that the next save command doesn't overwrite our scan data.
|
||||
newfile [SplitReply [SicsDataSuffix]]
|
||||
}
|
||||
#proc hmm_scan_finish {sobj uobj} {
|
||||
# nxclosefile;
|
||||
#}
|
||||
|
||||
# Add an nxentry for the current scan point
|
||||
#TODO Is this obsolete?
|
||||
proc write_nxentry {nxentryCmd point} {
|
||||
variable scanVarStart;
|
||||
variable scanVarStep;
|
||||
@@ -101,44 +74,45 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
variable scan_pt_start_time;
|
||||
|
||||
set scanVarPos [expr {$scanVarStart + $point * $scanVarStep} ];
|
||||
nxreopenfile;
|
||||
save $point
|
||||
# nxreopenfile;
|
||||
# $nxentryCmd nxscript scan_[format "%05d" $point] $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time;
|
||||
$nxentryCmd nxscript entry1 $point $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time;
|
||||
nxclosefile;
|
||||
# $nxentryCmd nxscript entry1 $point $scanVariable $scanVarPos $scanVarStep $scan_pt_start_time;
|
||||
# nxclosefile;
|
||||
}
|
||||
|
||||
proc bm_writepoint {sobj uobj pt} {
|
||||
variable bmoncounts_array
|
||||
set bmoncounts_array [string map {\{ "" \} ""} [SplitReply [bmonscan getcounts]]];
|
||||
write_nxentry bm_addnxscanentry $pt;
|
||||
save $pt
|
||||
|
||||
bmonscan_counts [SplitReply [bm getcounts]]
|
||||
bmonscan_np_graphics_target [SplitReply [bmonscan_np_target]]
|
||||
bmonscan_point_graphics_current [SplitReply [bmonscan_point_current]]
|
||||
bmonscan_var_graphics_value [SplitReply [bmonscan_var_value]]
|
||||
::scan::hdb_bmonscan -set feedback counts [SplitReply [bm getcounts]];
|
||||
}
|
||||
|
||||
#TODO Feedback for Histogram memory scan
|
||||
proc hmm_writepoint {sobj uobj pt} {
|
||||
write_nxentry hmm_addnxscanentry $pt;
|
||||
# Write hdb tree
|
||||
save $pt
|
||||
}
|
||||
|
||||
proc donothing {args} {}
|
||||
|
||||
proc bm_count {sobj uobj point mode preset} {
|
||||
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;
|
||||
variable event;
|
||||
::scan::hdb_bmonscan -set mode $mode
|
||||
::scan::hdb_bmonscan -set preset $preset
|
||||
::scan::hdb_bmonscan -set feedback scanpoint $point;
|
||||
::scan::hdb_bmonscan -set feedback mode $mode;
|
||||
::scan::hdb_bmonscan -set feedback preset $preset;
|
||||
::scan::hdb_bmonscan -set feedback scan_variable_value [SplitReply [[::scan::hdb_bmonscan -set scan_variable]]]
|
||||
::monitor::count $mode $preset
|
||||
}
|
||||
|
||||
proc bm_scan_prepare {sobj uobj} {
|
||||
variable scanVarStart;
|
||||
variable scanVarStep;
|
||||
variable scanVariable;
|
||||
variable event;
|
||||
variable nexusdic
|
||||
set nexusdic bmonscan.dic
|
||||
|
||||
variable bmoncounts_array;
|
||||
variable bmoncounts_axis;
|
||||
variable scan_pt_start_time
|
||||
@@ -147,148 +121,68 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||
#TODO Parameterise varindex in some way
|
||||
set varindex 0;
|
||||
|
||||
nxcreatefile nexus_bmonscan.dic;
|
||||
nxclosefile;
|
||||
bmonscan_np_target [SplitReply [$sobj np]];
|
||||
::scan::hdb_bmonscan -set feedback filename [SplitReply [dataFileName]]
|
||||
::scan::hdb_bmonscan -set NP [SplitReply [$sobj np]];
|
||||
# set event(hdb_bmonscan/graphics,dim) [::scan::hdb_bmonscan -set NP]
|
||||
set vlist [split [$sobj getvarpar $varindex] = ];
|
||||
set scanVariable [string trim [lindex [split [lindex $vlist 0] . ] 1]];
|
||||
set scanVarStart [lindex $vlist 1];
|
||||
set scanVarStep [lindex $vlist 2];
|
||||
::scan::hdb_bmonscan -set scan_variable [string trim [lindex [split [lindex $vlist 0] . ] 1]];
|
||||
::scan::hdb_bmonscan -set scan_start [lindex $vlist 1];
|
||||
::scan::hdb_bmonscan -set scan_increment [lindex $vlist 2];
|
||||
set scanvar_pts [SplitReply [$sobj getvardata $varindex]]
|
||||
set bmoncounts_axis [string map {\{ "" \} ""} $scanvar_pts]
|
||||
bmonscan_var_name $scanVariable
|
||||
bmonscan_var_start $scanVarStart
|
||||
bmonscan_var_step $scanVarStep
|
||||
set scan_pt_start_time [sicstime]
|
||||
todo_msg "SET START TIME set event(hdb_bmonscan,scan_pt_start_time) [sicstime]"
|
||||
|
||||
::scan::hdb_bmonscan -set feedback status BUSY
|
||||
#FIXME remove dependency on hdb path
|
||||
|
||||
array set bm_fb [::scan::hdb_bmonscan -list feedback]
|
||||
data axis 1 [::scan::hdb_bmonscan -set scan_variable]
|
||||
::hdb::set_save / true
|
||||
::hdb::set_save /instrument/detector false
|
||||
newfile [SplitReply [SicsDataSuffix]] $nexusdic
|
||||
#stdscan prepare $sobj $uobj;
|
||||
}
|
||||
|
||||
|
||||
proc init {} {
|
||||
variable bmoncounts_array;
|
||||
variable bmoncounts_axis;
|
||||
|
||||
bmonscan_numchannels [SplitReply [bmonscan getnumchan]];
|
||||
bmonscan_channel 0;
|
||||
bmonscan_np_target 0;
|
||||
bmonscan_point_current 0;
|
||||
|
||||
hmscan_numchannels [SplitReply [hmscan getnumchan]];
|
||||
hmscan_channel 0;
|
||||
hmscan_np_target 0;
|
||||
hmscan_point_current 0;
|
||||
set bmoncounts_array [list];
|
||||
set bmoncounts_axis [list];
|
||||
}
|
||||
|
||||
proc commands_hpath_setup {parent} {
|
||||
set feedbackPath $parent/bmonscan/feedback
|
||||
|
||||
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
|
||||
|
||||
hattach $parent/bmonscan/ bmonscan_channel channel
|
||||
hsetprop $parent/bmonscan/channel argtype int
|
||||
hsetprop $parent/bmonscan/channel min 0
|
||||
hsetprop $parent/bmonscan/channel max [SplitReply [bmonscan getnumchan]]
|
||||
|
||||
# Optional feedback node
|
||||
hmake $feedbackPath spy none
|
||||
hattach $feedbackPath dataFileName filename
|
||||
hattach $feedbackPath bmonscan_mode mode
|
||||
hattach $feedbackPath bmonscan_preset preset
|
||||
hmake $feedbackPath/scan_variable spy none
|
||||
hattach $feedbackPath/scan_variable bmonscan_var_value value
|
||||
hmake $feedbackPath/NP spy none
|
||||
hattach $feedbackPath/NP bmonscan_point_current current
|
||||
hattach $feedbackPath bmonscan_counts counts;
|
||||
foreach fbNode [hlist $feedbackPath] {
|
||||
hsetprop $feedbackPath/$fbNode privilege READ_ONLY;
|
||||
}
|
||||
#TODO Histogram memory scan command
|
||||
}
|
||||
|
||||
|
||||
proc graphics_hpath_setup {parent} {
|
||||
variable bmonscanvar_axis_hpath
|
||||
variable bmonscancounts_array_hpath
|
||||
variable bmoncounts_array
|
||||
variable bmoncounts_axis
|
||||
|
||||
set bmonscanvar_axis_hpath $parent/beam_monitor_scan/axis
|
||||
set bmonscancounts_array_hpath $parent/beam_monitor_scan/data
|
||||
set defdim 100
|
||||
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_target dim;
|
||||
hattach $parent/beam_monitor_scan bmonscan_point_graphics_current point;
|
||||
hattach $parent/beam_monitor_scan bmonscan_var_graphics_value lastaxis
|
||||
hattach $parent/beam_monitor_scan bmonscan_counts lastdata
|
||||
hmakescript $bmonscanvar_axis_hpath "set ::scancommand::bmoncounts_axis" hdbReadOnly floatvarar $defdim
|
||||
hsetprop $bmonscanvar_axis_hpath type axis
|
||||
sicspoll del $bmonscanvar_axis_hpath
|
||||
hmakescript $bmonscancounts_array_hpath "set ::scancommand::bmoncounts_array" hdbReadOnly floatvarar $defdim
|
||||
hsetprop $bmonscancounts_array_hpath type data
|
||||
sicspoll del $bmonscancounts_array_hpath
|
||||
|
||||
#TODO histogram_memory_scan
|
||||
# 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;
|
||||
}
|
||||
# group=beam_monitor_scan
|
||||
proc hdb_bmonscan_graphics {process args} {
|
||||
set eid hdb_bmonscan/graphics
|
||||
$process $args path beam_monitor_scan prop_list {data false control true nxsave false klass @none type graphdata viewer default rank 1}
|
||||
$process $args kind event node beam_monitor_scan/dim dtype int priv user eventid $eid;
|
||||
$process $args kind event node beam_monitor_scan/point dtype int priv user eventid $eid;
|
||||
$process $args kind event node beam_monitor_scan/lastaxis dtype float priv user eventid $eid;
|
||||
$process $args kind event node beam_monitor_scan/lastdata dtype int priv user eventid $eid;
|
||||
$process $args kind script node beam_monitor_scan/axis dtype floatvarar dlen 100 priv user rscript "set ::scan::bmoncounts_axis" wscript hdbReadOnly prop_list {type axis}
|
||||
$process $args kind script node beam_monitor_scan/data dtype floatvarar dlen 100 priv user rscript "set ::scan::bmoncounts_array" wscript hdbReadOnly prop_list {type data}
|
||||
}
|
||||
}
|
||||
|
||||
publish ::scancommand::scan_collect user
|
||||
publish ::scancommand::write_nxentry user
|
||||
publish ::scancommand::hmm_count user
|
||||
publish ::scancommand::hmm_scan_prepare user
|
||||
publish ::scancommand::hmm_scan_finish user
|
||||
publish ::scancommand::hmm_writepoint user
|
||||
publish ::scancommand::donothing user
|
||||
Publish ::scan::scan_collect user
|
||||
Publish ::scan::write_nxentry user
|
||||
Publish ::scan::hmm_count user
|
||||
Publish ::scan::hmm_scan_prepare user
|
||||
Publish ::scan::hmm_scan_finish user
|
||||
Publish ::scan::hmm_writepoint user
|
||||
Publish ::scan::donothing user
|
||||
|
||||
publish ::scancommand::bm_scan_prepare user
|
||||
publish ::scancommand::bm_scan_finish user
|
||||
publish ::scancommand::bm_writepoint user
|
||||
publish ::scancommand::bm_count user
|
||||
Publish ::scan::bm_scan_prepare user
|
||||
Publish ::scan::bm_scan_finish user
|
||||
Publish ::scan::bm_writepoint user
|
||||
Publish ::scan::bm_count user
|
||||
|
||||
bmonscan configure script
|
||||
bmonscan function writeheader ::scancommand::donothing
|
||||
bmonscan function writepoint ::scancommand::bm_writepoint
|
||||
bmonscan function count ::scancommand::bm_count
|
||||
#bmonscan function collect ::scancommand::scan_collect
|
||||
bmonscan function prepare ::scancommand::bm_scan_prepare
|
||||
bmonscan function finish ::scancommand::bm_scan_finish
|
||||
bmonscan function writeheader ::scan::donothing
|
||||
bmonscan function writepoint ::scan::bm_writepoint
|
||||
bmonscan function count ::scan::bm_count
|
||||
#bmonscan function collect ::scan::scan_collect
|
||||
bmonscan function prepare ::scan::bm_scan_prepare
|
||||
bmonscan function finish ::scan::bm_scan_finish
|
||||
|
||||
|
||||
#scan2 function writeheader ::scancommand::donothing
|
||||
#scan2 function writepoint ::scancommand::nxaddpoint
|
||||
#scan2 function prepare ::scancommand::hmm_scan_prepare
|
||||
#scan2 function writeheader ::scan::donothing
|
||||
#scan2 function writepoint ::scan::nxaddpoint
|
||||
#scan2 function prepare ::scan::hmm_scan_prepare
|
||||
# Configure script mode, then we can configure all the scan callbacks.
|
||||
# The scan list command can be used to check that the callbacks
|
||||
# are properly defined.
|
||||
@@ -306,29 +200,57 @@ scan2 function finish ::histogram_memory::hs_finish
|
||||
hmscan configure script
|
||||
#hmscan function prepare hdbprepare
|
||||
#hmscan function collect hdbcollect
|
||||
hmscan function writeheader ::scancommand::donothing
|
||||
hmscan function writepoint ::scancommand::hmm_writepoint
|
||||
hmscan function count ::scancommand::hmm_count
|
||||
#hmscan function collect ::scancommand::scan_collect
|
||||
bmonscan function prepare ::scancommand::bm_scan_prepare
|
||||
hmscan function prepare ::scancommand::hmm_scan_prepare
|
||||
hmscan function finish ::scancommand::hmm_scan_finish
|
||||
# Wombat proc hdb_hmscan {scanvar scanstart scanincr scanend mode preset} {
|
||||
proc hdb_bmonscan {scanvar scanstart scanincr np mode preset channel} {
|
||||
hmscan function writeheader ::scan::donothing
|
||||
hmscan function writepoint ::scan::hmm_writepoint
|
||||
hmscan function count ::scan::hmm_count
|
||||
#hmscan function collect ::scan::scan_collect
|
||||
hmscan function prepare ::scan::hmm_scan_prepare
|
||||
hmscan function finish ::scan::hmm_scan_finish
|
||||
|
||||
namespace eval scan {
|
||||
command hdb_bmonscan { text:drivable scan_variable float: scan_start float: scan_increment int: NP text:monitor,timer mode float: preset int:0,2 channel} {
|
||||
|
||||
bmonscan clear
|
||||
# bmonscan configure script
|
||||
|
||||
bmonscan add $scanvar $scanstart $scanincr
|
||||
bmonscan add $scan_variable $scan_start $scan_increment
|
||||
bmonscan setchannel $channel;
|
||||
set status [catch {bmonscan run $np $mode $preset} msg]
|
||||
set status [catch {bmonscan run $NP $mode $preset} msg]
|
||||
# bmonscan configure soft
|
||||
if {$status == 0} {
|
||||
return $msg
|
||||
} else {
|
||||
clientput "hdb_bmonscan ERROR: $msg"
|
||||
clientput "ERROR, [info level 0], $msg"
|
||||
error $msg
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
::scan::hdb_bmonscan -addfb text filename text mode float preset float scan_variable_value int scanpoint int counts text status
|
||||
::scan::hdb_bmonscan -set feedback status IDLE
|
||||
|
||||
|
||||
publish hdb_bmonscan user
|
||||
|
||||
command hdb_hmscan { text:drivable scan_variable float: scan_start float: scan_increment int: NP text:monitor,timer mode float: preset int:0,2 channel} {
|
||||
|
||||
hmscan clear
|
||||
|
||||
hmscan add $scan_variable $scan_start $scan_increment
|
||||
hmscan setchannel $channel;
|
||||
set status [catch {hmscan run $NP $mode $preset} msg]
|
||||
|
||||
if {$status == 0} {
|
||||
return $msg
|
||||
} else {
|
||||
clientput "ERROR, [info level 0], $msg"
|
||||
error $msg
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
::scan::hdb_hmscan -addfb text filename text mode float preset float scan_variable_value int scanpoint int counts text status
|
||||
::scan::hdb_hmscan -set feedback status IDLE
|
||||
}
|
||||
publish ::scan::hdb_bmonscan_graphics user
|
||||
sicslist setatt ::scan::hdb_bmonscan long_name bmonscan
|
||||
sicslist setatt ::scan::hdb_hmscan long_name hmscan
|
||||
|
||||
Reference in New Issue
Block a user