areaDetector  3-5-0
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 
39 class epicsShareClass NDPluginROI : public NDPluginDriver {
40 public:
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 
49 protected:
50  /* ROI general parameters */
52  #define FIRST_NDPLUGIN_ROI_PARAM NDPluginROIName
53 
54  /* ROI definition */
80 
81 private:
82  int requestedSize_[3];
83  int requestedOffset_[3];
84 };
85 
86 #endif
Class from which actual plugin drivers are derived; derived from asynNDArrayDriver.
Definition: NDPluginDriver.h:56
int NDPluginROIDim0AutoSize
Definition: NDPluginROI.h:73
int NDPluginROIDim1Min
Definition: NDPluginROI.h:56
int NDPluginROIDim2AutoSize
Definition: NDPluginROI.h:75
int NDPluginROIDim1AutoSize
Definition: NDPluginROI.h:74
int NDPluginROIEnableScale
Definition: NDPluginROI.h:77
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: NDPluginDriver.cpp:684
int NDPluginROIDim1Enable
Definition: NDPluginROI.h:71
int NDPluginROIDim0Bin
Definition: NDPluginROI.h:64
int NDPluginROIDim0Enable
Definition: NDPluginROI.h:70
int NDPluginROIDim2Bin
Definition: NDPluginROI.h:66
int NDPluginROICollapseDims
Definition: NDPluginROI.h:79
int NDPluginROIDim0Reverse
Definition: NDPluginROI.h:67
list value
Definition: makeDbAndEdl.py:234
int NDPluginROIDim2Size
Definition: NDPluginROI.h:60
Extract Regions-Of-Interest (ROI) from NDArray data; the plugin can be a source of NDArray callbacks ...
Definition: NDPluginROI.h:39
int NDPluginROIDim2Reverse
Definition: NDPluginROI.h:69
int NDPluginROIDim2MaxSize
Definition: NDPluginROI.h:63
int NDPluginROIDim1MaxSize
Definition: NDPluginROI.h:62
int NDPluginROIDim1Reverse
Definition: NDPluginROI.h:68
int NDPluginROIDataType
Definition: NDPluginROI.h:76
virtual void processCallbacks(NDArray *pArray)=0
int NDPluginROIDim1Bin
Definition: NDPluginROI.h:65
int NDPluginROIDim0MaxSize
Definition: NDPluginROI.h:61
int NDPluginROIDim0Size
Definition: NDPluginROI.h:58
int NDPluginROIDim0Min
Definition: NDPluginROI.h:55
int NDPluginROIScale
Definition: NDPluginROI.h:78
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data,...
Definition: NDArray.h:92
int NDPluginROIDim2Min
Definition: NDPluginROI.h:57
int NDPluginROIName
Definition: NDPluginROI.h:51
int NDPluginROIDim1Size
Definition: NDPluginROI.h:59
int NDPluginROIDim2Enable
Definition: NDPluginROI.h:72