NDPluginStdArrays
- author:
Mark Rivers, University of Chicago
Overview
This plugin is the tool for converting the NDArray data produced by asynNDArrayDriver drivers into a form that can be accessed by EPICS Channel Access clients.
NDPluginStdArrays inherits from NDPluginDriver. NDPluginStdArrays converts the NDArray data from a callback into the 1-dimensional arrays supported by the standard asyn array interfaces, i.e. asyn[Int8, Int16, Int32, Int64, Float32, Float64]Array. These interfaces are supported by the EPICS waveform record using standard asyn device support. Because this plugin inherits from NDPluginDriver it also provides additional information on the array data (e.g. number of dimensions and dimension data) that are made available as EPICS PVs so that clients can correctly interpret the array data. The NDPluginStdArrays class documentation describes this class in detail.
NDPluginStdArrays defines the following parameters. It also implements
all of the standard plugin parameters from
NDPluginDriver. The EPICS database
NDStdArrays.template
provides access to these parameters, listed in the
following table.
Parameter Definitions in NDPluginStdArrays.h and EPICS Record Definitions in NDStdArrays.template |
||||||
---|---|---|---|---|---|---|
Parameter index variable |
asyn interface |
Access |
Description |
drvInfo string |
EPICS record name |
EPICS record type |
NDPluginStdArraysData |
asyn[Int8, Int16, Int32, Int64, Float32, Float64]Array |
r/o |
Array data as a 1-D array, possibly converted in data type from that in the NDArray object to the specific asyn interface. |
STD_ARRAY_DATA |
$(P)$(R)ArrayData |
waveform |
If the array data contains more than 16,000 bytes then in order for
EPICS clients to receive this data the environment variable EPICS_CA_MAX_ARRAY_BYTES
on
both the EPICS IOC computer and EPICS client computer must be set to a
value at least as large as the array size in bytes.
Configuration
The NDPluginStdArrays plugin is created with the NDStdArraysConfigure
command, either from C/C++ or from the EPICS IOC shell.
NDStdArraysConfigure (const char *portName, int queueSize, int blockingCallbacks,
const char *NDArrayPort, int NDArrayAddr, size_t maxMemory,
int priority, int stackSize)
For details on the meaning of the parameters to this function refer to the detailed documentation on the NDStdArraysConfigure function in the NDPluginStdArrays.cpp documentation and in the documentation for the constructor for the NDPluginStdArrays class.
Screen shots
The following is the MEDM screen that provides access to the parameters in NDPluginDriver.h and NDPluginStdArrays.h through records in NDPluginBase.template and NDStdArrays.template. This is the MEDM screen that is normally used to control the display of images via EPICS channel access.