areaDetector 3-14
EPICS areaDetector framework
NDPluginROI.h
Go to the documentation of this file.
1#ifndef NDPluginROI_H
2#define NDPluginROI_H
3
4#include "NDPluginDriver.h"
5
6/* ROI general parameters */
7#define NDPluginROINameString "NAME" /* (asynOctet, r/w) Name of this ROI */
8
9/* ROI definition */
10#define NDPluginROIDim0MinString "DIM0_MIN" /* (asynInt32, r/w) Starting element of ROI in each dimension */
11#define NDPluginROIDim1MinString "DIM1_MIN" /* (asynInt32, r/w) Starting element of ROI in each dimension */
12#define NDPluginROIDim2MinString "DIM2_MIN" /* (asynInt32, r/w) Starting element of ROI in each dimension */
13#define NDPluginROIDim0SizeString "DIM0_SIZE" /* (asynInt32, r/w) Size of ROI in each dimension */
14#define NDPluginROIDim1SizeString "DIM1_SIZE" /* (asynInt32, r/w) Size of ROI in each dimension */
15#define NDPluginROIDim2SizeString "DIM2_SIZE" /* (asynInt32, r/w) Size of ROI in each dimension */
16#define NDPluginROIDim0MaxSizeString "DIM0_MAX_SIZE" /* (asynInt32, r/o) Maximum size of ROI in each dimension */
17#define NDPluginROIDim1MaxSizeString "DIM1_MAX_SIZE" /* (asynInt32, r/o) Maximum size of ROI in each dimension */
18#define NDPluginROIDim2MaxSizeString "DIM2_MAX_SIZE" /* (asynInt32, r/o) Maximum size of ROI in each dimension */
19#define NDPluginROIDim0BinString "DIM0_BIN" /* (asynInt32, r/w) Binning of ROI in each dimension */
20#define NDPluginROIDim1BinString "DIM1_BIN" /* (asynInt32, r/w) Binning of ROI in each dimension */
21#define NDPluginROIDim2BinString "DIM2_BIN" /* (asynInt32, r/w) Binning of ROI in each dimension */
22#define NDPluginROIDim0ReverseString "DIM0_REVERSE" /* (asynInt32, r/w) Reversal of ROI in each dimension */
23#define NDPluginROIDim1ReverseString "DIM1_REVERSE" /* (asynInt32, r/w) Reversal of ROI in each dimension */
24#define NDPluginROIDim2ReverseString "DIM2_REVERSE" /* (asynInt32, r/w) Reversal of ROI in each dimension */
25#define NDPluginROIDim0EnableString "DIM0_ENABLE" /* (asynInt32, r/w) If set then do ROI in this dimension */
26#define NDPluginROIDim1EnableString "DIM1_ENABLE" /* (asynInt32, r/w) If set then do ROI in this dimension */
27#define NDPluginROIDim2EnableString "DIM2_ENABLE" /* (asynInt32, r/w) If set then do ROI in this dimension */
28#define NDPluginROIDim0AutoSizeString "DIM0_AUTO_SIZE" /* (asynInt32, r/w) Automatically set size to max */
29#define NDPluginROIDim1AutoSizeString "DIM1_AUTO_SIZE" /* (asynInt32, r/w) Automatically set size to max */
30#define NDPluginROIDim2AutoSizeString "DIM2_AUTO_SIZE" /* (asynInt32, r/w) Automatically set size to max */
31#define NDPluginROIDataTypeString "ROI_DATA_TYPE" /* (asynInt32, r/w) Data type for ROI. -1 means automatic. */
32#define NDPluginROIEnableScaleString "ENABLE_SCALE" /* (asynInt32, r/w) Disable/Enable scaling */
33#define NDPluginROIScaleString "SCALE_VALUE" /* (asynFloat64, r/w) Scaling value, used as divisor */
34#define NDPluginROICollapseDimsString "COLLAPSE_DIMS" /* (asynInt32, r/w) Collapse dimensions of size 1 */
35
40public:
41 NDPluginROI(const char *portName, int queueSize, int blockingCallbacks,
42 const char *NDArrayPort, int NDArrayAddr,
43 int maxBuffers, size_t maxMemory,
44 int priority, int stackSize, int maxThreads);
45 /* These methods override the virtual methods in the base class */
46 void processCallbacks(NDArray *pArray);
47 asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
48
49protected:
50 /* ROI general parameters */
52 #define FIRST_NDPLUGIN_ROI_PARAM NDPluginROIName
53
54 /* ROI definition */
80
81private:
82 int requestedSize_[3];
83 int requestedOffset_[3];
84};
85
86#endif
#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
Class from which actual plugin drivers are derived; derived from asynNDArrayDriver.
Definition NDPluginDriver.h:57
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition NDPluginDriver.cpp:678
virtual void processCallbacks(NDArray *pArray)=0
Extract Regions-Of-Interest (ROI) from NDArray data; the plugin can be a source of NDArray callbacks ...
Definition NDPluginROI.h:39
int NDPluginROIDim1Min
Definition NDPluginROI.h:56
int NDPluginROIScale
Definition NDPluginROI.h:78
int NDPluginROIDim0MaxSize
Definition NDPluginROI.h:61
int NDPluginROICollapseDims
Definition NDPluginROI.h:79
int NDPluginROIDim2Enable
Definition NDPluginROI.h:72
int NDPluginROIDim1Reverse
Definition NDPluginROI.h:68
int NDPluginROIDim1AutoSize
Definition NDPluginROI.h:74
int NDPluginROIDim2AutoSize
Definition NDPluginROI.h:75
int NDPluginROIDim0AutoSize
Definition NDPluginROI.h:73
int NDPluginROIDim1MaxSize
Definition NDPluginROI.h:62
int NDPluginROIEnableScale
Definition NDPluginROI.h:77
int NDPluginROIDim0Size
Definition NDPluginROI.h:58
int NDPluginROIDim1Bin
Definition NDPluginROI.h:65
int NDPluginROIDim1Size
Definition NDPluginROI.h:59
int NDPluginROIDim0Bin
Definition NDPluginROI.h:64
int NDPluginROIDim2Size
Definition NDPluginROI.h:60
int NDPluginROIDim0Reverse
Definition NDPluginROI.h:67
int NDPluginROIDim2Reverse
Definition NDPluginROI.h:69
int NDPluginROIDim2Min
Definition NDPluginROI.h:57
int NDPluginROIDim2MaxSize
Definition NDPluginROI.h:63
int NDPluginROIName
Definition NDPluginROI.h:51
int NDPluginROIDim1Enable
Definition NDPluginROI.h:71
int NDPluginROIDim0Enable
Definition NDPluginROI.h:70
int NDPluginROIDim2Bin
Definition NDPluginROI.h:66
int NDPluginROIDim0Min
Definition NDPluginROI.h:55
int NDPluginROIDataType
Definition NDPluginROI.h:76