areaDetector  3-5-0
EPICS areaDetector framework
NDPluginStdArrays.h
Go to the documentation of this file.
1 #ifndef NDPluginStdArrays_H
2 #define NDPluginStdArrays_H
3 
4 #include <epicsTypes.h>
5 
6 #include "NDPluginDriver.h"
7 
8 #define NDPluginStdArraysDataString "STD_ARRAY_DATA" /* (asynXXXArray, r/w) Array data waveform */
9 
14 class epicsShareClass NDPluginStdArrays : public NDPluginDriver {
15 public:
16  NDPluginStdArrays(const char *portName, int queueSize, int blockingCallbacks,
17  const char *NDArrayPort, int NDArrayAddr, int maxBuffers, size_t maxMemory,
18  int priority, int stackSize, int maxThreads=1);
19 
20  /* These methods override the virtual methods in the base class */
21  void processCallbacks(NDArray *pArray);
22  virtual asynStatus readInt8Array(asynUser *pasynUser, epicsInt8 *value,
23  size_t nElements, size_t *nIn);
24  virtual asynStatus readInt16Array(asynUser *pasynUser, epicsInt16 *value,
25  size_t nElements, size_t *nIn);
26  virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *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:56
NDDataType_t
Enumeration of NDArray data types.
Definition: NDAttribute.h:27
The NDArrayPool class manages a free list (pool) of NDArray objects.
Definition: NDArray.h:161
virtual asynStatus readFloat32Array(asynUser *pasynUser, epicsFloat32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynFloat32Array->read().
Definition: asynPortDriver.cpp:2574
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt32Array->read().
Definition: NDPluginDriver.cpp:853
list value
Definition: makeDbAndEdl.py:234
asynStatus readArray(asynUser *pasynUser, epicsType *value, size_t nElements, size_t *nIn)
Definition: asynPortDriver.cpp:1556
virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynFloat64Array->read().
Definition: asynPortDriver.cpp:2637
virtual void processCallbacks(NDArray *pArray)=0
int NDPluginStdArraysData
Definition: NDPluginStdArrays.h:33
virtual asynStatus readInt16Array(asynUser *pasynUser, epicsInt16 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt16Array->read().
Definition: asynPortDriver.cpp:2448
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition: NDArray.h:92
Converts NDArray callback data into standard asyn arrays (asynInt8Array, asynInt16Array,...
Definition: NDPluginStdArrays.h:14
virtual asynStatus readInt8Array(asynUser *pasynUser, epicsInt8 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt8Array->read().
Definition: asynPortDriver.cpp:2385