Integrated hmm with nexus data file writing.
Now have hm and bm scans. r1354 | ffr | 2006-12-08 09:12:48 +1100 (Fri, 08 Dec 2006) | 3 lines
This commit is contained in:
committed by
Douglas Clowes
parent
280d440494
commit
641ed5227e
@@ -12,3 +12,4 @@ hpaths.tcl
|
|||||||
InstXML.xml
|
InstXML.xml
|
||||||
extraconfig.tcl
|
extraconfig.tcl
|
||||||
sim_configuration.tcl
|
sim_configuration.tcl
|
||||||
|
hmm/*.xml
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ entryName=entry1
|
|||||||
dataName=histogram
|
dataName=histogram
|
||||||
inst=HRPD
|
inst=HRPD
|
||||||
detector=hrdetector
|
detector=hrdetector
|
||||||
|
monochromator=monochromator
|
||||||
thetadim=128
|
thetadim=128
|
||||||
|
scan_variable=scanvar
|
||||||
#---------- NXentry level
|
#---------- NXentry level
|
||||||
etitle=/$(entryName),NXentry/SDS title -type NX_CHAR
|
etitle=/$(entryName),NXentry/SDS title -type NX_CHAR
|
||||||
estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR
|
estart=/$(entryName),NXentry/SDS start_time -type NX_CHAR
|
||||||
@@ -26,6 +28,7 @@ iname=/$(entryName),NXentry/$(inst),NXinstrument/SDS name -type NX_CHAR \
|
|||||||
mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR
|
mmode=/$(entryName),NXentry/monitor,NXmonitor/SDS mode -type NX_CHAR
|
||||||
mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32
|
mpreset=/$(entryName),NXentry/monitor,NXmonitor/SDS preset -type NX_FLOAT32
|
||||||
mdata=/$(entryName),NXentry/monitor,NXmonitor/SDS data -type NX_INT32
|
mdata=/$(entryName),NXentry/monitor,NXmonitor/SDS data -type NX_INT32
|
||||||
|
mdistance=/$(entryName),NXentry/monitor,NXmonitor/SDS distance -type NX_FLOAT32 -attr {units,metre}
|
||||||
|
|
||||||
#----------------- NXsource
|
#----------------- NXsource
|
||||||
sname=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS name \
|
sname=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS name \
|
||||||
@@ -34,8 +37,10 @@ stype=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS type -type
|
|||||||
sprobe=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS probe -type NX_CHAR -rank 1
|
sprobe=/$(entryName),NXentry/$(inst),NXinstrument/source,NXsource/SDS probe -type NX_CHAR -rank 1
|
||||||
#----------------- NXcrystal
|
#----------------- NXcrystal
|
||||||
clambda=/$(entryName),NXentry/$(inst),NXinstrument/Ge113,NXcrystal/SDS wavelength -type NX_FLOAT32 -attr {units,Angstrom}
|
clambda=/$(entryName),NXentry/$(inst),NXinstrument/Ge113,NXcrystal/SDS wavelength -type NX_FLOAT32 -attr {units,Angstrom}
|
||||||
|
ctype=/$(entryName),NXentry/$(inst),NXinstrument/Ge113,NXcrystal/SDS type -type NX_CHAR
|
||||||
#------------- counter
|
#------------- counter
|
||||||
#-------------- histogram data
|
#-------------- Detector
|
||||||
|
# histogram data
|
||||||
dradius=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS distance -type NX_FLOAT32
|
dradius=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS distance -type NX_FLOAT32
|
||||||
dtheta=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS polar_angle -type NX_FLOAT32 -LZW -rank 1 -dim {$(thetadim)} -attr {units,degree}
|
dtheta=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS polar_angle -type NX_FLOAT32 -LZW -rank 1 -dim {$(thetadim)} -attr {units,degree}
|
||||||
|
|
||||||
@@ -50,9 +55,15 @@ ddesc=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS des
|
|||||||
dtype=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS type -type NX_CHAR
|
dtype=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS type -type NX_CHAR
|
||||||
|
|
||||||
dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR
|
dlayout=/$(entryName),NXentry/$(inst),NXinstrument/$(detector),NXdetector/SDS layout -type NX_CHAR
|
||||||
|
#--------------- NXmonochromator
|
||||||
|
mtth=/$(entryName),NXentry/$(inst),NXinstrument/$(monochromator),NXmonochromator/mtth,NXpositioner/SDS value -type NX_FLOAT32 -attr {units,degree} -attr {long_name,mtth}
|
||||||
#--------------- NXsample
|
#--------------- NXsample
|
||||||
saname=/$(entryName),NXentry/sample,NXsample/SDS name -type NX_CHAR
|
saname=/$(entryName),NXentry/sample,NXsample/SDS name -type NX_CHAR
|
||||||
sarot=/$(entryName),NXentry/sample,NXsample/SDS rotation_angle -type NX_FLOAT32 -attr {units,degree}
|
sarot=/$(entryName),NXentry/sample,NXsample/SDS rotation_angle -type NX_FLOAT32 -attr {units,degree}
|
||||||
|
stth=/$(entryName),NXentry/sample,NXsample/stth,NXpositioner/SDS value -type NX_FLOAT32 -attr {units,degree} -attr {long_name,stth}
|
||||||
#----------------NXdata ------------------------------------------------
|
#----------------NXdata ------------------------------------------------
|
||||||
dana=/$(entryName),NXentry/data,NXdata/NXVGROUP
|
scandata=/$(entryName),NXentry/scan_data,NXdata/NXVGROUP
|
||||||
|
scanvar=/$(entryName),NXentry/scan_variable,NXdata/NXVGROUP
|
||||||
|
#histogram=/$(entryName),NXentry/histogram,NXdata/NXVGROUP
|
||||||
|
#scanvar=/$(entryName),NXentry/$(scan_variable),NXdata/NXVGROUP
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# $Revision: 1.8 $
|
# $Revision: 1.9 $
|
||||||
# $Date: 2006-12-03 22:45:20 $
|
# $Date: 2006-12-07 22:12:48 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
@@ -17,6 +17,7 @@ source server_config.tcl
|
|||||||
VarMake Instrument Text Internal
|
VarMake Instrument Text Internal
|
||||||
Instrument Echidna
|
Instrument Echidna
|
||||||
Instrument lock
|
Instrument lock
|
||||||
|
VarMake bm_distance Float User
|
||||||
|
|
||||||
#MakeCounter simCtr SIM -1.0
|
#MakeCounter simCtr SIM -1.0
|
||||||
#MakeScanCommand xxxscan simCtr echidna.hdd recover.bin
|
#MakeScanCommand xxxscan simCtr echidna.hdd recover.bin
|
||||||
@@ -37,7 +38,7 @@ publish nxcreatefile user
|
|||||||
|
|
||||||
########
|
########
|
||||||
source gen_hipadaba.tcl
|
source gen_hipadaba.tcl
|
||||||
source counter.tcl
|
#source counter.tcl
|
||||||
fileeval hmm_configuration.tcl
|
fileeval hmm_configuration.tcl
|
||||||
fileeval scan.tcl
|
fileeval scan.tcl
|
||||||
fileeval nxscripts.tcl
|
fileeval nxscripts.tcl
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
# Put extra config info here.
|
# Put extra config info here.
|
||||||
|
Motor nix ASIM 0 100 -1.0 0.01
|
||||||
|
|
||||||
# It is useful during the testing stage to set
|
# It is useful during the testing stage to set
|
||||||
# some axes as fixed.
|
# some axes as fixed.
|
||||||
mom fixed 1
|
mom fixed 1
|
||||||
|
|||||||
@@ -1,14 +1,8 @@
|
|||||||
# $Revision: 1.1 $
|
# $Revision: 1.2 $
|
||||||
# $Date: 2006-12-03 22:44:35 $
|
# $Date: 2006-12-07 22:12:48 $
|
||||||
# Author: Mark Lesha (mle@ansto.gov.au)
|
# Author: Mark Lesha (mle@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
# Provides simulated motors for experimenting with scan and batch commands
|
|
||||||
#START SERVER CONFIGURATION SECTION
|
|
||||||
set sicsroot ../
|
|
||||||
source echidna_configuration.tcl
|
|
||||||
#END SERVER CONFIGURATION SECTION
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
# System: Histogram Server (sample)
|
# System: Histogram Server (sample)
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@@ -21,7 +15,7 @@ source echidna_configuration.tcl
|
|||||||
# remote histogram server via http, and acquisition
|
# remote histogram server via http, and acquisition
|
||||||
# of histogram period data.
|
# of histogram period data.
|
||||||
MakeHM hmm anstohttp
|
MakeHM hmm anstohttp
|
||||||
hmm configure hmaddress http://137.157.201.12:8080
|
hmm configure hmaddress http://das1-echidna:8080
|
||||||
hmm configure username spy
|
hmm configure username spy
|
||||||
hmm configure password 007
|
hmm configure password 007
|
||||||
|
|
||||||
@@ -107,7 +101,7 @@ hmm init
|
|||||||
##############################################
|
##############################################
|
||||||
|
|
||||||
# Make and configure an ANSTO beam monitor counter.
|
# Make and configure an ANSTO beam monitor counter.
|
||||||
MakeCounter bm anstomonitor [ params host "137.157.201.12" port "30000" ]
|
MakeCounter bm anstomonitor [ params host "das1-echidna" port "30000" ]
|
||||||
bm SetExponent 0
|
bm SetExponent 0
|
||||||
|
|
||||||
# Make our special HMControl_ANSTO object with the bm controlling the hmm.
|
# Make our special HMControl_ANSTO object with the bm controlling the hmm.
|
||||||
@@ -126,7 +120,7 @@ MakeHMControl_ANSTO hmc bm hmm
|
|||||||
#
|
#
|
||||||
# Define two scan objects which use the beam monitor counter.
|
# Define two scan objects which use the beam monitor counter.
|
||||||
#
|
#
|
||||||
# For scan1, the hmc object uses the bm counter to control
|
# For hmscan, the hmc object uses the bm counter to control
|
||||||
# acquisition duration. In other words, the acquisition duration
|
# acquisition duration. In other words, the acquisition duration
|
||||||
# is controlled via SICS. This is fine if the duration doesn't
|
# is controlled via SICS. This is fine if the duration doesn't
|
||||||
# need to be controlled to an accuracy of less than one second.
|
# need to be controlled to an accuracy of less than one second.
|
||||||
@@ -160,13 +154,13 @@ MakeHMControl_ANSTO hmc bm hmm
|
|||||||
#
|
#
|
||||||
# 17/11/06 NOTE: The Beam Monitor is not yet interfaced directly to the
|
# 17/11/06 NOTE: The Beam Monitor is not yet interfaced directly to the
|
||||||
# Histogram Server. This means that for BM-controlled acquisitions,
|
# Histogram Server. This means that for BM-controlled acquisitions,
|
||||||
# SICS needs to use the BM counter (i.e. use scan1 not scan2).
|
# SICS needs to use the BM counter (i.e. use hmscan not scan2).
|
||||||
#
|
#
|
||||||
# EXAMPLES: For scan running over 5 stops and acquisition of 1 sec at each stop:
|
# EXAMPLES: For scan running over 5 stops and acquisition of 1 sec at each stop:
|
||||||
# scan1 run 5 timer 1 (termination controlled by the beam monitor)
|
# hmscan run 5 timer 1 (termination controlled by the beam monitor)
|
||||||
# scan2_runb 5 TIME 100 IMMEDIATE (termination controlled by the histogram server)
|
# scan2_runb 5 TIME 100 IMMEDIATE (termination controlled by the histogram server)
|
||||||
#
|
#
|
||||||
MakeScanCommand scan1 bm echidna.hdd recover.bin
|
MakeScanCommand hmscan bm echidna.hdd recover.bin
|
||||||
MakeScanCommand scan2 bm echidna.hdd recover.bin
|
MakeScanCommand scan2 bm echidna.hdd recover.bin
|
||||||
#
|
#
|
||||||
# Call is: scan2_runa <n>
|
# Call is: scan2_runa <n>
|
||||||
@@ -205,7 +199,7 @@ blockctr SetPreset 0
|
|||||||
|
|
||||||
# Later on we can add some motors to drive...
|
# Later on we can add some motors to drive...
|
||||||
#Motor som2 ASIM 0 100 -1.0 0.01
|
#Motor som2 ASIM 0 100 -1.0 0.01
|
||||||
#scan1 add som2 0 1
|
#hmscan add som2 0 1
|
||||||
|
|
||||||
##############################################
|
##############################################
|
||||||
# Support for using expanded histogram period
|
# Support for using expanded histogram period
|
||||||
@@ -388,14 +382,14 @@ Publish hs_finish User
|
|||||||
# are properly defined.
|
# are properly defined.
|
||||||
# A different count callback is defined in the two cases.
|
# A different count callback is defined in the two cases.
|
||||||
#
|
#
|
||||||
scan1 configure script
|
hmscan configure script
|
||||||
scan1 function prepare hs_prepare
|
#hmscan function prepare hs_prepare
|
||||||
scan1 function count hs_count_bm_controlled
|
hmscan function count hs_count_bm_controlled
|
||||||
scan1 function collect hs_collect
|
hmscan function collect hs_collect
|
||||||
scan1 function finish hs_finish
|
hmscan function finish hs_finish
|
||||||
#
|
#
|
||||||
scan2 configure script
|
scan2 configure script
|
||||||
scan2 function prepare hs_prepare
|
#scan2 function prepare hs_prepare
|
||||||
scan2 function count hs_count_hs_controlled
|
scan2 function count hs_count_hs_controlled
|
||||||
scan2 function collect hs_collect
|
scan2 function collect hs_collect
|
||||||
scan2 function finish hs_finish
|
scan2 function finish hs_finish
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
MakeNXScript
|
MakeNXScript
|
||||||
#nxscript createxml junk4.xml echidna.dic
|
#nxscript createxml junk4.xml echidna.dic
|
||||||
|
proc getVal {msg} {
|
||||||
|
return [string trim [lindex [split $msg =] 1 ] ]
|
||||||
|
}
|
||||||
proc nxreopenfile {} {
|
proc nxreopenfile {} {
|
||||||
global dataFileName;
|
global dataFileName;
|
||||||
nxscript reopen $dataFileName echidna.dic;
|
nxscript reopen $dataFileName echidna.dic;
|
||||||
@@ -12,50 +14,79 @@ set tubedia 0.0254
|
|||||||
set pi 3.1415926
|
set pi 3.1415926
|
||||||
#set angsep [expr $tubedia/$dradius *(180/$pi)]
|
#set angsep [expr $tubedia/$dradius *(180/$pi)]
|
||||||
set angsep 1.25
|
set angsep 1.25
|
||||||
proc addnxentry {nxobj entryname ompos } {
|
# stthmin = (180 - (1.25*127))/2
|
||||||
global dradius ndect angsep;
|
set stthmin 10.625
|
||||||
# file_time shows +10 for UTC offset, should be +11 for local summer in NSW.
|
proc addnxentry {nxobj entryname scanVariable scanVarPos } {
|
||||||
# sicstime doesn't show UTC offset
|
global dradius ndect angsep stthmin;
|
||||||
# ISO 8601 suggests that time and date are separated with 'T' in a time field.
|
putcommon $nxobj $entryname $scanVariable
|
||||||
#nxscript createxml junk.xml echidna.dic
|
putcrystal $nxobj
|
||||||
$nxobj updatedictvar entryName $entryname
|
putmonitor $nxobj
|
||||||
$nxobj puttext etitle [title]
|
putsample $nxobj
|
||||||
$nxobj puttext estart [sicstime]
|
set mtth_val [string trim [lindex [split [mtth] =] 1]]
|
||||||
$nxobj puttext eend [sicstime]
|
$nxobj putfloat $scanVariable $mtth_val
|
||||||
$nxobj puttext iname [instrument]
|
# Add thetamin and stth to tharr(i)
|
||||||
|
set sampletwotheta [string trim [lindex [split [stth] =] 1]]
|
||||||
|
for {set i 0} {$i < $ndect} {incr i} {
|
||||||
|
set tharr($i) [expr ($i-63.5)*$angsep + $sampletwotheta]
|
||||||
|
}
|
||||||
|
$nxobj updatedictvar thetadim $ndect
|
||||||
|
$nxobj putarray dtheta tharr $ndect
|
||||||
|
$nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm
|
||||||
|
$nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217)
|
||||||
|
$nxobj putfloat dradius $dradius
|
||||||
|
$nxobj puttext dlayout area
|
||||||
|
$nxobj puthm dcounts hmm
|
||||||
|
$nxobj puthm deff hmm
|
||||||
|
$nxobj makelink scandata dcounts
|
||||||
|
$nxobj makelink scandata dtheta
|
||||||
|
$nxobj makelink scanvar $scanVariable
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
proc bm_addnxentry {nxobj entryname scanVariable scanVarPos } {
|
||||||
|
global dradius ndect angsep stthmin;
|
||||||
|
putcommon $nxobj $entryname $scanVariable
|
||||||
|
putcrystal $nxobj
|
||||||
|
putmonitor $nxobj
|
||||||
|
putsample $nxobj
|
||||||
|
set mtth_val [string trim [lindex [split [mtth] =] 1]]
|
||||||
|
$nxobj putfloat $scanVariable $mtth_val
|
||||||
|
# Add thetamin and stth to tharr(i)
|
||||||
|
# $nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm
|
||||||
|
# $nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217)
|
||||||
|
# $nxobj putfloat dradius $dradius
|
||||||
|
$nxobj puttext dlayout point
|
||||||
|
$nxobj makelink scandata mdata
|
||||||
|
$nxobj makelink scanvar $scanVariable
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
proc putmonitor {nxobj} {
|
||||||
|
$nxobj puttext mmode [string trim [lindex [split [bm getmode] =] 1]]
|
||||||
|
$nxobj putfloat mpreset [string trim [lindex [split [bm getpreset] =] 1]]
|
||||||
|
$nxobj putint mdata [string trim [lindex [split [bm getcounts] =] 1]]
|
||||||
|
$nxobj putfloat mdistance [getVal [bm_distance]]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc putsample {nxobj} {
|
||||||
|
$nxobj puttext saname [getVal [Sample]]
|
||||||
|
}
|
||||||
|
proc putcrystal {nxobj} {
|
||||||
|
$nxobj puttext ctype "Ge 113"
|
||||||
|
}
|
||||||
|
proc putcommon {nxobj entryName scanVariable} {
|
||||||
|
$nxobj updatedictvar entryName $entryName
|
||||||
|
$nxobj updatedictvar scan_variable $scanVariable
|
||||||
|
$nxobj puttext etitle [getVal [title]]
|
||||||
|
$nxobj puttext estart [sicstime]
|
||||||
|
$nxobj puttext eend [sicstime]
|
||||||
|
$nxobj puttext iname [getVal [instrument]]
|
||||||
|
|
||||||
# NXsource
|
# NXsource
|
||||||
$nxobj puttext sname OPAL
|
$nxobj puttext sname OPAL
|
||||||
$nxobj puttext stype Reactor Neutron Source
|
$nxobj puttext stype Reactor Neutron Source
|
||||||
$nxobj puttext sprobe Neutron
|
$nxobj puttext sprobe Neutron
|
||||||
# NXcrystal
|
|
||||||
$nxobj putfloat clambda 1.89
|
|
||||||
# NXmonitor
|
|
||||||
$nxobj puttext mmode timer
|
|
||||||
$nxobj putfloat mpreset 1000
|
|
||||||
$nxobj putint mdata 500
|
|
||||||
#NXsample
|
|
||||||
$nxobj puttext saname Air
|
|
||||||
$nxobj putfloat sarot $ompos
|
|
||||||
#array set tharr [list 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 ]
|
|
||||||
#nxscript putarray dtheta tharr 10
|
|
||||||
for {set i 0} {$i < $ndect} {incr i} { set tharr($i) [expr $i*$angsep] }
|
|
||||||
$nxobj updatedictvar thetadim $ndect
|
|
||||||
nxscript putarray dtheta tharr $ndect
|
|
||||||
$nxobj puttext dtype He-3 position sensitive detector, tube active length=335+/-5mm, tube diameter=25.4 +/- 0.8mm
|
|
||||||
$nxobj puttext ddesc 128 He-3 proportional counter detector tubes (GE Energy Reuter Stokes Inc. item=RS-P4-0814-217)
|
|
||||||
$nxobj putfloat dradius $dradius
|
|
||||||
$nxobj puttext dlayout area
|
|
||||||
$nxobj puthm dcounts hmc
|
|
||||||
### TEST ###
|
|
||||||
# hmc initVal 1
|
|
||||||
### TEST ###
|
|
||||||
$nxobj puthm deff hmc
|
|
||||||
$nxobj makelink dana dcounts
|
|
||||||
$nxobj makelink dana dtheta
|
|
||||||
#nxscript close
|
|
||||||
}
|
|
||||||
proc addeff {} {
|
|
||||||
}
|
}
|
||||||
publish addnxentry user
|
publish addnxentry user
|
||||||
|
publish bm_addnxentry user
|
||||||
|
|
||||||
|
|||||||
@@ -1,48 +1,89 @@
|
|||||||
|
namespace eval scanCommand {
|
||||||
#MakeScanCommand escan counter echidna.hdd recover.bin
|
#MakeScanCommand escan counter echidna.hdd recover.bin
|
||||||
proc scan_prepare {sobj uobj} {
|
variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
||||||
global omstart omstep;
|
proc scan_prepare {sobj uobj} {
|
||||||
nxcreatefile
|
variable scanVarStart;
|
||||||
# stdscan prepare $sobj $uobj;
|
variable scanVarStep;
|
||||||
set vlist [split [$sobj getvarpar 0] = ];
|
variable scanVariable;
|
||||||
set omstart [lindex $vlist 1];
|
|
||||||
set omstep [lindex $vlist 2];
|
|
||||||
hs_prepare $sobj $uobj
|
|
||||||
# clientput [$sobj getvarpar 0] value;
|
|
||||||
# nxscript create5 junk5.nx5 echidna.dic;
|
|
||||||
}
|
|
||||||
|
|
||||||
proc scan_finish {sobj uobj} {
|
nxcreatefile;
|
||||||
nxscript close
|
# 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 scan_finish {sobj uobj} {
|
||||||
|
nxscript close
|
||||||
|
}
|
||||||
|
|
||||||
#proc scan_finish {sobj uobj} {
|
#proc scan_finish {sobj uobj} {
|
||||||
# nxscript close;
|
# nxscript close;
|
||||||
#}
|
#}
|
||||||
|
|
||||||
# Add an nxentry for the current scan point
|
# Add an nxentry for the current scan point
|
||||||
proc nxaddpoint {sobj uobj pt} {
|
proc nxaddpoint {sobj uobj pt} {
|
||||||
global omstart omstep;
|
variable scanVarStart;
|
||||||
set ompos [expr $omstart + $pt * $omstep];
|
variable scanVarStep;
|
||||||
nxreopenfile;
|
variable scanVariable;
|
||||||
addnxentry nxscript scan_$pt $ompos;
|
set scanVarPos [expr $scanVarStart + $pt * $scanVarStep];
|
||||||
nxscript close
|
nxreopenfile;
|
||||||
|
addnxentry nxscript scan_$pt $scanVariable $scanVarPos;
|
||||||
|
nxscript close
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
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;
|
||||||
|
nxscript close
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc donothing {args} {}
|
publish ::scanCommand::scan_prepare user
|
||||||
|
publish ::scanCommand::scan_finish user
|
||||||
|
publish ::scanCommand::nxaddpoint user
|
||||||
|
publish ::scanCommand::donothing user
|
||||||
|
|
||||||
#proc ecount {sobj uobj pt mode preset} {
|
publish ::scanCommand::bm_scan_prepare user
|
||||||
# hmc count;
|
publish ::scanCommand::scan_finish user
|
||||||
#}
|
publish ::scanCommand::bm_nxaddpoint user
|
||||||
|
publish ::scanCommand::donothing user
|
||||||
|
publish ::scanCommand::bmcount user
|
||||||
|
|
||||||
publish scan_prepare user
|
hmscan function writeheader ::scanCommand::donothing
|
||||||
publish scan_finish user
|
hmscan function writepoint ::scanCommand::nxaddpoint
|
||||||
publish nxaddpoint user
|
hmscan function prepare ::scanCommand::scan_prepare
|
||||||
#publish ecount user
|
|
||||||
publish donothing user
|
|
||||||
|
|
||||||
#scan2 configure script
|
scan2 function writeheader ::scanCommand::donothing
|
||||||
scan2 function writeheader donothing
|
scan2 function writepoint ::scanCommand::nxaddpoint
|
||||||
scan2 function writepoint nxaddpoint
|
scan2 function prepare ::scanCommand::scan_prepare
|
||||||
#scan2 function prepare scan_prepare
|
|
||||||
#scan2 function count ecount
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user