1 #ifndef NDPluginStats_H
2 #define NDPluginStats_H
92 #define NDPluginStatsComputeStatisticsString "COMPUTE_STATISTICS"
93 #define NDPluginStatsBgdWidthString "BGD_WIDTH"
94 #define NDPluginStatsMinValueString "MIN_VALUE"
95 #define NDPluginStatsMinXString "MIN_X"
96 #define NDPluginStatsMinYString "MIN_Y"
97 #define NDPluginStatsMaxValueString "MAX_VALUE"
98 #define NDPluginStatsMaxXString "MAX_X"
99 #define NDPluginStatsMaxYString "MAX_Y"
100 #define NDPluginStatsMeanValueString "MEAN_VALUE"
101 #define NDPluginStatsSigmaValueString "SIGMA_VALUE"
102 #define NDPluginStatsTotalString "TOTAL"
103 #define NDPluginStatsNetString "NET"
106 #define NDPluginStatsComputeCentroidString "COMPUTE_CENTROID"
107 #define NDPluginStatsCentroidThresholdString "CENTROID_THRESHOLD"
108 #define NDPluginStatsCentroidTotalString "CENTROID_TOTAL"
109 #define NDPluginStatsCentroidXString "CENTROIDX_VALUE"
110 #define NDPluginStatsCentroidYString "CENTROIDY_VALUE"
111 #define NDPluginStatsSigmaXString "SIGMAX_VALUE"
112 #define NDPluginStatsSigmaYString "SIGMAY_VALUE"
113 #define NDPluginStatsSigmaXYString "SIGMAXY_VALUE"
114 #define NDPluginStatsSkewXString "SKEWX_VALUE"
115 #define NDPluginStatsSkewYString "SKEWY_VALUE"
116 #define NDPluginStatsKurtosisXString "KURTOSISX_VALUE"
117 #define NDPluginStatsKurtosisYString "KURTOSISY_VALUE"
118 #define NDPluginStatsEccentricityString "ECCENTRICITY_VALUE"
119 #define NDPluginStatsOrientationString "ORIENTATION_VALUE"
122 #define NDPluginStatsComputeProfilesString "COMPUTE_PROFILES"
123 #define NDPluginStatsProfileSizeXString "PROFILE_SIZE_X"
124 #define NDPluginStatsProfileSizeYString "PROFILE_SIZE_Y"
125 #define NDPluginStatsCursorXString "CURSOR_X"
126 #define NDPluginStatsCursorYString "CURSOR_Y"
127 #define NDPluginStatsCursorValString "CURSOR_VAL"
128 #define NDPluginStatsProfileAverageXString "PROFILE_AVERAGE_X"
129 #define NDPluginStatsProfileAverageYString "PROFILE_AVERAGE_Y"
130 #define NDPluginStatsProfileThresholdXString "PROFILE_THRESHOLD_X"
131 #define NDPluginStatsProfileThresholdYString "PROFILE_THRESHOLD_Y"
132 #define NDPluginStatsProfileCentroidXString "PROFILE_CENTROID_X"
133 #define NDPluginStatsProfileCentroidYString "PROFILE_CENTROID_Y"
134 #define NDPluginStatsProfileCursorXString "PROFILE_CURSOR_X"
135 #define NDPluginStatsProfileCursorYString "PROFILE_CURSOR_Y"
138 #define NDPluginStatsComputeHistogramString "COMPUTE_HISTOGRAM"
139 #define NDPluginStatsHistSizeString "HIST_SIZE"
140 #define NDPluginStatsHistMinString "HIST_MIN"
141 #define NDPluginStatsHistMaxString "HIST_MAX"
142 #define NDPluginStatsHistBelowString "HIST_BELOW"
143 #define NDPluginStatsHistAboveString "HIST_ABOVE"
144 #define NDPluginStatsHistEntropyString "HIST_ENTROPY"
145 #define NDPluginStatsHistArrayString "HIST_ARRAY"
146 #define NDPluginStatsHistXArrayString "HIST_X_ARRAY"
150 #define NDPluginStatsCallbackPeriodString "CALLBACK_PERIOD"
159 NDPluginStats(
const char *portName,
int queueSize,
int blockingCallbacks,
160 const char *NDArrayPort,
int NDArrayAddr,
161 int maxBuffers,
size_t maxMemory,
162 int priority,
int stackSize,
int maxThreads=1);
165 asynStatus
writeInt32(asynUser *pasynUser, epicsInt32 value);
166 asynStatus
writeFloat64(asynUser *pasynUser, epicsFloat64 value);
168 template <
typename epicsType>
void doComputeStatisticsT(
NDArray *pArray,
NDStats_t *pStats);
170 template <
typename epicsType> asynStatus doComputeCentroidT(
NDArray *pArray,
NDStats_t *pStats);
172 template <
typename epicsType> asynStatus doComputeProfilesT(
NDArray *pArray,
NDStats_t *pStats);
174 template <
typename epicsType> asynStatus doComputeHistogramT(
NDArray *pArray,
NDStats_t *pStats);
179 #define FIRST_NDPLUGIN_STATS_PARAM NDPluginStatsComputeStatistics
237 asynStatus computeHistX();
Class from which actual plugin drivers are derived; derived from asynNDArrayDriver.
Definition: NDPluginDriver.h:58
size_t cursorX
Definition: NDPluginStats.h:77
Definition: NDPluginStats.h:35
int NDPluginStatsCentroidThreshold
Definition: NDPluginStats.h:195
int NDPluginStatsHistArray
Definition: NDPluginStats.h:233
Definition: NDPluginStats.h:34
size_t minY
Definition: NDPluginStats.h:56
Definition: NDPluginStats.h:8
Definition: NDPluginStats.h:22
Definition: NDPluginROIStat.h:63
double kurtosisX
Definition: NDPluginStats.h:69
int NDPluginStatsProfileThresholdX
Definition: NDPluginStats.h:218
Definition: NDPluginStats.h:33
virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value)
Called when asyn clients call pasynInt32->write().
Definition: NDPluginDriver.cpp:678
int NDPluginStatsSigmaXY
Definition: NDPluginStats.h:201
int NDPluginStatsMaxY
Definition: NDPluginStats.h:187
int NDPluginStatsProfileCursorY
Definition: NDPluginStats.h:223
Definition: NDPluginStats.h:20
double mean
Definition: NDPluginStats.h:52
double centroidY
Definition: NDPluginStats.h:63
Definition: NDPluginROIStat.h:64
Definition: NDPluginStats.h:9
int NDPluginStatsHistAbove
Definition: NDPluginStats.h:231
Definition: NDPluginStats.h:11
Definition: NDPluginStats.h:26
double histMin
Definition: NDPluginStats.h:84
NDStatsTSControl_t
Definition: NDPluginStats.h:41
int NDPluginStatsKurtosisX
Definition: NDPluginStats.h:204
Definition: NDPluginStats.h:30
int NDPluginStatsCentroidY
Definition: NDPluginStats.h:198
int NDPluginStatsKurtosisY
Definition: NDPluginStats.h:205
int NDPluginStatsProfileAverageX
Definition: NDPluginStats.h:216
Definition: NDPluginROIStat.h:56
int NDPluginStatsComputeStatistics
Definition: NDPluginStats.h:178
double centroidX
Definition: NDPluginStats.h:62
Definition: NDPluginROIStat.h:52
double cursorValue
Definition: NDPluginStats.h:79
int NDPluginStatsSkewY
Definition: NDPluginStats.h:203
epicsInt32 * netArray
Definition: NDPluginStats.h:81
Definition: NDPluginROIStat.h:65
Definition: NDPluginStats.h:31
int histSize
Definition: NDPluginStats.h:82
double * profileX[MAX_PROFILE_TYPES]
Definition: NDPluginStats.h:73
Definition: NDPluginROIStat.h:62
epicsInt32 * totalArray
Definition: NDPluginStats.h:80
virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value)
Called when asyn clients call pasynFloat64->write().
Definition: NDPluginDriver.cpp:769
double kurtosisY
Definition: NDPluginStats.h:70
double skewY
Definition: NDPluginStats.h:68
size_t profileSizeX
Definition: NDPluginStats.h:75
int NDPluginStatsSigmaX
Definition: NDPluginStats.h:199
epicsInt32 histAbove
Definition: NDPluginStats.h:87
int NDPluginStatsProfileAverageY
Definition: NDPluginStats.h:217
Definition: NDPluginStats.h:16
Definition: NDPluginROIStat.h:55
int NDPluginStatsProfileThresholdY
Definition: NDPluginStats.h:219
int NDPluginStatsProfileCentroidX
Definition: NDPluginStats.h:220
double orientation
Definition: NDPluginStats.h:72
int NDPluginStatsTotal
Definition: NDPluginStats.h:190
int NDPluginStatsOrientation
Definition: NDPluginStats.h:207
int NDPluginStatsMinY
Definition: NDPluginStats.h:184
Definition: NDPluginStats.h:19
epicsInt32 histBelow
Definition: NDPluginStats.h:86
NDStatTSType
Definition: NDPluginStats.h:14
Definition: NDPluginStats.h:17
double histEntropy
Definition: NDPluginStats.h:88
Does image statistics.
Definition: NDPluginStats.h:157
size_t profileSizeY
Definition: NDPluginStats.h:76
double sigma
Definition: NDPluginStats.h:53
Definition: NDPluginStats.h:32
int NDPluginStatsProfileSizeX
Definition: NDPluginStats.h:211
size_t nElements
Definition: NDPluginStats.h:49
int NDPluginStatsProfileCentroidY
Definition: NDPluginStats.h:221
double min
Definition: NDPluginStats.h:54
int NDPluginStatsComputeHistogram
Definition: NDPluginStats.h:226
int NDPluginStatsCentroidTotal
Definition: NDPluginStats.h:196
Definition: NDPluginStats.h:28
Definition: NDPluginROIStat.h:57
double skewX
Definition: NDPluginStats.h:67
int NDPluginStatsCursorVal
Definition: NDPluginStats.h:215
int NDPluginStatsMinValue
Definition: NDPluginStats.h:182
Definition: NDPluginStats.h:29
int NDPluginStatsComputeCentroid
Definition: NDPluginStats.h:194
Definition: NDPluginStats.h:36
virtual void processCallbacks(NDArray *pArray)=0
int NDPluginStatsHistMin
Definition: NDPluginStats.h:228
size_t cursorY
Definition: NDPluginStats.h:78
NDStatProfileType
Definition: NDPluginStats.h:6
#define NDPLUGIN_API
Definition: NDPluginAPI.h:41
Definition: NDPluginStats.h:7
int NDPluginStatsHistXArray
Definition: NDPluginStats.h:234
Definition: NDPluginStats.h:25
double net
Definition: NDPluginStats.h:51
Definition: NDPluginStats.h:48
int NDPluginStatsSigmaValue
Definition: NDPluginStats.h:189
double eccentricity
Definition: NDPluginStats.h:71
size_t minX
Definition: NDPluginStats.h:55
double max
Definition: NDPluginStats.h:57
int NDPluginStatsCursorY
Definition: NDPluginStats.h:214
int NDPluginStatsSigmaY
Definition: NDPluginStats.h:200
int NDPluginStatsHistMax
Definition: NDPluginStats.h:229
Definition: NDPluginStats.h:10
int NDPluginStatsHistEntropy
Definition: NDPluginStats.h:232
double sigmaY
Definition: NDPluginStats.h:65
int NDPluginStatsComputeProfiles
Definition: NDPluginStats.h:210
double total
Definition: NDPluginStats.h:50
double sigmaXY
Definition: NDPluginStats.h:66
int NDPluginStatsCursorX
Definition: NDPluginStats.h:213
int NDPluginStatsBgdWidth
Definition: NDPluginStats.h:181
N-dimensional array class; each array has a set of dimensions, a data type, pointer to data...
Definition: NDArray.h:93
int NDPluginStatsMeanValue
Definition: NDPluginStats.h:188
size_t maxX
Definition: NDPluginStats.h:58
double * histogram
Definition: NDPluginStats.h:83
int NDPluginStatsMaxX
Definition: NDPluginStats.h:186
int NDPluginStatsHistBelow
Definition: NDPluginStats.h:230
int NDPluginStatsMaxValue
Definition: NDPluginStats.h:185
int NDPluginStatsProfileSizeY
Definition: NDPluginStats.h:212
double * profileY[MAX_PROFILE_TYPES]
Definition: NDPluginStats.h:74
Definition: NDPluginStats.h:27
Definition: NDPluginROIStat.h:58
double histMax
Definition: NDPluginStats.h:85
size_t maxY
Definition: NDPluginStats.h:59
int NDPluginStatsMinX
Definition: NDPluginStats.h:183
Definition: NDPluginROIStat.h:54
int NDPluginStatsHistSize
Definition: NDPluginStats.h:227
int NDPluginStatsEccentricity
Definition: NDPluginStats.h:206
int NDPluginStatsNet
Definition: NDPluginStats.h:191
int NDPluginStatsSkewX
Definition: NDPluginStats.h:202
double centroidTotal
Definition: NDPluginStats.h:61
int NDPluginStatsProfileCursorX
Definition: NDPluginStats.h:222
double sigmaX
Definition: NDPluginStats.h:64
int NDPluginStatsCentroidX
Definition: NDPluginStats.h:197
double centroidThreshold
Definition: NDPluginStats.h:60
Definition: NDPluginROIStat.h:53