An areaDetector pvAccess driver

author:Bruno Martins, Brookhaven National Laboratory


This is an areaDetector driver for importing an EPICSv4 NTNDArray via pvAccess into areaDetector. It does so by creating a monitor on the specified PV.

This driver inherits from ADDriver. It implements some of the parameters in asynNDArrayDriver.h and in ADArrayDriver.h, namely:

  • ADManufacturer
  • ADModel
  • ADAcquire
  • ADImageMode
  • ADNumImages
  • ADMaxSizeX and ADMaxSizeY
  • ADMinX and ADMinY
  • ADBinX and ADBinY
  • ADReverseX and ADReverseY
  • ADSizeX and ADSizeY
  • ADNumImagesCounter
  • NDArraySize, NDArraySizeX and NDArraySizeY
  • NDDataType and NDColorMode
  • NDArrayCounter

It also implements a few parameters that are specific to the pvAccess driver.

pvAccess driver specific parameters

The pvAccess driver-specific parameters are the following:

Parameter Definitions in pvaDriver.cpp and EPICS Record Definitions in pvaDriver.template
Description EPICS record name EPICS record type
Number of overruns occurred $(P)$(R)OverrunCounter, $(P)$(R)OverrunCounter_RBV longout, longin
Name of the PV to monitor. This can be changed a run-time. $(P)$(R)PvName, $(P)$(R)PvName_RBV waveform, waveform
Status of the connection to the server $(P)$(R)PvConnection_RBV bi


The pvaDriver driver is created with the pvaDriverConfig command, either from C/C++ or from the EPICS IOC shell.

int pvaDriverConfig(const char *portName, const char *pvName,
                      int maxSizeX, int maxSizeY, int dataType,
                      int maxBuffers, size_t maxMemory,
                      int priority, int stackSize)

The pvaDriver-specific fields in this command are:

  • pvName Name of the PV to be monitored.

For details on the meaning of the other parameters to this function refer to the detailed documentation on the pvaDriverConfig function in the pvaDriver.cpp documentation and in the documentation for the constructor for the pvaDriver class.

Example st.cmd startup file

There is an example IOC boot directory and startup script provided with pvaDriver: Example st.cmd Startup File.

MEDM screens

The MEDM screen for the pvaDriver is shown below.