areaDetector  3-12-1
EPICS areaDetector framework
NDPluginStdArrays.h
Go to the documentation of this file.
1 #ifndef NDPluginStdArrays_H
2 #define NDPluginStdArrays_H
3 
4 #include "NDPluginDriver.h"
5 
6 #define NDPluginStdArraysDataString "STD_ARRAY_DATA" /* (asynXXXArray, r/w) Array data waveform */
7 
13 public:
14  NDPluginStdArrays(const char *portName, int queueSize, int blockingCallbacks,
15  const char *NDArrayPort, int NDArrayAddr, int maxBuffers, size_t maxMemory,
16  int priority, int stackSize, int maxThreads=1);
17 
18  /* These methods override the virtual methods in the base class */
19  void processCallbacks(NDArray *pArray);
20  virtual asynStatus readInt8Array(asynUser *pasynUser, epicsInt8 *value,
21  size_t nElements, size_t *nIn);
22  virtual asynStatus readInt16Array(asynUser *pasynUser, epicsInt16 *value,
23  size_t nElements, size_t *nIn);
24  virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value,
25  size_t nElements, size_t *nIn);
26  virtual asynStatus readInt64Array(asynUser *pasynUser, epicsInt64 *value,
27  size_t nElements, size_t *nIn);
28  virtual asynStatus readFloat32Array(asynUser *pasynUser, epicsFloat32 *value,
29  size_t nElements, size_t *nIn);
30  virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value,
31  size_t nElements, size_t *nIn);
32 protected:
34  #define FIRST_NDPLUGIN_STDARRAYS_PARAM NDPluginStdArraysData
35 private:
36  /* These methods are just for this class */
37  template <typename epicsType> asynStatus readArray(asynUser *pasynUser, epicsType *value,
38  size_t nElements, size_t *nIn, NDDataType_t outputType);
39  template <typename epicsType, typename interruptType> void arrayInterruptCallback(NDArray *pArray,
40  NDArrayPool *pNDArrayPool,
41  void *interruptPvt, int *initialized, NDDataType_t signedType, bool *wasThrottled);
42 
43 };
44 
45 #endif
Class from which actual plugin drivers are derived; derived from asynNDArrayDriver.
Definition: NDPluginDriver.h:58
NDDataType_t
Enumeration of NDArray data types.
Definition: NDAttribute.h:29
The NDArrayPool class manages a free list (pool) of NDArray objects.
Definition: NDArray.h:163
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt32Array->read().
Definition: NDPluginDriver.cpp:849
list value
Definition: makeDbAndEdl.py:234
virtual void processCallbacks(NDArray *pArray)=0
#define NDPLUGIN_API
Definition: NDPluginAPI.h:41
int NDPluginStdArraysData
Definition: NDPluginStdArrays.h:33
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition: NDArray.h:94
Converts NDArray callback data into standard asyn arrays (asynInt8Array, asynInt16Array,...
Definition: NDPluginStdArrays.h:12