When you set up a stack (see 2.11.1) you create a file called
stack_script.dat, that lists all commands, which sm_script is supposed to work
through. The sm_script command structure is the following:
command[,param1[,param2[,param3[,...]]]]
Available commands and parameters are:
- moveto_micron
- motor (XPZT,YPZT,XSTG,YSTG,ZSTG,XDET,YDET,ZDET)
- micron position (float) of where to move to
example: moveto_micron,XSTG,30.5
- moveby_micron
- motor (XPZT,YPZT,XSTG,YSTG,ZSTG,XDET,YDET,ZDET)
- micron position (float) by how much to move
example: moveby_micron,XSTG,2.0
- moveto_ev
- energy in eV (float) to which to move SGM (ZSTG, ZOSA and ZDET tracking)
example: moveto_ev,520.0
- shutter
- instruction (open,close,automatic)
example: shutter,open
- helium
example: helium,on
- wait
- wait time in seconds (float)
example: wait,2.5
- data_channels
- names of the data channels to record
example: data_channels,Sidet01,Sidet02,...,Counter,Clock
- scan
- fast motor (XPZT,YPZT,XSTG,YSTG,ZSTG,XDET,YDET,ZDET)
- fast pixel size in microns (float)
- number of fast pixels (integer)
- slow motor (XPZT,YPZT,XSTG,YSTG,ZSTG,XDET,YDET,ZDET)
- slow pixel size in microns (float)
- number of slow pixels (integer)
- dwell time in msec (float)
- bidirectional flag (0,1)
example: scan,XPZT,0.1,200,YPZT,0.1,200,5.,0
- spectrum
- start energy in eV (float)
- stop energy in eV (float)
- delta eV (float)
- dwell in msec (float)
example: spectrum,500.,530.,0.5,5.
- calibrate_sidet
- scientist
- name of scientist (string in double quotes)
example: scientist,"Zaphod Beeblebrox"
- sample
- name of sample (string in double quotes)
example: sample,"Gill cell of Babel Fish"
- comments1
- first comment (string in double quotes)
example: comments1,"Mostly Harmless"
- comments2
- second comment (string in double quotes)
example: comments2,"Don't Panic"
- disp_name
- default display name (string in double quotes)
example: disp_name,"Predefined Combinations::BF total"
- beamstatus
- instruction (check,ignore,heed) 2.2
example: beamstatus,check
- laser_positions
- axis (X,Y,Z)
- instruction (ON,OFF)
example: laser_positions,X,OFF
The structure of a stack script created by stack_setup.pro (used in SM_GUI) is
as follows:
- header instructions:
Commands, that prepare your microscope for scanning. They should not be removed are altered, unless you
really know, what you are doing.
- #End of Header
#################################
Indicates the end of header instructions.
- stack instructions:
The actual stack commands (scans, energy changes, sidet calibrations etc.). You may edit those
to your liking.
Lines starting with a pound sign (#) are ignored in
microscope control. The same goes for lines starting with an
exclamation mark (!), but they be followed by
instructions to sm_script. Currently the only
implemented instruction is !GOTO, which allows
you to jump forward to a certain command in the script.
example: !GOTO moveto_ev,535.000
The command has to exactly match the line, that you want to jump to. If the stack was manually
interrupted, such lines will be placed directly after the header.
Holger Fleckenstein
2008-07-08