Folks,
New releases of the following areaDetector modules are now available.
areaDetector R2-5
ADCore R2-5
ADSupport R1-0 (new)
ADExample R2-2
****************************************************************************************
These are the major items from the R1-0 release notes for ADSupport:
Initial release. The versions of each support library are:
Library | Version
------- | -------
HDF5 | 1.10.0-patch1
JPEG | 9b
netCDF | 4.1.3
NeXus | 4.3.1
SZIP | 2.1
TIFF | 4.0.6
XML2 | 2.9.4
ZLIB | 1.2.8
****************************************************************************************
These are the major items from the R2-5 release notes for ADCore:
### ADSupport
* Added a new repository ADSupport to areaDetector. This module contains the source code for all 3rd party
libraries used by ADCore. The libraries that were previously built in ADCore have been moved
to this new repository. These are ADCore/ADApp/netCDFSrc, nexusSrc, and tiffSupport/tiffSrc, and
tiffSupport/jpegSrc. ADSupport also replaces the ADBinaries repository. ADBinaries contained prebuilt
libraries for Windows for xml2, GraphicsMagick, and HDF5. It was becoming too difficult to maintain
these prebuilt libraries to work with different versions of Visual Studio, and also with 32/64 bit,
static dynamic, debug/release, and to work with MinGW. These libraries are now built from source code
using the EPICS build system in ADSupport.
* The libraries in ADSupport can be built for Windows (Visual Studio or MinGW, 32/64 bit, static/dynamic),
Linux (currently Intel architectures only, 32/64 bit), Darwin, and vxWorks
(currently big-endian 32-bit architectures only).
* Previously the only file saving plugin that was supported on vxWorks was netCDF. Now all file saving
plugins are supported on vxWorks 6.x (TIFF, JPEG, netCDF, HDF5, Nexus). HDF5 and Nexus are not supported
on vxWorks 5.x because the compiler is too old.
* All 3rd party libraries are now optional. For each library XXX there are now 4 Makefile variables that control
support for that library. XXX can be JPEG, TIFF, NEXUS, NETCDF, HDF5, XML2, SZIP, and ZLIB.
- WITH_XXX If this is YES then drivers or plugins that use this library will be built. If NO then
drivers and plugins that use this library will not be built.
- XXX_EXTERNAL If this is YES then the library is not built in ADSupport, but is rather assumed to be found
external to the EPICS build system. If this is NO then the XXX library will be built in ADSupport.
- XXX_DIR If this is defined and XXX_EXTERNAL=YES then the build system will search this directory for the
XXX library.
- XXX_INCLUDE If this is defined then the build system will search this directory for the include files for
the XXX library.
### NDPluginPva
* New plugin for exporting NDArrays as EPICS V4 NTNDArrays. It has an embedded EPICSv4 server to serve the NTNDArrays
to V4 clients.
When used with pvaDriver it provides a mechanism for distributing plugin processing across multiple processes
and multiple machines. Thanks to Bruno Martins for this.
### pvaDriver
* New driver for importing an EPICS V4 NTNDArray into areaDetector. It works by creating a monitor on the
specified PV and doing plugin callbacks each time the array changes.
When used with NDPluginPva it provides a mechanism for distributing plugin processing across multiple processes
and multiple machines. Thanks to Bruno Martins for this.
### NDFileHDF5
* Added support for Single Writer Multiple Reader (SWMR). This allows HDF5 files to be read while they are still be
written. This feature was added in HDF5 1.10.0-patch1, so this release or higher is required to use the
SWMR support in this plugin.
The file plugin allows selecting whether SWMR support is enabled, and it is disabled by default.
Files written with SWMR support enabled can only be read by programs built with HDF 1.10 or higher, so SWMR should not
be enabled if older clients are to read the files. SWMR is only supported on local, GPFS, and Lustre file systems.
It is not supported on NFS or SMB file systems, for example. Thanks to Alan Greer for this.
* NOTE: we discovered shortly before releasing ADSupport R1-0 and ADCore R2-5 that the
Single Writer Multiple Reader (SWMR) support in HDF5 1.10.0-patch1 was broken.
It can return errors if any of the datasets are of type H5_C_S1 (fixed length strings).
We were able to reproduce the errors with a simple C program, and sent that to the HDF Group.
They quickly produced a new unreleased version of HDF5 called 1.10-swmr-fixes that fixed the problem.
The HDF5 Group plans to release 1.10.1, hopefully before the end of 2016. That should be
the first official release that will correctly support SWMR.
As of the R1-0 release ADSupport contains 2 branches.
- master contains the HDF5 1.10.0-patch1 release from the HDF5 Group with only the minor changes
required to build with the EPICS build system, and to work on vxWorks and mingw.
These changes are documented in README.epics. This version should not be used with SWMR
support enabled because of the known problems described above.
- swmr-fixes contains the 1.10-swmr-fixes code that the HDF Group provided.
We had to make some changes to this code to get it to work on Windows.
It is not an official release, but does appear to correctly support SWMR.
Users who would like to begin to use SWMR before HDF5 1.10.1 is released can use
this branch, but must be aware that it is not officially supported.
* NDAttributes of type NDAttrString are now saved as 1-D array of strings (HDF5 type H5T_C_S1) rather
than a 2-D array of 8-bit integers (HDF5 type H5T_NATIVE_CHAR), which is the datatype used prior to R2-5.
### NDPosPlugin
* New plugin attach positional information to NDArrays in the form of NDAttributes.
### NDPluginDriver
* Added the ability to change the QueueSize of a plugin at run-time.
### NDPluginTimeSeries
* New plugin for time-series data. The plugin accepts input arrays of dimensions
[NumSignals] or [NumSignals, NewTimePoints]. The plugin creates NumSignals 1-D
arrays of dimension [NumTimPoints], each of which is the time-series for one signal.
On each callback the new time points are appended to the existing time series arrays.
### NDPluginFFT
* New plugin to compute 1-D or 2-D Fast Fourier transforms. It exports 1-D or 2-D
NDArrays containing the absolute value of the FFT.
### ImageJ EPICS_ADViewer
* Changed to work with 1-D arrays, i.e. nx>0, ny=0, nz=0. Previously it did not work if ny=0. This
is a useful enhancement because the ImageJ Dynamic Profiler can then be used to plot the 1-D array.
****************************************************************************************
These are the major items from the R2-5 release notes for areaDetector:
* Requires R2-5 of ADCore. This requires some changes to CONFIG_SITE.local.
ADCore R2-5 has many new features, including support for HDF5 SWMR mode, support for EPICS V4
NTNDArrays, and new TimeSeries and FFT plugins.
* Added ADSupport repository. This replaces ADBinaries and some of the source
directories that were previously in ADCore. It builds support for TIFF, JPEG, NETCDF
ZLIB, SZIP, HDF5, XML2, and NEXUS. All of these support libraries are now optional.
The configure directory and INSTALL_GUIDE.md have many changes to support this.
* New ADLambda repository that supports the detectors from Lambda. Thanks to John Hammonds for this.
* New ADCameraLink repository that supports Silicon Software and Dalsa/Coreco. Thanks to Tim Madden for this.
* New ADPCO repository that supports PCO CameraLink cameras. Thanks to Tim Madden for this.
* Added LICENSE files to all repositories.
****************************************************************************************
These are the major items from the R2-2 release notes for ADExample:
* Created a new driver in ADExample/exampleApp/ADCSimDetectorSrc.
This driver generates times-series data for 8 signals as a 2-D array [8, NumTimePoints].
The signals are common waveforms (sine, cosine, square wave, sawtooth, random noise, etc.)
The driver was written in part to test the new NDPluginTimeSeries and NDPluginFFT plugins
in ADCore R2-5. But it can also serve as a starting point for writing drivers that are used
to collect time-series data like ADCs, waveform digitizers, etc.
There is a new iocs/iocADCSimDetector directory that creates an application for testing
the driver.
* Added a new sine-wave simulation mode to simDetector. This simulation mode constructs images
as the sum or products of two sine waves in the X and Y directions. It was designed in part
to test the new NDPluginFFT plugin in ADCore R2-5.
* Added new iocPvaDriver example IOC. It implements the new pvaDriver from ADCore R2-5 which
receives EPICS V4 NTNDArrays over EPICS V4 PVAccess, converts them to NDArrays and calls
areaDetector plugins.
The home page is here:
http://cars.uchicago.edu/software/epics/areaDetector.html
The top-level documentation is here:
http://cars.uchicago.edu/software/epics/areaDetectorDoc.html
Installation instructions are here:
https://github.com/areaDetector/areaDetector/blob/master/INSTALL_GUIDE.md
areaDetector release notes are here:
https://github.com/areaDetector/areaDetector/blob/master/RELEASE.md
ADSupport release notes are here:
https://github.com/areaDetector/ADSupport/blob/master/RELEASE.md
ADCore release notes are here:
https://github.com/areaDetector/ADCore/blob/master/RELEASE.md
ADExample release notes are here:
https://github.com/areaDetector/ADExample/blob/master/RELEASE.md
Mark