Files
ADAndor/documentation/areaDetectorReleaseNotes.html
2008-12-24 21:51:57 +00:00

193 lines
9.8 KiB
HTML
Executable File

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>areaDetectorReleaseNotes.html</title>
</head>
<body>
<h1 style="text-align: center">
areaDetector Release Notes</h1>
<h2 style="text-align: center">
Release 1-4 (XXX-December-2008)</h2>
<ul>
<li>Added a driver for Roper Scientific (i.e. Princeton Instruments and Photometrics)
detectors. It uses the Microsoft COM interface to control the WinView or WinSpec
programs. The previous support in the "ccd" module used a Visual Basic socket server
and an SNL program to accomplish this. It was hard to maintain, because Visual Basic
changed incompatibly from one release of Visual Studio to the next, and because
it could not be built with the EPICS build system. The new driver is written in
C++, and is built entirely with the EPICS build system. It also supports more WinView
features than the ccd version, and makes the detector data available via callbacks.
This allows detector data to be displayed with EPICS clients, permits ROI or other
plugin calculations, and allows saving in other file formats if desired. </li>
<li>Added support for color
<ul>
<li>Added NDColorMode_t to NDArray.h. NDArray has a new field indicating the color
mode.</li>
<li>Added new parameter ADColorMode to ADStdDriverParams.h and new record ColorMode to ADBase.template
and NDPluginBase.template.</li>
<li>Added a new plugin NDPluginColorConvert to convert colors. It currently converts Bayer to RGB1, RGB2 or RGB3, RGB1 to
RGB2 or RGB3 and RGB3 to RGB1 or RGB2.</li>
<li>The Prosilica driver now supports color. It supports RGB1 and Bayer directly, and RGB2 and RGB3
through the NDPluginColorConvert plugin.</li>
</ul>
</li>
<li>Added a Viewers directory. This contains an IDL viewer for displaying images.
The viewer supports color and several different viewing
modes. It can be run for free under the IDL Virtual Machine, and should work on any platform with a
version of ezcaIDL.so or ezcaIDL.dll built with EPICS 3.14.
This directory also contains IDL class libraries for accessing areaDetector. These classes are
used by the viewers, but can also be used for other IDL applications.</li>
<li>Added new parameters in ADStdDriverParams.h
<ul>
<li>ADTemperature</li>
<li>ADReadStatus</li>
<li>ADNumExposuresCounter</li>
<li>ADColorMode</li>
</ul>
</li>
<li>Pilatus driver
<ul>
<li>Send the imgpath command to camserver when the ADFilePath parameter is changed.
camserver will then create directories if they do not exist, whereas specifying
a path with non-existant directories in the "exposure" or acquire commands will
not create directories. </li>
</ul>
</li>
<li>Prosilica driver
<ul>
<li>Added support for color. </li>
<li>Made minor changes to the code and to the build system to add support for running the driver
under Linux. However, there appears to be a conflict between the Prosilica driver's use of
Linux signals and the use of signals in EPICS base. The driver sometimes initializes successfully
and works, but most often it will crash with a SIGSEGV right after iocInit. Hopefully this will
be fixed in a future release.</li>
</ul>
</li>
<li>Fixes to C++ code to avoid compiler warnings on Solaris. All but one of these
changes should be transparent to user-written code. There is one change that may
require changes to user-written plugins and drivers. The ADAsynPortDriver::pasynUser
member was renamed to ADAsynPortDriver::pasynUserSelf to avoid name conflicts with
a local variable called pasynUser. </li>
<li>Added $(P)$(R)AutoSave to the save/restore settings in NDFile_settings.req so
it will be restored on reboot. This requires care when using drivers such as the
Prosilica which can rapidly save very large data files, since file saving may be
resumed on reboot. </li>
</ul>
<h2 style="text-align: center">
Release 1-3 (24-November-2008)</h2>
<ul>
<li>Added a driver for MarCCD detectors. Compared to the previous support in the "ccd"
module, this driver uses the faster Version 1 protocol for the Mar server. It also
makes the detector data available via callbacks (by reading the TIFF files as soon
as they are written). This allows detector data to be displayed with EPICS clients,
and for ROI calculations.</li>
<li>Added support for shutter control. Supports shutters that are driven directly
from the detector hardware, as well as shutters controlled by EPICS records. Shutter
support is implemented for the MarCCD, Pilatus, and simulation detectors.</li>
<li>Added new methods for shutter support to the detector base class ADDriver.cpp
<ul>
<li>ADDriver::setShutter()</li>
<li>ADDriver::writeInt32</li>
</ul>
</li>
<li>Reorganized the file I/O parameters, template files and medm screens
<ul>
<li>Moved the file capture parameters from NDPluginFile.h and NDPluginFile.cpp to
ADStdDriverParams.h. This allows a detector driver to use these capture parameters
if desired.</li>
<li>Removed all of the file I/O records from ADBase.template and ADBase_settings.req.
These previously duplicated the records in NDFile.template and NDFile_settings.req,
which was hard to maintain. IOCs for detector drivers that can do file I/O now need
to load NDFile.template, while those that cannot no longer need to load these records.
They also need to have NDFile_settings.req added to auto_settings.req. This does
not effect the file plugin support, only drivers that directly do file I/O.</li>
<li>Removed the file I/O PVs from ADBase.adl. Added a related display link to NDFile.adl.</li>
<li>NDFile.adl now contains only the file related PVs, not the plugin related PVs.
The new file NDPluginFile.adl replaces the previous version of NDFile.adl, and contains
both the file PVs and the plugin PVs.</li>
</ul>
</li>
<li>Added new enums in ADStdDriverParams.h
<ul>
<li>ADFrameType_t</li>
<li>ADShutterMode_t</li>
<li>ADFileMode_t</li>
</ul>
</li>
<li>Added new parameters in ADStdDriverParams.h
<ul>
<li>ADShutterControl (replaces ADShutter)</li>
<li>ADShutterControlEPICS</li>
<li>ADShutterStatus</li>
<li>ADShutterMode</li>
<li>ADShutterOpenDelay</li>
<li>ADShutterCloseDelay</li>
<li>ADTimeRemaining</li>
<li>ADNumImagesCounter</li>
<li>ADFrameType</li>
<li>ADArrayCallbacks</li>
<li>ADFileWriteMode</li>
<li>ADFileNumCapture</li>
<li>ADFileNumCaptured</li>
<li>ADFileCapture</li>
</ul>
ADArrayCallbacks can be set to 0 to disable callbacks with detector data. For the
MarCCD and Pilatus detectors setting this to 0 will disable reading the disk files
after collection. This can be used to reduce overhead when EPICS is being used just
for control, rather than to access the data. </li>
<li>Added variant of NDPluginDriver::createFileName that returns the filePath and
fileName separately, rather than a complete file name including the path.</li>
</ul>
<h2 style="text-align: center">
Release 1-2 (24-October-2008)</h2>
<ul>
<li>Major update to documentation</li>
<li>Significant enhancement to ROI plugin. Added net counts, ROI highlighting.</li>
<li>Added driver for Pilatus detectors. This has undergone limited testing.</li>
<li>Added driver for ADSC detectors (done by Lewis Muir, IMCA-CAT)</li>
<li>Removed separate readback parameters in drivers and template files</li>
<li>Changed from mbbi/mbbo records to bi/bo records where possible now that the asynInt32
interface supports bi/bo records.</li>
<li>Internals
<ul>
<li>Renamed asynParamBase to asynPortDriver.</li>
<li>Renamed NDArrayBase to NDArrayDriver</li>
<li>Renamed NDPluginBase to NDPluginDriver</li>
<li>Renamed NDArrayBuff to NDArrayPool, now in NDArray.cpp.</li>
<li>Renamed ADDriverBase to ADDriver</li>
<li>Removed ADUtils</li>
<li>The asynHandle interface in asyn was renamed to asynGenericPointer, many changes
to incorporate this.</li>
<li>Base class constructor no longer initializes all asyn interfaces, only the selected
ones.</li>
<li>NDArray pool is no longer global, each server creates its own pool if needed.</li>
<li>Implemented real routines for writeInt32, writeFloat64, and writeOctet in asynPortDriver.cpp,
removed them from ADDriver.cpp where they were not needed.</li>
</ul>
</li>
</ul>
<h2 style="text-align: center">
Release 1-1 (10-May-2008)</h2>
<ul>
<li>Major rewrite. Converted device drivers and plugins from C to C++ with C++ base
classes that handle many of the details of asyn and of callbacks and threading for
plugins.</li>
<li>Everything except device drivers and top-level EPICS databases and channel access
clients are now fully N-dimensional, not restricted to 2-D.</li>
<li>NDPluginFile now uses netCDF format, which is a portable self-describing binary
file format.</li>
<li>Added NDPluginROI which implements region-of-interest.</li>
</ul>
<h2 style="text-align: center">
Release 1-0 (11-Apr-2008)</h2>
<ul>
<li>Initial release, still many things remaining to be done.</li>
</ul>
<address>
Suggestions and Comments to:
<br />
<a href="mailto:rivers@cars.uchicago.edu">Mark Rivers </a>: (rivers@cars.uchicago.edu)
<br />
</address>
</body>
</html>