diff --git a/documentation/NDPluginROI.html b/documentation/NDPluginROI.html index 4e4f825..1280805 100755 --- a/documentation/NDPluginROI.html +++ b/documentation/NDPluginROI.html @@ -7,7 +7,7 @@

areaDetector Plugin NDPluginROI

- September 19, 2008

+ January 30, 2009

Mark Rivers

@@ -48,8 +48,8 @@ running in parallel, maximizing the use of multiple CPU cores. Individual ROIs are addressed through the asyn interfaces by the asyn "addr" field in the asynUser structure. Note that while the NDPluginROI should be N-dimensional, the EPICS interface to - the definition of the ROI is currently limited to 2-D. This limitation will be removed - in a future release. + the definition of the ROI is currently limited to a maximum of 3-D. This limitation + will be removed in a future release.

NDPluginROI inherits from NDPluginDriver. The NDPluginROI public interface is defined @@ -77,7 +77,7 @@ public: NDPluginROI.h defines the following parameters that are global to all ROIs for a plugin. It also implements all of the standard plugin parameters from NDPlugDriver. The EPICS database NDROI.template provide access to these parameters, listed in - the following table. + the following table.

@@ -131,8 +131,7 @@ public: ROI in the plugin. The EPICS database NDROIN.template provide access to these parameters, listed in the following table. The pasynUser->addr is used to control which ROI is being addressed. Note that to reduce the width of this table the enum names have - been split into 2 lines, but these are just a single name, for example - NDPluginROIName. + been split into 2 lines, but these are just a single name, for example NDPluginROIName.

@@ -158,7 +157,8 @@ public: + NDPluginROI
+ Name + NDPluginROI
+ Use + NDPluginROI
+ Dim0Bin + NDPluginROI
+ Dim1Bin + NDPluginROI
+ Dim2Bin + + + + + + + + + + NDPluginROI
+ Dim1Min + NDPluginROI
+ Dim2Min + + + + + + + + + + NDPluginROI
+ Dim1Size + Size of the ROI in the Y direction + NDPluginROI
+ Dim2Size + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NDPluginROI
+ Dim1Reverse + NDPluginROI
+ Dim2Reverse + + + + + + + + + + NDPluginROI
+ BgdWidth + + + + + + + + + + NDPluginROI
+ ComputeStatistics + NDPluginROI
+ MinValue + NDPluginROI
+ MaxValue + NDPluginROI
+ MeanValue + NDPluginROI
+ Total + NDPluginROI
+ Net + NDPluginROI
+ ComputeHistogram + NDPluginROI
+ HistSize + NDPluginROI
+ HistMin + NDPluginROI
+ HistMax + NDPluginROI
+ HistEntropy + NDPluginROI
+ HistArray
- NDPluginROI
Name
asynOctet @@ -176,7 +176,8 @@ public:
- NDPluginROI
Use
asynInt32 @@ -199,7 +200,8 @@ public:
- NDPluginROI
Dim0Bin
asynInt32 @@ -217,7 +219,8 @@ public:
- NDPluginROI
Dim1Bin
asynInt32 @@ -235,7 +238,27 @@ public:
- NDPluginROI
Dim0Min
+ asynInt32 + r/w + Binning in the Z direction + DIM2_BIN + $(P)$(R)BinZ
+ $(P)$(R)BinZ_RBV
+ longout
+ longin
+ NDPluginROI
+ Dim0Min
asynInt32 @@ -255,7 +278,8 @@ public:
- NDPluginROI
Dim1Min
asynInt32 @@ -274,7 +298,28 @@ public:
- NDPluginROI
Dim0Size
+ asynInt32 + r/w + First pixel in the ROI in the Z direction.
+ 0 is the first pixel in the array.
+ DIM2_MIN + $(P)$(R)MinZ
+ $(P)$(R)MinZ_RBV
+ longout
+ longin
+ NDPluginROI
+ Dim0Size
asynInt32 @@ -292,13 +337,14 @@ public:
- NDPluginROI
Dim0Size
asynInt32 r/w - Size of ROI in the Y direction DIM1_SIZE @@ -310,7 +356,78 @@ public:
- NDPluginROI
Dim0Reverse
+ asynInt32 + r/w + Size of the ROI in the Z direction + DIM2_SIZE + $(P)$(R)SizeZ
+ $(P)$(R)SizeZ_RBV
+ longout
+ longin
+ NDPluginROI
+ Dim0MaxSize
+ asynInt32 + r/o + Maximum size of the ROI in the X direction + DIM0_MAX_SIZE + $(P)$(R)MaxSizeX_RBV + longin
+ NDPluginROI
+ Dim1MaxSize
+ asynInt32 + r/o + Maximum size of the ROI in the Y direction + DIM1_MAX_SIZE + $(P)$(R)MaxSizeY_RBV + longin
+ NDPluginROI
+ Dim2MaxSize
+ asynInt32 + r/o + Maximum size of the ROI in the Z direction + DIM2_MAX_SIZE + $(P)$(R)MaxSizeZ_RBV + longin
+ NDPluginROI
+ Dim0Reverse
asynInt32 @@ -329,7 +446,8 @@ public:
- NDPluginROI
Dim0Reverse
asynInt32 @@ -348,7 +466,28 @@ public:
- NDPluginROI
DataType
+ asynInt32 + r/w + Reverse ROI in the Z direction
+ (0=No, 1=Yes)
+ DIM2_REVERSE + $(P)$(R)ReverseZ
+ $(P)$(R)ReverseZ_RBV
+ longout
+ longin
+ NDPluginROI
+ DataType
asynInt32 @@ -367,7 +506,8 @@ public:
- NDPluginROI
BgdWidth
asynInt32 @@ -416,13 +556,30 @@ public: longin
+ ADImageSizeZ + asynInt32 + r/o + Size of the ROI data in the Z direction + IMAGE_SIZE_Z + $(P)$(R)ImageSizeZ_RBV + longin
ROI statistics
- NDPluginROI
ComputeStatistics
asynInt32 @@ -441,7 +598,8 @@ public:
- NDPluginROI
MinValue
asynFloat64 @@ -457,7 +615,8 @@ public:
- NDPluginROI
MaxValue
asynFloat64 @@ -473,7 +632,8 @@ public:
- NDPluginROI
MeanValue
asynFloat64 @@ -489,7 +649,8 @@ public:
- NDPluginROI
Total
asynFloat64 @@ -505,7 +666,8 @@ public:
- NDPluginROI
Net
asynFloat64 @@ -528,7 +690,8 @@ public:
- NDPluginROI
ComputeHistogram
asynInt32 @@ -547,7 +710,8 @@ public:
- NDPluginROI
HistSize
asynInt32 @@ -565,7 +729,8 @@ public:
- NDPluginROI
HistMin
asynFloat64 @@ -584,7 +749,8 @@ public:
- NDPluginROI
HistMax
asynFloat64 @@ -603,7 +769,8 @@ public:
- NDPluginROI
HistEntropy
asynFloat64 @@ -622,7 +789,8 @@ public:
- NDPluginROI
HistArray
asynFloat64Array @@ -638,15 +806,24 @@ public:
+

+ A special case is made when the NDArray data has colorMode=NDColorModeRGB1 or NDColorModeRGB2. + In these cases the user interface to the array dimensions is changed so that the + Z PVs always refer to the color dimension (as for NDColorModeRGB3), the X dimension + refers to the horizontal direction, and the Y direction refers to the vertical direction. + This is very convenient, because it means that the ROI does not need to redefined + if, for example, the color mode is changed from Mono to RGB1, which would be required + if the X, Y and Z directions were not automatically switched.

Configuration

The NDPluginROI plugin is created with the following command, either from C/C++ or from the EPICS IOC shell.

-
drvNDROIConfigure(const char *portName, int queueSize, int blockingCallbacks, 
-                  const char *NDArrayPort, int NDArrayAddr, int maxROIs,
-                  size_t maxMemory)
+  
int drvNDROIConfigure(const char *portName, int queueSize, int blockingCallbacks, 
+                      const char *NDArrayPort, int NDArrayAddr, int maxROIs,
+                      int maxBuffers, size_t maxMemory);
+
 
   
@@ -702,6 +879,14 @@ public: Maximum number of ROIs that this plugin will support. + + + +
+ maxBuffers + Maximum number of NDArray buffers to be created for plugin callbacks, i.e. for plugins + that will be getting called from this plugin. Passed to the constructor for the + NDPluginDriver base class.
maxMemory