Developments in MX since July 2001
MP - A Python interface to MX
- Intended as a replacement for Tcl/Tk support.
- Python was chosen since it seemed like a relatively
easy language for scientists to learn.
- Includes Python classes for most of the
MX record classes.
- Supports almost all of the MX API relevant
to application programmers.
- Has been used by Jim Fait of SER-CAT to write
several beamline control GUIs.
XIA multichannel analyzer support
- Many improvements made to the DXP-2X support.
- DXP-2X successfully used at input count rates approaching
2,000,000 counts per second per channel.
- Readout performance is better than it was, but still needs
more work.
- Support for MultiSCA mode for quick scans is in development.
- The Saturn (X10P) has not had a fully successful test despite
several attempts.
- Limited access to X-rays has slowed the rate of progress.
- XIA has offered to let me work in their Newark, CA office.
Other MCA related changes
- Support for multiple regions of interest (ROIs) added.
- Support added for soft ROIs that are computed in the MX
driver itself.
- MX step scans can now save the spectra from multiple MCAs
at each point in a step scan.
Quick scan support
MCS quick scans
- Quick scans have successfully been used with
the SIS3801 via either the epics_mcs
driver or the sis3801 driver.
- External channel advance is now available
with an optional prescale factor.
- Quick scans can now handle multiple multichannel scalers
if an external channel advance is used.
APS undulator quick scans
- Undulator quick scans have been implemented
and tested.
- Of limited usefulness with our current V-to-F converters,
since the minimum undulator speed is too high.
Other changes
- Support for quick scan backlash corrections added.
- Joerger quick scans are now disabled since they do not
work well with recent versions of EPICS.
Grid scans
- A method has been devised to allow an external program to
perform an arbitrary action between each step of a
step scan.
- Has been used to implement an X-Y grid scan.
- The sample is moved to a different point on an X-Y grid
after each scan step.
- Requires the user to manually start the external program.
Mar Desktop Beamline
- Interfacing to the goniostat controller is relatively
straightforward, although mostly undocumented.
- MX can now control the motors and read out the ion chambers.
- Shutter control appears to be trivial to implement.
Device driver changes
Special processing setup
- A special_processing_setup driver function has
been added.
- Allows an individual device driver to have additional
server entry points beyond the generic ones provided
by the device driver class.
- Used by the XIA interface classes to provide a way to
load a new MCA configuration.
- Also used by the sr570 amplifier driver to give
access to the amplifier's internal configuration
parameters.
Motor driver changes
- get_status and get_extended_status
driver functions implemented. Gets the motor status with
minimum overhead.
- simultaneous_start driver function implemented.
Scaler driver changes
- Global dark currents are now supported.
Motor program
Updating scan databases
- Some work has been done to reduce the chance of
accidentally losing scan records.
- At present, the scan database is rewritten everytime
it changes in any client.
- Currently plan to add write locking of scan.dat
so that only one process can write to it at a time.
- No currently known solution is perfect for all situations.
Other changes
- measure dark_current by default now uses a timer
called dark_timer. If not present, it tries
to use timer1 instead.
Imcagui changes
- Major performance improvements have been made to
imcagui in the last week. More about this
later in the presentation.
- The code has been restructured to make it easier to support
multiple beamlines.
- Currently support imca17id, imca17bm,
ser22id, and dnd5id.
- Scan parameters that used to be hard coded in imcagui's
source code are now read from /opt/mx/etc/imcagui.dat
- The old awk programs for interfacing to Chooch have been
rewritten by Jim Fait in Python.
Optimize and optimize_auto changes
- Added a "fit to step" optimization procedure for fitting to
an X-ray aperture edge.
- The code has been restructured to make it easier to support
multiple beamlines.
Miscellaneous changes
- Motor database files now support !include directives
- MX servers and clients no longer abort when a driver open
routine returns a nominally fatal error.