The MDA Utilities are programs written for use with MDA files, as
created by saveData in EPICS.
- Converts MDA files into an ASCII format, suitable for use with a
plotting program. It has many options, and handles data sets of any
- Does a dump of all the information held within an MDA file, exactly
as it is stored.
- Lists the MDA files in a directory with some scan parameters.
- Shows basic information as well as detectors, positioners, and
triggers from an MDA file.
- This script converts a directory tree of MDA files into a new
parallel directory tree populated by ASCII files, ignoring all non-MDA
- mda-load library
- This library is used to load MDA files, and can be used to write
Version 1.3.0 release (February 2013)
The utilities has been built on Debian Linux, Red Hat Enterprise
Linux, Solaris 10, and Mac OS X, requiring no special external
libraries. It has also been built for Windows, although it's not
trivial (I used MinGW on Red Hat Enterprise Linux with a modified xdr
Changes from 1.2.2 to 1.3.0:
- mda-load library: Added another check for corrupted files.
- mda2ascii: Refactored the code behind -f option to
be more efficient.
- mdatree2ascii: Added new script utility for converting
entire directory trees of files into new corresponding trees
containing the output.
Changes from 1.2.1 to 1.2.2:
- mda-load library: Fixed a bug that would cause an MDA file
to not load if there was an Extra PV that was of the char type.
Also added preprocessor commands to mda-load.h in order to make
the library C++ compatible (Michael Hu).
Changes from 1.2 to 1.2.1:
- mda2ascii: There was a bug when using the -f flag,
which can cause a positioner column to show a printf format
instead of the data (it's fairly obvious when this does
happen). This only occurred when the all the values for a
positioner were integers.
- mda-ls, mda-info, and mda2ascii: Many
instances of repetitive deep pointer dereferencing were removed
from the code. It makes the code slightly faster, and also easier
- Makefile: Added DESTDIR variable for making distribution
packages simpler (J. Lewis Muir).
- Documentation: Added Changelog.txt file. Fixed typos in
various files (some from J. Lewis Muir).
Changes from 1.1 to 1.2:
- The utilities themselves have not much changed from 1.1. The
changes to the code are to make it more portable. If you are
using the binaries (but not the library) from 1.1, there is no
critical need to upgrade to 1.2.
- mda-load library: Changed from generic int types to fixed
length int types, as it is more portable in the long term, and
fixes problems with MacOS compiling. Look for occasional
over-allocations of memory for strings (which tend to be severe,
but don't cause failures) and then reduce memory consumption.
Remove warning when building on MacOS (J. Lewis Muir).
- mda-dump: Fixed the behavior of not releasing memory
allocated for strings; this is not a critical issue, it just lets
the program run with an even smaller memory footprint.
- Makefile: Fixed the install option, especially regarding
documentation (J. Lewis Muir). Added detection of MacOS X to work
around missing xdr function.
Changes from 1.0 to 1.1:
- mda2ascii: Added option to print out all existing scans in
a file, even if they are incomplete due to an abort of the scan,
and marks them.
- mda-dump: Shows the offset of scans as they are read, as
well as the offset of extra PV information.
- mda-info: Shows the saveData numbering in parentheses for
detectors, positioners, and triggers.
- mda-load library: Added check for a certain type of corrupt
MDA file, leading to fewer crashes of the utilities.
- Makefile: Added install option.
Changes from 0.3 to 1.0:
- mda2ascii: New options created, such as create scan files
for scan dimensions higher than 1, output a friendlier
representation of the data (at the expense of a larger file), and
put extra PV information in a separate file.
- mda-dump: Rewritten to display data immediately as it is
read to help track file errors.
- mda-info: Now shows all the information on positioners,
detectors, and triggers.
- mda-ls: New utility that gives a brief description of the
scans contained in MDA files in a directory.
- mda-load library: Memory leaks fixed, functions added for
loading parts of an MDA file as needed.
Maintained by Dohn Arms.