Files
sics/site_ansto/instrument/hrpd/scan.tcl
Ferdi Franceschini f3ece2769d Implemented changes requested in
pvh email: RFS Echidna data file structure (09/01/07)

r1397 | ffr | 2007-01-12 11:46:57 +1100 (Fri, 12 Jan 2007) | 3 lines
2012-11-15 12:56:30 +11:00

109 lines
3.3 KiB
Tcl

namespace eval scanCommand {
#MakeScanCommand escan counter echidna.hdd recover.bin
variable scanVariable scan_var scanVarStart 0 scanVarStep 1
proc scan_prepare {sobj uobj} {
variable scanVarStart;
variable scanVarStep;
variable scanVariable;
nxcreatefile;
nxscript updatedictvar entryName start;
nxscript puttext estart [sicstime];
nxclosefile;
# stdscan prepare $sobj $uobj;
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];
hs_prepare $sobj $uobj
}
proc hm_scan_finish {sobj uobj} {
hs_finish $sobj $uobj;
nxreopenfile;
nxscript updatedictvar entryName stop;
nxscript puttext eend [sicstime];
nxclosefile;
}
proc bm_scan_finish {sobj uobj} {
stdscan finish $sobj $uobj;
nxreopenfile;
nxscript updatedictvar entryName stop;
nxscript puttext eend [sicstime];
nxclosefile;
}
#proc hm_scan_finish {sobj uobj} {
# nxclosefile;
#}
# Add an nxentry for the current scan point
proc nxaddpoint {sobj uobj pt} {
variable scanVarStart;
variable scanVarStep;
variable scanVariable;
set scanVarPos [expr $scanVarStart + $pt * $scanVarStep];
nxreopenfile;
addnxentry nxscript scan_[format "%05d" $pt] $scanVariable $scanVarPos $scanVarStep;
nxclosefile
}
proc donothing {args} {}
proc bmcount {sobj uobj pt mode preset} {
bm setmode $mode
bm count $preset;
}
proc bm_scan_prepare {sobj uobj} {
variable scanVarStart;
variable scanVarStep;
variable scanVariable;
nxcreatefile;
nxscript updatedictvar entryName start;
nxscript puttext estart [sicstime];
nxclosefile;
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];
stdscan prepare $sobj $uobj;
}
proc bm_nxaddpoint {sobj uobj pt} {
variable scanVarStart;
variable scanVarStep;
variable scanVariable;
set scanVarPos [expr $scanVarStart + $pt * $scanVarStep];
nxreopenfile;
bm_addnxentry nxscript scan_$pt $scanVariable $scanVarPos $scanVarStep;
nxclosefile
}
}
publish ::scanCommand::scan_prepare user
publish ::scanCommand::hm_scan_finish user
publish ::scanCommand::nxaddpoint user
publish ::scanCommand::donothing user
publish ::scanCommand::bm_scan_prepare user
publish ::scanCommand::bm_scan_finish user
publish ::scanCommand::bm_nxaddpoint user
publish ::scanCommand::donothing user
publish ::scanCommand::bmcount user
hmscan function writeheader ::scanCommand::donothing
hmscan function writepoint ::scanCommand::nxaddpoint
hmscan function prepare ::scanCommand::scan_prepare
hmscan function finish ::scanCommand::hm_scan_finish
scan2 function writeheader ::scanCommand::donothing
scan2 function writepoint ::scanCommand::nxaddpoint
scan2 function prepare ::scanCommand::scan_prepare
MakeScanCommand bmonscan bm echidna.hdd recover.bin
bmonscan configure script
bmonscan function writeheader ::scanCommand::donothing
bmonscan function writepoint ::scanCommand::bm_nxaddpoint
bmonscan function prepare ::scanCommand::bm_scan_prepare
bmonscan function count ::scanCommand::bmcount
bmonscan function finish ::scanCommand::bm_scan_finish