quadEM  7-0
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
virtual asynStatus readInt64Array(asynUser *pasynUser, epicsInt64 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt64Array-&gt;read().
Definition: asynPortDriver.cpp:2874
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:162
virtual asynStatus readFloat32Array(asynUser *pasynUser, epicsFloat32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynFloat32Array-&gt;read().
Definition: asynPortDriver.cpp:2937
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt32Array-&gt;read().
Definition: NDPluginDriver.cpp:849
asynStatus readArray(asynUser *pasynUser, epicsType *value, size_t nElements, size_t *nIn)
Definition: asynPortDriver.cpp:1708
virtual asynStatus readFloat64Array(asynUser *pasynUser, epicsFloat64 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynFloat64Array-&gt;read().
Definition: asynPortDriver.cpp:3000
virtual void processCallbacks(NDArray *pArray)=0
#define NDPLUGIN_API
Definition: NDPluginAPI.h:41
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-&gt;read().
Definition: asynPortDriver.cpp:2748
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data...
Definition: NDArray.h:93
Converts NDArray callback data into standard asyn arrays (asynInt8Array, asynInt16Array, asynInt32Array, asynInt64Array, asynFloat32Array or asynFloat64Array); normally used for putting NDArray data in EPICS waveform records.
Definition: NDPluginStdArrays.h:12
virtual asynStatus readInt8Array(asynUser *pasynUser, epicsInt8 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt8Array-&gt;read().
Definition: asynPortDriver.cpp:2685