Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020 
<== Date ==> <== Thread ==>

Subject: areaDetector ADCore and ADBinaries R2-2 released
From: Mark Rivers <>
To: "" <>
Date: Tue, 24 Mar 2015 02:14:17 +0000

R2-2 of the areaDetector modules areaDetector, ADCore and ADBinaries are now available.


These are some of the items from the R2-2 release notes for ADCore:

### NDPluginROIStat

* New plugin that supports multiple regions-of-interest with simple statistics on each.

  It is more efficient and convenient than the existing NDPluginROI and NDPluginStats when many

  regions of interest with simple statistics are needed.  Written by Matthew Pearson.

### NDPluginCircularBuff

* New plugin that implements a circular buffer.  NDArrays are stored in the buffer until a trigger

  is received.  When a trigger is received it outputs a configurable number of pre-trigger and post-trigger

  NDArrays.  The trigger is based on NDArray attributes using a user-defined calculation.  Written by Edmund Warrick.

### NDPluginAttribute

* New plugin that exports attributes of NDArrays as EPICS PVs.  Both scalar (ai records) and time-series

  arrays (waveform records) are exported.  Written by Matthew Pearson.

### NDPluginFile

* Created the NDFileCreateDir parameter. This allows file writers to create a controlled number

  of directories in the path of the output file.

* Added the NDFileTempSuffix string parameter. When this string is not empty it will be

  used as a temporary suffix on the output filename while the file is being written. When writing

  is complete, the file is closed and then renamed to have the suffix removed. The rename operation

  is atomic from a filesystem view and can be used by monitoring applications like rsync or inotify

  to kick off processing applications.

### NDFileHDF5

* Bug fixes:

  * The NDArrayPort could not be changed after iocInit.

  * Hardlinks did not work for NDAttribute datasets.

  * Failing to specify a group with "ndattr_default=true" would crash the IOC.

  * NDAttribute datasets of datatype NDAttrString would actually be HDF5 attributes,

    not datasets.  They would only store a single string value, not an array of string values which they

    should if the file contains multiple NDArrays.

  * NDAttribute datasets were pre-allocated to the size of NumCapture, rather than

    growing with the number of NDArrays in the file.  This meant that there was no way to specify that the HDF5 file

    in Stream mode should continue to grow forever until Capture was set to 0.  Specifying NumCapture=0 did not work,

    it crashed the IOC.  Setting NumCapture to a very large number resulted in wasted file space,

    because all datasets except the detector dataset were pre-allocated to this large size.

  * HDF5 attributes defined in the XML layout file for NDAttribute datasets and constant datasets

    did not get written to the HDF5 file.

  * The important NDArray properties uniqueID, timeStamp, and epicsTS did not get written to the HDF5 file.

  * NDAttribute datasets had two "automatic" HDF5 attributes, "description" and "name".  These do not provide

    a complete description of the source of the NDAttribute data, and the HDF5 attribute names are prone

    to name conflicts with user-defined attributes.  "description" and "source" have been renamed to

    NDAttrDescription and NDAttrSource. Two additional automatic attributes have been added,

    NDAttrSourceType and NDAttrName, which now completely define the source of the NDAttribute data.

### Version information

* Added a new include file, ADCoreVersion.h that defines the macros ADCORE_VERION, ADCORE_REVISION, and


  This can be used by drivers and plugins to allow them to be used with different releases of ADCore.

### Template files

* Added a new template file NDArrayBase.template which contains records for all of the

  asynNDArrayDriver parameters except those in NDFile.template.  Moved records from ADBase.template

  and NDPluginBase.template into this new file.  Made all template files "include" the files from the

  parent class, rather than calling dbLoadRecords for each template file.  This simplifies commonPlugins.cmd.

  A similar include mechanism was applied to the *_settings.req files, which simplifies commonPlugin_settings.req.

* Added a new record, $(P)$(R)ADCoreVersion_RBV, that is loaded for all drivers and plugins.

  This record contains the ADCore version number. This can be used by Channel Access clients to alter their

  behavior depending on the version of ADCore that was used to build this driver or plugin.

  The record contains the string ADCORE_VERSION.ADCORE_REVISION.ADCORE_MODIFICATION, i.e. 2.2.0 for this release.

 * Added the info tag "autosaveFields" to allow automatic creation of autosave files.

* ADBase.template

  - Added optional macro parameter RATE_SMOOTH to smooth the calculated array rate.

    The default value is 0.0, which does no smoothing.  Range 0.0-1.0, larger values

    result in more smoothing.

### iocs/simDetectorNoIOC

* New application that demonstrates how to instantiate a simDetector driver

  and a number of plugins in a standalone C++ application, without running an EPICS IOC.

  If asyn and ADCore are built with the EPICS_LIBCOM_ONLY flag then this application only

  needs the libCom library from EPICS base and the asyn library.  It does not need any other

  libraries from EPICS base or synApps.


This is from the R2-2 release notes for areaDetector:

* Added new modules ffmegViewer, ffmpegServer, aravisGigE, firewireDCAM.  These are all from Tom Cobb

  and Ulrik Pedersen from Diamond Light Source.

* Added new ADQImaging module.  This is from Arthur Glowacki at the APS.

* Added new ADDexela module.  This is from Mark Rivers at the University of Chicago.

* Added new ADFastCCD module.  This is from Stuart Wilkins at the NSLS-II.

* Added new ADPICam module.  This is from John Hammonds at the APS.

* Added new ADMerlin module.  This is from Giles Knap at Diamond Light Source.

* Changed to use HTTPS ( for submodules, rather

  than SSH (  This allows a recursive checkout without a Github account.


This is from the R2-2 release notes for ADBinaries:

* Updated the HDF5 libraries from release 1.8.7 to 1.8.14.  The names of the libraries have changed, so

  Makefiles must be modified.  Both static and dynamic libraries are provided.  The symbol HDF5_STATIC_BUILD

  must be defined to instruct the build system which version of the library to use: YES=static, NO=dynamic.

The home page is here:

The top-level documentation is here:

Installation instructions are here:

areaDetector release notes are here:

ADCore release notes are here:

ADBinaries release notes are here:


Navigate by Date:
Prev: Re: pyepics not updating pv.enum_strs after connection Jameson Graef Rollins
Next: Strange StreamDev behaviour Jörn Wüstenfeld
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020 
Navigate by Thread:
Prev: Keithley 2260B LV PS Pierrick Hanlet
Next: Strange StreamDev behaviour Jörn Wüstenfeld
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  <20152016  2017  2018  2019  2020 
ANJ, 16 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·