areaDetector 3-14
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
13public:
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);
32protected:
34 #define FIRST_NDPLUGIN_STDARRAYS_PARAM NDPluginStdArraysData
35private:
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
NDDataType_t
Enumeration of NDArray data types.
Definition NDAttribute.h:30
#define NDPLUGIN_API
Definition NDPluginAPI.h:41
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition NDArray.h:99
The NDArrayPool class manages a free list (pool) of NDArray objects.
Definition NDArray.h:168
Class from which actual plugin drivers are derived; derived from asynNDArrayDriver.
Definition NDPluginDriver.h:57
virtual void processCallbacks(NDArray *pArray)=0
virtual asynStatus readInt32Array(asynUser *pasynUser, epicsInt32 *value, size_t nElements, size_t *nIn)
Called when asyn clients call pasynInt32Array->read().
Definition NDPluginDriver.cpp:849
Converts NDArray callback data into standard asyn arrays (asynInt8Array, asynInt16Array,...
Definition NDPluginStdArrays.h:12
int NDPluginStdArraysData
Definition NDPluginStdArrays.h:33