The areaDetector module provides a general-purpose interface for area (2-D) detectors in EPICS. It is intended to be used with a wide variety of detectors and cameras, ranging from high frame rate CCD and CMOS cameras, pixel-array detectors such as the Pilatus, and large format detectors like the Perkin Elmer flat panels.
The goals of the module are:
- Minimize the amount of code that needs to be written to implement a new detector.
- Provide a standard interface defining the functions and parameters that a detector driver must support.
- Provide a set of base EPICS records that will be present for every detector using this module. This allows the use of generic EPICS clients for displaying images and controlling cameras and detectors.
- Allow easy extensibility to take advantage of detector-specific features beyond the standard parameters.
- Have high-performance. Applications can be written to get the detector image data through EPICS, but an interface is also available to receive the detector data at a lower-level for very high performance.
- Provide a mechanism for device-independent real-time data analysis such as regions-of-interest and statistics.
- Provide detector drivers for commonly used detectors in synchrotron applications. These include GigE video cameras, IEEE 1394 (Firewire) cameras, CCD x-ray detectors, scientific CCD and CMOS cameras, online imaging plate detectors, pixel-array detectors, amorphous silicon and CMOS flat panel detectors, and many others.
A very detailed instruction for the installation of the areadetector can be found here: https://areadetector.github.io/master/install_guide.html
epics@workstation:~/EPICS/support$ git clone --recursive https://github.com/areaDetector/areaDetector.git
epics@workstation:~/EPICS/support$ git clone https://github.com/epics-modules/busy.git
epics@workstation:~/EPICS/support$ git clone https://github.com/epics-modules/calc.git
epics@workstation:~/EPICS/support$ git clone https://github.com/epics-modules/sscan.git
epics@workstation:~/EPICS/support$ git clone https://github.com/epics-modules/alive.git
epics@workstation:~/EPICS/support$ git clone https://github.com/epics-modules/autosave.git
epics@workstation:~/EPICS/support$ git clone --recursive https://github.com/epics-modules/iocStats.git
epics@workstation:~/EPICS/support$ git clone http://www-csr.bessy.de/control/SoftDist/sequencer/repo/branch-2-2.git
And according to the instructions https://areadetector.github.io/master/install_guide.html the additional software (GraphicsMagick, hdf5, szip) is installed by hand / sources.
GraphicsMagick-1.3.32 hdf5-1.10.5 szip-2.1.1
gr.tar hdf5-1.10.5.tar.gz szip-2.1.1.tar.gz
and that's where the packages have to be built.
./configure --prefix=/usr/local make make install
./configure --prefix=/usr/local/hdf5 --with-szlib=/usr/local make make install
./configure make make install
Additionally you have to decide which submodules to install and the location for the external libraries.
areaDetector RELEASE* and CONFIG* files are a little more complex than those in a typical EPICS modules. This is because they are designed to meet the following requirements:
cp EXAMPLE_RELEASE_SUPPORT.local RELEASE_SUPPORT.local
cp EXAMPLE_RELEASE_LIBS.local RELEASE_LIBS.local
cp EXAMPLE_RELEASE_PRODS.local RELEASE_PRODS.local
cp EXAMPLE_CONFIG_SITE.local CONFIG_SITE.local
epics@workstation:~/EPICS/support/areaDetector/configures$ nano RELEASE_PRODS.local
Set the path to EPICS_BASE and to your SUPPORT folder (called modules here). In addition, you must check the paths to the previously downloaded extensions and correct them if necessary. It is convenient to create a path directly to the SUPPORT folder.
Another option is to refer to a previously created RELEASE.local file as is done in the Modules section. In addition you have to edit the RELEASE file again when creating subfolders, there you should make sure that you are the correct subfolder level.