From 560cd13b57606cba8fa5d9dbeff08b7d03837d2a Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Fri, 22 Jun 2018 07:51:36 -0500
Subject: [PATCH 01/20] Removed time series code from NDPluginStats, use
NDPluginTimeSeries instead
---
ADApp/pluginSrc/NDPluginStats.cpp | 168 ++++++------------------------
ADApp/pluginSrc/NDPluginStats.h | 69 +-----------
2 files changed, 34 insertions(+), 203 deletions(-)
diff --git a/ADApp/pluginSrc/NDPluginStats.cpp b/ADApp/pluginSrc/NDPluginStats.cpp
index 25e329322..89925c3eb 100644
--- a/ADApp/pluginSrc/NDPluginStats.cpp
+++ b/ADApp/pluginSrc/NDPluginStats.cpp
@@ -395,37 +395,6 @@ asynStatus NDPluginStats::doComputeProfiles(NDArray *pArray, NDStats_t *pStats)
return(status);
}
-void NDPluginStats::doTimeSeriesCallbacks()
-{
- int currentPoint;
-
- getIntegerParam(NDPluginStatsTSCurrentPoint, ¤tPoint);
-
- doCallbacksFloat64Array(this->timeSeries[TSMinValue], currentPoint, NDPluginStatsTSMinValue, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMinX], currentPoint, NDPluginStatsTSMinX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMinY], currentPoint, NDPluginStatsTSMinY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMaxValue], currentPoint, NDPluginStatsTSMaxValue, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMaxX], currentPoint, NDPluginStatsTSMaxX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMaxY], currentPoint, NDPluginStatsTSMaxY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSMeanValue], currentPoint, NDPluginStatsTSMeanValue, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSigmaValue], currentPoint, NDPluginStatsTSSigmaValue, 0);
- doCallbacksFloat64Array(this->timeSeries[TSTotal], currentPoint, NDPluginStatsTSTotal, 0);
- doCallbacksFloat64Array(this->timeSeries[TSNet], currentPoint, NDPluginStatsTSNet, 0);
- doCallbacksFloat64Array(this->timeSeries[TSCentroidTotal], currentPoint, NDPluginStatsTSCentroidTotal, 0);
- doCallbacksFloat64Array(this->timeSeries[TSCentroidX], currentPoint, NDPluginStatsTSCentroidX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSCentroidY], currentPoint, NDPluginStatsTSCentroidY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSigmaX], currentPoint, NDPluginStatsTSSigmaX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSigmaY], currentPoint, NDPluginStatsTSSigmaY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSigmaXY], currentPoint, NDPluginStatsTSSigmaXY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSkewX], currentPoint, NDPluginStatsTSSkewX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSSkewY], currentPoint, NDPluginStatsTSSkewY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSKurtosisX], currentPoint, NDPluginStatsTSKurtosisX, 0);
- doCallbacksFloat64Array(this->timeSeries[TSKurtosisY], currentPoint, NDPluginStatsTSKurtosisY, 0);
- doCallbacksFloat64Array(this->timeSeries[TSEccentricity], currentPoint, NDPluginStatsTSEccentricity, 0);
- doCallbacksFloat64Array(this->timeSeries[TSOrientation], currentPoint, NDPluginStatsTSOrientation, 0);
- doCallbacksFloat64Array(this->timeSeries[TSTimestamp], currentPoint, NDPluginStatsTSTimestamp, 0);
-}
-
/** Callback function that is called by the NDArray driver with new NDArray data.
* Does image statistics.
@@ -447,7 +416,6 @@ void NDPluginStats::processCallbacks(NDArray *pArray)
int computeStatistics, computeCentroid, computeProfiles, computeHistogram;
size_t sizeX=0, sizeY=0;
int i;
- int numTSPoints, currentTSPoint, TSAcquiring;
int itemp;
NDArrayInfo arrayInfo;
static const char* functionName = "processCallbacks";
@@ -560,40 +528,35 @@ void NDPluginStats::processCallbacks(NDArray *pArray)
// Take the lock again. The time-series data need to be protected.
this->lock();
- getIntegerParam(NDPluginStatsTSCurrentPoint, ¤tTSPoint);
- getIntegerParam(NDPluginStatsTSNumPoints, &numTSPoints);
- getIntegerParam(NDPluginStatsTSAcquiring, &TSAcquiring);
- if (TSAcquiring) {
- timeSeries[TSMinValue][currentTSPoint] = pStats->min;
- timeSeries[TSMinX][currentTSPoint] = (double)pStats->minX;
- timeSeries[TSMinY][currentTSPoint] = (double)pStats->minY;
- timeSeries[TSMaxValue][currentTSPoint] = pStats->max;
- timeSeries[TSMaxX][currentTSPoint] = (double)pStats->maxX;
- timeSeries[TSMaxY][currentTSPoint] = (double)pStats->maxY;
- timeSeries[TSMeanValue][currentTSPoint] = pStats->mean;
- timeSeries[TSSigmaValue][currentTSPoint] = pStats->sigma;
- timeSeries[TSTotal][currentTSPoint] = pStats->total;
- timeSeries[TSNet][currentTSPoint] = pStats->net;
- timeSeries[TSCentroidTotal][currentTSPoint] = pStats->centroidTotal;
- timeSeries[TSCentroidX][currentTSPoint] = pStats->centroidX;
- timeSeries[TSCentroidY][currentTSPoint] = pStats->centroidY;
- timeSeries[TSSigmaX][currentTSPoint] = pStats->sigmaX;
- timeSeries[TSSigmaY][currentTSPoint] = pStats->sigmaY;
- timeSeries[TSSigmaXY][currentTSPoint] = pStats->sigmaXY;
- timeSeries[TSSkewX][currentTSPoint] = pStats->skewX;
- timeSeries[TSSkewY][currentTSPoint] = pStats->skewY;
- timeSeries[TSKurtosisX][currentTSPoint] = pStats->kurtosisX;
- timeSeries[TSKurtosisY][currentTSPoint] = pStats->kurtosisY;
- timeSeries[TSEccentricity][currentTSPoint] = pStats->eccentricity;
- timeSeries[TSOrientation][currentTSPoint] = pStats->orientation;
- timeSeries[TSTimestamp][currentTSPoint] = pArray->timeStamp;
- currentTSPoint++;
- setIntegerParam(NDPluginStatsTSCurrentPoint, currentTSPoint);
- if (currentTSPoint >= numTSPoints) {
- setIntegerParam(NDPluginStatsTSAcquiring, 0);
- doTimeSeriesCallbacks();
- }
- }
+ size_t dims=MAX_TIME_SERIES_TYPES;
+ NDArray *pTimeSeriesArray = this->pNDArrayPool->alloc(1, &dims, NDFloat64, 0, NULL);
+ epicsFloat64 *timeSeries = (epicsFloat64 *)pTimeSeriesArray->pData;
+
+ timeSeries[TSMinValue] = pStats->min;
+ timeSeries[TSMinX] = (double)pStats->minX;
+ timeSeries[TSMinY] = (double)pStats->minY;
+ timeSeries[TSMaxValue] = pStats->max;
+ timeSeries[TSMaxX] = (double)pStats->maxX;
+ timeSeries[TSMaxY] = (double)pStats->maxY;
+ timeSeries[TSMeanValue] = pStats->mean;
+ timeSeries[TSSigmaValue] = pStats->sigma;
+ timeSeries[TSTotal] = pStats->total;
+ timeSeries[TSNet] = pStats->net;
+ timeSeries[TSCentroidTotal] = pStats->centroidTotal;
+ timeSeries[TSCentroidX] = pStats->centroidX;
+ timeSeries[TSCentroidY] = pStats->centroidY;
+ timeSeries[TSSigmaX] = pStats->sigmaX;
+ timeSeries[TSSigmaY] = pStats->sigmaY;
+ timeSeries[TSSigmaXY] = pStats->sigmaXY;
+ timeSeries[TSSkewX] = pStats->skewX;
+ timeSeries[TSSkewY] = pStats->skewY;
+ timeSeries[TSKurtosisX] = pStats->kurtosisX;
+ timeSeries[TSKurtosisY] = pStats->kurtosisY;
+ timeSeries[TSEccentricity] = pStats->eccentricity;
+ timeSeries[TSOrientation] = pStats->orientation;
+ timeSeries[TSTimestamp] = pArray->timeStamp;
+ doCallbacksGenericPointer(pTimeSeriesArray, NDArrayData, 1);
+
if (computeStatistics) {
setDoubleParam(NDPluginStatsMinValue, pStats->min);
@@ -689,8 +652,6 @@ asynStatus NDPluginStats::writeInt32(asynUser *pasynUser, epicsInt32 value)
{
int function = pasynUser->reason;
asynStatus status = asynSuccess;
- int i;
- int numPoints, currentPoint;
static const char *functionName = "writeInt32";
@@ -705,38 +666,8 @@ asynStatus NDPluginStats::writeInt32(asynUser *pasynUser, epicsInt32 value)
if (pPrevInputArray_) {
processCallbacks(pPrevInputArray_);
}
- } else if (function == NDPluginStatsTSNumPoints) {
- for (i=0; itimeSeries[i]);
- timeSeries[i] = (double *)calloc(value, sizeof(double));
- }
} else if (function == NDPluginStatsHistSize) {
status = computeHistX();
- } else if (function == NDPluginStatsTSControl) {
- switch (value) {
- case TSEraseStart:
- setIntegerParam(NDPluginStatsTSCurrentPoint, 0);
- setIntegerParam(NDPluginStatsTSAcquiring, 1);
- getIntegerParam(NDPluginStatsTSNumPoints, &numPoints);
- for (i=0; itimeSeries[i], 0, numPoints*sizeof(double));
- }
- break;
- case TSStart:
- getIntegerParam(NDPluginStatsTSNumPoints, &numPoints);
- getIntegerParam(NDPluginStatsTSCurrentPoint, ¤tPoint);
- if (currentPoint < numPoints) {
- setIntegerParam(NDPluginStatsTSAcquiring, 1);
- }
- break;
- case TSStop:
- setIntegerParam(NDPluginStatsTSAcquiring, 0);
- doTimeSeriesCallbacks();
- break;
- case TSRead:
- doTimeSeriesCallbacks();
- break;
- }
} else {
/* If this parameter belongs to a base class call its method */
if (function < FIRST_NDPLUGIN_STATS_PARAM)
@@ -827,13 +758,11 @@ NDPluginStats::NDPluginStats(const char *portName, int queueSize, int blockingCa
int priority, int stackSize, int maxThreads)
/* Invoke the base class constructor */
: NDPluginDriver(portName, queueSize, blockingCallbacks,
- NDArrayPort, NDArrayAddr, 1, maxBuffers, maxMemory,
+ NDArrayPort, NDArrayAddr, 2, maxBuffers, maxMemory,
asynInt32ArrayMask | asynFloat64ArrayMask | asynGenericPointerMask,
asynInt32ArrayMask | asynFloat64ArrayMask | asynGenericPointerMask,
0, 1, priority, stackSize, maxThreads)
{
- int numTSPoints=256; // Initial size of time series
- int i;
//static const char *functionName = "NDPluginStats";
/* Statistics */
@@ -866,35 +795,6 @@ NDPluginStats::NDPluginStats(const char *portName, int queueSize, int blockingCa
createParam(NDPluginStatsEccentricityString, asynParamFloat64, &NDPluginStatsEccentricity);
createParam(NDPluginStatsOrientationString, asynParamFloat64, &NDPluginStatsOrientation);
- /* Time series */
- createParam(NDPluginStatsTSControlString, asynParamInt32, &NDPluginStatsTSControl);
- createParam(NDPluginStatsTSNumPointsString, asynParamInt32, &NDPluginStatsTSNumPoints);
- createParam(NDPluginStatsTSCurrentPointString, asynParamInt32, &NDPluginStatsTSCurrentPoint);
- createParam(NDPluginStatsTSAcquiringString, asynParamInt32, &NDPluginStatsTSAcquiring);
- createParam(NDPluginStatsTSMinValueString, asynParamFloat64Array, &NDPluginStatsTSMinValue);
- createParam(NDPluginStatsTSMinXString, asynParamFloat64Array, &NDPluginStatsTSMinX);
- createParam(NDPluginStatsTSMinYString, asynParamFloat64Array, &NDPluginStatsTSMinY);
- createParam(NDPluginStatsTSMaxValueString, asynParamFloat64Array, &NDPluginStatsTSMaxValue);
- createParam(NDPluginStatsTSMaxXString, asynParamFloat64Array, &NDPluginStatsTSMaxX);
- createParam(NDPluginStatsTSMaxYString, asynParamFloat64Array, &NDPluginStatsTSMaxY);
- createParam(NDPluginStatsTSMeanValueString, asynParamFloat64Array, &NDPluginStatsTSMeanValue);
- createParam(NDPluginStatsTSSigmaValueString, asynParamFloat64Array, &NDPluginStatsTSSigmaValue);
- createParam(NDPluginStatsTSTotalString, asynParamFloat64Array, &NDPluginStatsTSTotal);
- createParam(NDPluginStatsTSNetString, asynParamFloat64Array, &NDPluginStatsTSNet);
- createParam(NDPluginStatsTSCentroidTotalString, asynParamFloat64Array, &NDPluginStatsTSCentroidTotal);
- createParam(NDPluginStatsTSCentroidXString, asynParamFloat64Array, &NDPluginStatsTSCentroidX);
- createParam(NDPluginStatsTSCentroidYString, asynParamFloat64Array, &NDPluginStatsTSCentroidY);
- createParam(NDPluginStatsTSSigmaXString, asynParamFloat64Array, &NDPluginStatsTSSigmaX);
- createParam(NDPluginStatsTSSigmaYString, asynParamFloat64Array, &NDPluginStatsTSSigmaY);
- createParam(NDPluginStatsTSSigmaXYString, asynParamFloat64Array, &NDPluginStatsTSSigmaXY);
- createParam(NDPluginStatsTSSkewXString, asynParamFloat64Array, &NDPluginStatsTSSkewX);
- createParam(NDPluginStatsTSSkewYString, asynParamFloat64Array, &NDPluginStatsTSSkewY);
- createParam(NDPluginStatsTSKurtosisXString, asynParamFloat64Array, &NDPluginStatsTSKurtosisX);
- createParam(NDPluginStatsTSKurtosisYString, asynParamFloat64Array, &NDPluginStatsTSKurtosisY);
- createParam(NDPluginStatsTSEccentricityString, asynParamFloat64Array, &NDPluginStatsTSEccentricity);
- createParam(NDPluginStatsTSOrientationString, asynParamFloat64Array, &NDPluginStatsTSOrientation);
- createParam(NDPluginStatsTSTimestampString, asynParamFloat64Array, &NDPluginStatsTSTimestamp);
-
/* Profiles */
createParam(NDPluginStatsComputeProfilesString, asynParamInt32, &NDPluginStatsComputeProfiles);
createParam(NDPluginStatsProfileSizeXString, asynParamInt32, &NDPluginStatsProfileSizeX);
@@ -921,14 +821,6 @@ NDPluginStats::NDPluginStats(const char *portName, int queueSize, int blockingCa
createParam(NDPluginStatsHistArrayString, asynParamFloat64Array, &NDPluginStatsHistArray);
createParam(NDPluginStatsHistXArrayString, asynParamFloat64Array, &NDPluginStatsHistXArray);
- // If we uncomment the following line then we can't set numTSPoints from database at initialisation
- //setIntegerParam(NDPluginStatsTSNumPoints, numTSPoints);
- setIntegerParam(NDPluginStatsTSAcquiring, 0);
- setIntegerParam(NDPluginStatsTSCurrentPoint, 0);
- for (i=0; i
Date: Fri, 22 Jun 2018 16:08:44 -0500
Subject: [PATCH 02/20] Updated waveform record to use TimeSeries plugins
---
ADApp/Db/NDStats.template | 48 +++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 24 deletions(-)
diff --git a/ADApp/Db/NDStats.template b/ADApp/Db/NDStats.template
index 0ad833135..9a870f261 100644
--- a/ADApp/Db/NDStats.template
+++ b/ADApp/Db/NDStats.template
@@ -447,7 +447,7 @@ record(bi, "$(P)$(R)TSAcquiring")
record(waveform, "$(P)$(R)TSMinValue")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MIN_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),0,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -456,7 +456,7 @@ record(waveform, "$(P)$(R)TSMinValue")
record(waveform, "$(P)$(R)TSMinX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MIN_X")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),1),$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -465,7 +465,7 @@ record(waveform, "$(P)$(R)TSMinX")
record(waveform, "$(P)$(R)TSMinY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MIN_Y")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),2,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -474,7 +474,7 @@ record(waveform, "$(P)$(R)TSMinY")
record(waveform, "$(P)$(R)TSMaxValue")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MAX_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),3,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -483,7 +483,7 @@ record(waveform, "$(P)$(R)TSMaxValue")
record(waveform, "$(P)$(R)TSMaxX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MAX_X")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),4,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -492,7 +492,7 @@ record(waveform, "$(P)$(R)TSMaxX")
record(waveform, "$(P)$(R)TSMaxY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MAX_Y")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),5,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -501,7 +501,7 @@ record(waveform, "$(P)$(R)TSMaxY")
record(waveform, "$(P)$(R)TSMeanValue")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_MEAN_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),6,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -510,7 +510,7 @@ record(waveform, "$(P)$(R)TSMeanValue")
record(waveform, "$(P)$(R)TSSigma")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SIGMA_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),7,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -519,7 +519,7 @@ record(waveform, "$(P)$(R)TSSigma")
record(waveform, "$(P)$(R)TSTotal")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_TOTAL")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),8,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -528,7 +528,7 @@ record(waveform, "$(P)$(R)TSTotal")
record(waveform, "$(P)$(R)TSNet")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_NET")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),9,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -537,7 +537,7 @@ record(waveform, "$(P)$(R)TSNet")
record(waveform, "$(P)$(R)TSCentroidTotal")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_CENTROIDTOTAL_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),10,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -546,7 +546,7 @@ record(waveform, "$(P)$(R)TSCentroidTotal")
record(waveform, "$(P)$(R)TSCentroidX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_CENTROIDX_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),11,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -555,7 +555,7 @@ record(waveform, "$(P)$(R)TSCentroidX")
record(waveform, "$(P)$(R)TSCentroidY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_CENTROIDY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),12,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -564,7 +564,7 @@ record(waveform, "$(P)$(R)TSCentroidY")
record(waveform, "$(P)$(R)TSSigmaX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SIGMAX_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),13,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -573,7 +573,7 @@ record(waveform, "$(P)$(R)TSSigmaX")
record(waveform, "$(P)$(R)TSSigmaY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SIGMAY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),14,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -582,7 +582,7 @@ record(waveform, "$(P)$(R)TSSigmaY")
record(waveform, "$(P)$(R)TSSigmaXY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SIGMAXY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),15,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -591,7 +591,7 @@ record(waveform, "$(P)$(R)TSSigmaXY")
record(waveform, "$(P)$(R)TSSkewX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SKEWX_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),16,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -600,7 +600,7 @@ record(waveform, "$(P)$(R)TSSkewX")
record(waveform, "$(P)$(R)TSSkewY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_SKEWY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),17,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -609,7 +609,7 @@ record(waveform, "$(P)$(R)TSSkewY")
record(waveform, "$(P)$(R)TSKurtosisX")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_KURTOSISX_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),18,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -618,7 +618,7 @@ record(waveform, "$(P)$(R)TSKurtosisX")
record(waveform, "$(P)$(R)TSKurtosisY")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_KURTOSISY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),19,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -627,7 +627,7 @@ record(waveform, "$(P)$(R)TSKurtosisY")
record(waveform, "$(P)$(R)TSEccentricity")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_ECCENTRICITY_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),20,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
@@ -636,16 +636,16 @@ record(waveform, "$(P)$(R)TSEccentricity")
record(waveform, "$(P)$(R)TSOrientation")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_ORIENTATION_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),21,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
}
-record(waveform, "$(P)$(R)TSTimestamp")
+record(waveform, "$(P)$(R)TS:TSTimestamp")
{
field(DTYP, "asynFloat64ArrayIn")
- field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))TS_TIMESTAMP_VALUE")
+ field(INP, "@asyn($(TS_PORT=$(PORT)_TS),22,$(TIMEOUT=1))TS_TIME_SERIES")
field(NELM, "$(NCHANS)")
field(FTVL, "DOUBLE")
field(SCAN, "I/O Intr")
From 7c96ec046f5567f7d50f2f8d75c1060c25691bc9 Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Fri, 22 Jun 2018 16:09:18 -0500
Subject: [PATCH 03/20] Changed related display for time series plots
---
ADApp/op/adl/NDStats.adl | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ADApp/op/adl/NDStats.adl b/ADApp/op/adl/NDStats.adl
index 7b8b587bb..aa3dbc9f1 100755
--- a/ADApp/op/adl/NDStats.adl
+++ b/ADApp/op/adl/NDStats.adl
@@ -1,6 +1,6 @@
file {
- name="/home/epics/devel/areaDetector-3-2/ADCore/ADApp/op/adl/NDStats.adl"
+ name="/home/epics/devel/areaDetector-3-3/ADCore/ADApp/op/adl/NDStats.adl"
version=030109
}
display {
@@ -1043,8 +1043,8 @@ text {
}
display[0] {
label="Total"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSTotal"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSTotal"
}
display[1] {
label="Net"
From fde810478246cf562526dff341deedb0420e9b97 Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Fri, 22 Jun 2018 16:10:13 -0500
Subject: [PATCH 04/20] Changed related display for time series plots
---
ADApp/op/opi/autoconvert/NDStats.opi | 5 +++--
ADApp/op/ui/autoconvert/NDStats.ui | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/ADApp/op/opi/autoconvert/NDStats.opi b/ADApp/op/opi/autoconvert/NDStats.opi
index b13d4fecf..944999c09 100644
--- a/ADApp/op/opi/autoconvert/NDStats.opi
+++ b/ADApp/op/opi/autoconvert/NDStats.opi
@@ -3611,10 +3611,11 @@ $(pv_value)
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSTotal
+ $(R)TS:
+ $(R)TSTotal
1
Total
diff --git a/ADApp/op/ui/autoconvert/NDStats.ui b/ADApp/op/ui/autoconvert/NDStats.ui
index cdbca93cd..1447c070a 100644
--- a/ADApp/op/ui/autoconvert/NDStats.ui
+++ b/ADApp/op/ui/autoconvert/NDStats.ui
@@ -2938,10 +2938,10 @@ border-radius: 2px;
Total;Net;Min;Min X;Min Y;Max;Max X;Max Y;Mean;Sigma;All
- NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDStatsTimeSeriesBasicAll.adl
+ NDStatsTimeSeriesPlot.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDStatsTimeSeriesBasicAll.adl
- P=$(P),R=$(R),PLT=TSTotal;P=$(P),R=$(R),PLT=TSNet;P=$(P),R=$(R),PLT=TSMinValue;P=$(P),R=$(R),PLT=TSMinX;P=$(P),R=$(R),PLT=TSMinY;P=$(P),R=$(R),PLT=TSMaxValue;P=$(P),R=$(R),PLT=TSMaxX;P=$(P),R=$(R),PLT=TSMaxY;P=$(P),R=$(R),PLT=TSMeanValue;P=$(P),R=$(R),PLT=TSSigma;P=$(P),R=$(R)
+ P=$(P),R=$(R)TS:,RN=$(R)TSTotal;P=$(P),R=$(R),PLT=TSNet;P=$(P),R=$(R),PLT=TSMinValue;P=$(P),R=$(R),PLT=TSMinX;P=$(P),R=$(R),PLT=TSMinY;P=$(P),R=$(R),PLT=TSMaxValue;P=$(P),R=$(R),PLT=TSMaxX;P=$(P),R=$(R),PLT=TSMaxY;P=$(P),R=$(R),PLT=TSMeanValue;P=$(P),R=$(R),PLT=TSSigma;P=$(P),R=$(R)
false;false;false;false;false;false;false;false;false;false;false
From 149362af0689c8b82909de9b73bdd310eda3f00f Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Sun, 24 Jun 2018 08:35:18 -0500
Subject: [PATCH 05/20] New file
---
ADApp/op/adl/NDStatsTimeSeriesPlot.adl | 340 +++++++++++++++++++++++++
1 file changed, 340 insertions(+)
create mode 100644 ADApp/op/adl/NDStatsTimeSeriesPlot.adl
diff --git a/ADApp/op/adl/NDStatsTimeSeriesPlot.adl b/ADApp/op/adl/NDStatsTimeSeriesPlot.adl
new file mode 100644
index 000000000..85328c131
--- /dev/null
+++ b/ADApp/op/adl/NDStatsTimeSeriesPlot.adl
@@ -0,0 +1,340 @@
+
+file {
+ name="/home/epics/devel/areaDetector/ADCore/ADApp/op/adl/NDStatsTimeSeriesPlot.adl"
+ version=030109
+}
+display {
+ object {
+ x=370
+ y=223
+ width=500
+ height=415
+ }
+ clr=14
+ bclr=4
+ cmap=""
+ gridSpacing=5
+ gridOn=0
+ snapToGrid=0
+}
+"color map" {
+ ncolors=65
+ colors {
+ ffffff,
+ ececec,
+ dadada,
+ c8c8c8,
+ bbbbbb,
+ aeaeae,
+ 9e9e9e,
+ 919191,
+ 858585,
+ 787878,
+ 696969,
+ 5a5a5a,
+ 464646,
+ 2d2d2d,
+ 000000,
+ 00d800,
+ 1ebb00,
+ 339900,
+ 2d7f00,
+ 216c00,
+ fd0000,
+ de1309,
+ be190b,
+ a01207,
+ 820400,
+ 5893ff,
+ 597ee1,
+ 4b6ec7,
+ 3a5eab,
+ 27548d,
+ fbf34a,
+ f9da3c,
+ eeb62b,
+ e19015,
+ cd6100,
+ ffb0ff,
+ d67fe2,
+ ae4ebc,
+ 8b1a96,
+ 610a75,
+ a4aaff,
+ 8793e2,
+ 6a73c1,
+ 4d52a4,
+ 343386,
+ c7bb6d,
+ b79d5c,
+ a47e3c,
+ 7d5627,
+ 58340f,
+ 99ffff,
+ 73dfff,
+ 4ea5f9,
+ 2a63e4,
+ 0a00b8,
+ ebf1b5,
+ d4db9d,
+ bbc187,
+ a6a462,
+ 8b8239,
+ 73ff6b,
+ 52da3b,
+ 3cb420,
+ 289315,
+ 1a7309,
+ }
+}
+"cartesian plot" {
+ object {
+ x=5
+ y=55
+ width=490
+ height=275
+ }
+ plotcom {
+ title="$(P)$(RN) Time Series"
+ xlabel="Time point"
+ ylabel="$(P)$(RN)"
+ clr=14
+ bclr=2
+ }
+ style="line"
+ erase_oldest="plot last n pts"
+ trace[0] {
+ ydata="$(P)$(RN)"
+ data_clr=27
+ yaxis=0
+ }
+ x_axis {
+ rangeStyle="auto-scale"
+ }
+ y1_axis {
+ rangeStyle="auto-scale"
+ }
+ y2_axis {
+ rangeStyle="auto-scale"
+ }
+}
+composite {
+ object {
+ x=0
+ y=5
+ width=500
+ height=45
+ }
+ "composite name"=""
+ children {
+ text {
+ object {
+ x=0
+ y=5
+ width=500
+ height=20
+ }
+ "basic attribute" {
+ clr=54
+ }
+ textix="$(P)$(RN)"
+ align="horiz. centered"
+ }
+ "text update" {
+ object {
+ x=282
+ y=31
+ width=100
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TSAcquiring"
+ clr=54
+ bclr=12
+ }
+ clrmod="alarm"
+ format="string"
+ limits {
+ }
+ }
+ "message button" {
+ object {
+ x=191
+ y=30
+ width=85
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Stop"
+ press_msg="0"
+ }
+ "message button" {
+ object {
+ x=101
+ y=30
+ width=85
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Erase/Start"
+ press_msg="1"
+ }
+ text {
+ object {
+ x=26
+ y=30
+ width=70
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Acquire"
+ }
+ }
+}
+menu {
+ object {
+ x=395
+ y=340
+ width=100
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TSAcquireMode"
+ clr=14
+ bclr=51
+ }
+}
+text {
+ object {
+ x=280
+ y=340
+ width=110
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="AcquireMode"
+}
+"message button" {
+ object {
+ x=190
+ y=340
+ width=67
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TSRead"
+ clr=14
+ bclr=51
+ }
+ label="Read"
+ press_msg="1"
+}
+menu {
+ object {
+ x=105
+ y=341
+ width=80
+ height=18
+ }
+ control {
+ chan="$(P)$(R)TSRead.SCAN"
+ clr=14
+ bclr=51
+ }
+}
+text {
+ object {
+ x=10
+ y=340
+ width=90
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Read rate"
+}
+text {
+ object {
+ x=10
+ y=365
+ width=160
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Number of points"
+ align="horiz. right"
+}
+"text entry" {
+ object {
+ x=175
+ y=366
+ width=60
+ height=19
+ }
+ control {
+ chan="$(P)$(R)TSNumPoints"
+ clr=14
+ bclr=51
+ }
+ limits {
+ }
+}
+text {
+ object {
+ x=270
+ y=365
+ width=130
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Current point"
+ align="horiz. right"
+}
+"text update" {
+ object {
+ x=405
+ y=366
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TSCurrentPoint"
+ clr=54
+ bclr=4
+ }
+ limits {
+ }
+}
+"related display" {
+ object {
+ x=10
+ y=390
+ width=100
+ height=20
+ }
+ display[0] {
+ label="Time series plugin"
+ name="NDPluginTimeSeries.adl"
+ args="P=$(P),R=$(R)"
+ }
+ clr=14
+ bclr=51
+ label="More"
+}
From 6136e0ca89395477a7760e2ee5bd83827b0bd54a Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Sun, 24 Jun 2018 08:36:11 -0500
Subject: [PATCH 06/20] Changed to use controls from NDPluginTimeSeries
---
ADApp/op/adl/NDStatsTimeSeriesBasicAll.adl | 343 ++++++++--------
ADApp/op/adl/NDStatsTimeSeriesCentroidAll.adl | 378 +++++++++---------
2 files changed, 371 insertions(+), 350 deletions(-)
diff --git a/ADApp/op/adl/NDStatsTimeSeriesBasicAll.adl b/ADApp/op/adl/NDStatsTimeSeriesBasicAll.adl
index 4ec5c3aac..780dfe84b 100644
--- a/ADApp/op/adl/NDStatsTimeSeriesBasicAll.adl
+++ b/ADApp/op/adl/NDStatsTimeSeriesBasicAll.adl
@@ -246,164 +246,6 @@ composite {
}
}
}
-"message button" {
- object {
- x=23
- y=479
- width=90
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Erase/Start"
- press_msg="0"
-}
-"message button" {
- object {
- x=118
- y=479
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Stop"
- press_msg="2"
-}
-"message button" {
- object {
- x=183
- y=479
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Start"
- press_msg="1"
-}
-"text update" {
- object {
- x=248
- y=480
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSAcquiring"
- clr=54
- bclr=12
- }
- clrmod="alarm"
- format="string"
- limits {
- }
-}
-"text entry" {
- object {
- x=188
- y=505
- width=60
- height=19
- }
- control {
- chan="$(P)$(R)TSNumPoints"
- clr=14
- bclr=51
- }
- limits {
- }
-}
-text {
- object {
- x=23
- y=504
- width=160
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Number of points"
- align="horiz. right"
-}
-text {
- object {
- x=23
- y=529
- width=130
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Current point"
- align="horiz. right"
-}
-"text update" {
- object {
- x=158
- y=530
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSCurrentPoint"
- clr=54
- bclr=4
- }
- limits {
- }
-}
-menu {
- object {
- x=118
- y=555
- width=80
- height=18
- }
- control {
- chan="$(P)$(R)TSRead.SCAN"
- clr=14
- bclr=51
- }
-}
-"message button" {
- object {
- x=203
- y=554
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Read"
- press_msg="3"
-}
-text {
- object {
- x=23
- y=554
- width=90
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Read rate"
-}
"cartesian plot" {
object {
x=720
@@ -590,3 +432,188 @@ text {
rangeStyle="auto-scale"
}
}
+text {
+ object {
+ x=46
+ y=531
+ width=130
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Current point"
+ align="horiz. right"
+}
+"text update" {
+ object {
+ x=181
+ y=532
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSCurrentPoint"
+ clr=54
+ bclr=4
+ }
+ limits {
+ }
+}
+menu {
+ object {
+ x=181
+ y=556
+ width=80
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.SCAN"
+ clr=14
+ bclr=51
+ }
+}
+"message button" {
+ object {
+ x=266
+ y=556
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.PROC"
+ clr=14
+ bclr=51
+ }
+ label="Read"
+ press_msg="1"
+}
+text {
+ object {
+ x=86
+ y=556
+ width=90
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Read rate"
+ align="horiz. right"
+}
+"text entry" {
+ object {
+ x=181
+ y=507
+ width=60
+ height=19
+ }
+ control {
+ chan="$(P)$(R)TS:TSNumPoints"
+ clr=14
+ bclr=51
+ }
+ limits {
+ }
+}
+text {
+ object {
+ x=16
+ y=506
+ width=160
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Number of points"
+ align="horiz. right"
+}
+"message button" {
+ object {
+ x=86
+ y=481
+ width=90
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Erase/Start"
+ press_msg="1"
+}
+"message button" {
+ object {
+ x=181
+ y=481
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Stop"
+ press_msg="2"
+}
+"text update" {
+ object {
+ x=246
+ y=482
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSAcquiring"
+ clr=54
+ bclr=12
+ }
+ clrmod="alarm"
+ format="string"
+ limits {
+ }
+}
+text {
+ object {
+ x=11
+ y=481
+ width=70
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Acquire"
+}
+text {
+ object {
+ x=136
+ y=581
+ width=40
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="More"
+ align="horiz. right"
+}
+"related display" {
+ object {
+ x=181
+ y=581
+ width=69
+ height=20
+ }
+ display[0] {
+ label="Time series control"
+ name="NDPluginTimeSeries.adl"
+ args="P=$(P),R=$(R)TS:"
+ }
+ clr=14
+ bclr=4
+ label="More"
+}
diff --git a/ADApp/op/adl/NDStatsTimeSeriesCentroidAll.adl b/ADApp/op/adl/NDStatsTimeSeriesCentroidAll.adl
index 3402019d3..284b1d510 100644
--- a/ADApp/op/adl/NDStatsTimeSeriesCentroidAll.adl
+++ b/ADApp/op/adl/NDStatsTimeSeriesCentroidAll.adl
@@ -8,7 +8,7 @@ display {
x=305
y=202
width=1435
- height=755
+ height=780
}
clr=14
bclr=4
@@ -111,197 +111,6 @@ text {
textix="$(P)$(R)"
align="horiz. centered"
}
-"message button" {
- object {
- x=10
- y=655
- width=90
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Erase/Start"
- press_msg="0"
-}
-"message button" {
- object {
- x=105
- y=655
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Stop"
- press_msg="2"
-}
-"message button" {
- object {
- x=170
- y=655
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Start"
- press_msg="1"
-}
-"text update" {
- object {
- x=235
- y=656
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSAcquiring"
- clr=54
- bclr=12
- }
- clrmod="alarm"
- format="string"
- limits {
- }
-}
-composite {
- object {
- x=10
- y=680
- width=225
- height=20
- }
- "composite name"=""
- children {
- "text entry" {
- object {
- x=175
- y=681
- width=60
- height=19
- }
- control {
- chan="$(P)$(R)TSNumPoints"
- clr=14
- bclr=51
- }
- limits {
- }
- }
- text {
- object {
- x=10
- y=680
- width=160
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Number of points"
- align="horiz. right"
- }
- }
-}
-composite {
- object {
- x=10
- y=705
- width=225
- height=20
- }
- "composite name"=""
- children {
- text {
- object {
- x=10
- y=705
- width=130
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Current point"
- align="horiz. right"
- }
- "text update" {
- object {
- x=145
- y=706
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSCurrentPoint"
- clr=54
- bclr=4
- }
- limits {
- }
- }
- }
-}
-composite {
- object {
- x=10
- y=730
- width=240
- height=20
- }
- "composite name"=""
- children {
- menu {
- object {
- x=105
- y=731
- width=80
- height=18
- }
- control {
- chan="$(P)$(R)TSRead.SCAN"
- clr=14
- bclr=51
- }
- }
- "message button" {
- object {
- x=190
- y=730
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Read"
- press_msg="3"
- }
- text {
- object {
- x=10
- y=730
- width=90
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Read rate"
- }
- }
-}
composite {
object {
x=10
@@ -685,3 +494,188 @@ composite {
}
}
}
+text {
+ object {
+ x=64
+ y=705
+ width=130
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Current point"
+ align="horiz. right"
+}
+"text update" {
+ object {
+ x=199
+ y=706
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSCurrentPoint"
+ clr=54
+ bclr=4
+ }
+ limits {
+ }
+}
+menu {
+ object {
+ x=199
+ y=730
+ width=80
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.SCAN"
+ clr=14
+ bclr=51
+ }
+}
+"message button" {
+ object {
+ x=284
+ y=730
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.PROC"
+ clr=14
+ bclr=51
+ }
+ label="Read"
+ press_msg="1"
+}
+text {
+ object {
+ x=104
+ y=730
+ width=90
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Read rate"
+ align="horiz. right"
+}
+"text entry" {
+ object {
+ x=199
+ y=681
+ width=60
+ height=19
+ }
+ control {
+ chan="$(P)$(R)TS:TSNumPoints"
+ clr=14
+ bclr=51
+ }
+ limits {
+ }
+}
+text {
+ object {
+ x=34
+ y=680
+ width=160
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Number of points"
+ align="horiz. right"
+}
+"message button" {
+ object {
+ x=104
+ y=655
+ width=90
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Erase/Start"
+ press_msg="1"
+}
+"message button" {
+ object {
+ x=199
+ y=655
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Stop"
+ press_msg="2"
+}
+"text update" {
+ object {
+ x=264
+ y=656
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSAcquiring"
+ clr=54
+ bclr=12
+ }
+ clrmod="alarm"
+ format="string"
+ limits {
+ }
+}
+text {
+ object {
+ x=29
+ y=655
+ width=70
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Acquire"
+}
+text {
+ object {
+ x=154
+ y=755
+ width=40
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="More"
+ align="horiz. right"
+}
+"related display" {
+ object {
+ x=199
+ y=755
+ width=69
+ height=20
+ }
+ display[0] {
+ label="Time series control"
+ name="NDPluginTimeSeries.adl"
+ args="P=$(P),R=$(R)TS:"
+ }
+ clr=14
+ bclr=4
+ label="More"
+}
From a50b13499676847fed0193a62033597c352cd632 Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Sun, 24 Jun 2018 08:36:56 -0500
Subject: [PATCH 07/20] Changed to use time series controls from
NDPluginTimeSeries
---
ADApp/op/adl/NDStats.adl | 742 +++++++++++++++++++++------------------
1 file changed, 401 insertions(+), 341 deletions(-)
diff --git a/ADApp/op/adl/NDStats.adl b/ADApp/op/adl/NDStats.adl
index aa3dbc9f1..10ae629ec 100755
--- a/ADApp/op/adl/NDStats.adl
+++ b/ADApp/op/adl/NDStats.adl
@@ -1,6 +1,6 @@
file {
- name="/home/epics/devel/areaDetector-3-3/ADCore/ADApp/op/adl/NDStats.adl"
+ name="/home/epics/devel/areaDetector/ADCore/ADApp/op/adl/NDStats.adl"
version=030109
}
display {
@@ -8,7 +8,7 @@ display {
x=174
y=128
width=1120
- height=700
+ height=675
}
clr=14
bclr=4
@@ -559,201 +559,6 @@ text {
textix="Plot"
align="horiz. right"
}
-rectangle {
- object {
- x=875
- y=570
- width=120
- height=21
- }
- "basic attribute" {
- clr=2
- }
-}
-rectangle {
- object {
- x=755
- y=565
- width=360
- height=130
- }
- "basic attribute" {
- clr=14
- fill="outline"
- }
-}
-text {
- object {
- x=880
- y=570
- width=110
- height=20
- }
- "basic attribute" {
- clr=54
- }
- textix="Time Series"
- align="horiz. centered"
-}
-text {
- object {
- x=816
- y=647
- width=130
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Current point"
- align="horiz. right"
-}
-"text update" {
- object {
- x=951
- y=648
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSCurrentPoint"
- clr=54
- bclr=4
- }
- limits {
- }
-}
-menu {
- object {
- x=951
- y=673
- width=80
- height=18
- }
- control {
- chan="$(P)$(R)TSRead.SCAN"
- clr=14
- bclr=51
- }
-}
-"message button" {
- object {
- x=1036
- y=672
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Read"
- press_msg="3"
-}
-text {
- object {
- x=856
- y=672
- width=90
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Read rate"
- align="horiz. right"
-}
-"message button" {
- object {
- x=778
- y=597
- width=90
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Erase/Start"
- press_msg="0"
-}
-"message button" {
- object {
- x=873
- y=597
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Stop"
- press_msg="2"
-}
-"message button" {
- object {
- x=938
- y=597
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)TSControl"
- clr=14
- bclr=51
- }
- label="Start"
- press_msg="1"
-}
-"text update" {
- object {
- x=1003
- y=598
- width=90
- height=18
- }
- monitor {
- chan="$(P)$(R)TSAcquiring"
- clr=54
- bclr=12
- }
- clrmod="alarm"
- format="string"
- limits {
- }
-}
-"text entry" {
- object {
- x=951
- y=623
- width=60
- height=19
- }
- control {
- chan="$(P)$(R)TSNumPoints"
- clr=14
- bclr=51
- }
- limits {
- }
-}
-text {
- object {
- x=786
- y=622
- width=160
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Number of points"
- align="horiz. right"
-}
text {
object {
x=405
@@ -1048,48 +853,48 @@ text {
}
display[1] {
label="Net"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSNet"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSNet"
}
display[2] {
label="Min"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMinValue"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMinValue"
}
display[3] {
label="Min X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMinX"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMinX"
}
display[4] {
label="Min Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMinY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMinY"
}
display[5] {
label="Max"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMaxValue"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMaxValue"
}
display[6] {
label="Max X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMaxX"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMaxX"
}
display[7] {
label="Max Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMaxY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMaxY"
}
display[8] {
label="Mean"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSMeanValue"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSMeanValue"
}
display[9] {
label="Sigma"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSigma"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSigma"
}
display[10] {
label="All"
@@ -1731,63 +1536,63 @@ text {
}
display[0] {
label="Total"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSCentroidTotal"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSCentroidTotal"
}
display[1] {
label="Centroid X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSCentroidY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSCentroidY"
}
display[2] {
label="Centroid Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSCentroidY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSCentroidY"
}
display[3] {
label="Sigma X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSigmaX"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSigmaX"
}
display[4] {
label="Sigma Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSigmaY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSigmaY"
}
display[5] {
label="Skewness X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSkewX"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSkewX"
}
display[6] {
label="Skewness Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSkewY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSkewY"
}
display[7] {
label="Kurtosis X"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSKurtosisX"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSKurtosisX"
}
display[8] {
label="Kurtosis Y"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSKurtosisY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSKurtosisY"
}
display[9] {
label="Sigma XY"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSSigmaXY"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSSigmaXY"
}
display[10] {
label="Eccentricity"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSEccentricity"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSEccentricity"
}
display[11] {
label="Orientation"
- name="NDTimeSeries.adl"
- args="P=$(P),R=$(R),PLT=TSOrientation"
+ name="NDStatsTimeSeriesPlot.adl"
+ args="P=$(P),R=$(R)TS:,RN=$(R)TSOrientation"
}
display[12] {
label="All"
@@ -1866,108 +1671,6 @@ text {
textix="Orientation"
align="horiz. right"
}
-rectangle {
- object {
- x=882
- y=482
- width=107
- height=21
- }
- "basic attribute" {
- clr=2
- }
-}
-text {
- object {
- x=910
- y=482
- width=50
- height=20
- }
- "basic attribute" {
- clr=54
- }
- textix="Reset"
- align="horiz. centered"
-}
-text {
- object {
- x=890
- y=509
- width=50
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Reset"
- align="horiz. right"
-}
-rectangle {
- object {
- x=755
- y=480
- width=360
- height=80
- }
- "basic attribute" {
- clr=14
- fill="outline"
- }
-}
-"related display" {
- object {
- x=951
- y=534
- width=60
- height=20
- }
- display[0] {
- label="Reset"
- name="yySseq_full.adl"
- args="P=$(P),S=$(R)Reset"
- }
- display[1] {
- label="Reset1"
- name="yySseq_full.adl"
- args="P=$(P),S=$(R)Reset1"
- }
- display[2] {
- label="Reset2"
- name="yySseq_full.adl"
- args="P=$(P),S=$(R)Reset2"
- }
- clr=14
- bclr=51
-}
-text {
- object {
- x=850
- y=534
- width=90
- height=20
- }
- "basic attribute" {
- clr=14
- }
- textix="Configure"
- align="horiz. right"
-}
-"message button" {
- object {
- x=951
- y=509
- width=60
- height=20
- }
- control {
- chan="$(P)$(R)Reset.PROC"
- clr=14
- bclr=51
- }
- label="Reset"
- press_msg="1"
-}
"text update" {
object {
x=951
@@ -2080,3 +1783,360 @@ text {
textix="Plot"
align="horiz. right"
}
+composite {
+ object {
+ x=390
+ y=590
+ width=360
+ height=80
+ }
+ "composite name"=""
+ children {
+ rectangle {
+ object {
+ x=517
+ y=592
+ width=107
+ height=21
+ }
+ "basic attribute" {
+ clr=2
+ }
+ }
+ text {
+ object {
+ x=545
+ y=592
+ width=50
+ height=20
+ }
+ "basic attribute" {
+ clr=54
+ }
+ textix="Reset"
+ align="horiz. centered"
+ }
+ text {
+ object {
+ x=525
+ y=619
+ width=50
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Reset"
+ align="horiz. right"
+ }
+ rectangle {
+ object {
+ x=390
+ y=590
+ width=360
+ height=80
+ }
+ "basic attribute" {
+ clr=14
+ fill="outline"
+ }
+ }
+ "related display" {
+ object {
+ x=586
+ y=644
+ width=60
+ height=20
+ }
+ display[0] {
+ label="Reset"
+ name="yySseq_full.adl"
+ args="P=$(P),S=$(R)Reset"
+ }
+ display[1] {
+ label="Reset1"
+ name="yySseq_full.adl"
+ args="P=$(P),S=$(R)Reset1"
+ }
+ display[2] {
+ label="Reset2"
+ name="yySseq_full.adl"
+ args="P=$(P),S=$(R)Reset2"
+ }
+ clr=14
+ bclr=51
+ }
+ text {
+ object {
+ x=485
+ y=644
+ width=90
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Configure"
+ align="horiz. right"
+ }
+ "message button" {
+ object {
+ x=586
+ y=619
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)Reset.PROC"
+ clr=14
+ bclr=51
+ }
+ label="Reset"
+ press_msg="1"
+ }
+ }
+}
+composite {
+ object {
+ x=755
+ y=480
+ width=360
+ height=155
+ }
+ "composite name"=""
+ children {
+ rectangle {
+ object {
+ x=875
+ y=485
+ width=120
+ height=21
+ }
+ "basic attribute" {
+ clr=2
+ }
+ }
+ rectangle {
+ object {
+ x=755
+ y=480
+ width=360
+ height=155
+ }
+ "basic attribute" {
+ clr=14
+ fill="outline"
+ }
+ }
+ text {
+ object {
+ x=880
+ y=485
+ width=110
+ height=20
+ }
+ "basic attribute" {
+ clr=54
+ }
+ textix="Time Series"
+ align="horiz. centered"
+ }
+ text {
+ object {
+ x=816
+ y=562
+ width=130
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Current point"
+ align="horiz. right"
+ }
+ "text update" {
+ object {
+ x=951
+ y=563
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSCurrentPoint"
+ clr=54
+ bclr=4
+ }
+ limits {
+ }
+ }
+ menu {
+ object {
+ x=931
+ y=587
+ width=100
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.SCAN"
+ clr=14
+ bclr=51
+ }
+ }
+ "message button" {
+ object {
+ x=1036
+ y=587
+ width=70
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSRead.PROC"
+ clr=14
+ bclr=51
+ }
+ label="Read"
+ press_msg="1"
+ }
+ text {
+ object {
+ x=836
+ y=587
+ width=90
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Read rate"
+ align="horiz. right"
+ }
+ "text entry" {
+ object {
+ x=951
+ y=538
+ width=60
+ height=19
+ }
+ control {
+ chan="$(P)$(R)TS:TSNumPoints"
+ clr=14
+ bclr=51
+ }
+ limits {
+ }
+ }
+ text {
+ object {
+ x=786
+ y=537
+ width=160
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Number of points"
+ align="horiz. right"
+ }
+ "message button" {
+ object {
+ x=856
+ y=512
+ width=90
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Erase/Start"
+ press_msg="1"
+ }
+ "message button" {
+ object {
+ x=951
+ y=512
+ width=60
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquire"
+ clr=14
+ bclr=51
+ }
+ label="Stop"
+ press_msg="2"
+ }
+ "text update" {
+ object {
+ x=1016
+ y=513
+ width=90
+ height=18
+ }
+ monitor {
+ chan="$(P)$(R)TS:TSAcquiring"
+ clr=54
+ bclr=12
+ }
+ clrmod="alarm"
+ format="string"
+ limits {
+ }
+ }
+ text {
+ object {
+ x=781
+ y=512
+ width=70
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="Acquire"
+ }
+ "related display" {
+ object {
+ x=1036
+ y=612
+ width=70
+ height=20
+ }
+ display[0] {
+ label="Time series control"
+ name="NDPluginTimeSeries.adl"
+ args="P=$(P),R=$(R)TS:"
+ }
+ clr=14
+ bclr=51
+ label="More"
+ }
+ text {
+ object {
+ x=816
+ y=611
+ width=110
+ height=20
+ }
+ "basic attribute" {
+ clr=14
+ }
+ textix="AcquireMode"
+ }
+ menu {
+ object {
+ x=931
+ y=611
+ width=100
+ height=20
+ }
+ control {
+ chan="$(P)$(R)TS:TSAcquireMode"
+ clr=14
+ bclr=51
+ }
+ }
+ }
+}
From f0adc4ea0c87ba30ae6cf68e991def3434042e05 Mon Sep 17 00:00:00 2001
From: Mark Rivers
Date: Sun, 24 Jun 2018 08:37:54 -0500
Subject: [PATCH 08/20] Changed to use time series controls from
NDPluginTimeSeries
---
ADApp/op/edl/autoconvert/NDStats.edl | 914 ++++---
.../autoconvert/NDStatsTimeSeriesBasicAll.edl | 408 +--
.../NDStatsTimeSeriesCentroidAll.edl | 497 ++--
ADApp/op/opi/autoconvert/NDStats.opi | 2367 +++++++++--------
.../autoconvert/NDStatsTimeSeriesBasicAll.opi | 2244 ++++++++--------
.../NDStatsTimeSeriesCentroidAll.opi | 952 ++++---
ADApp/op/ui/autoconvert/NDStats.ui | 2302 ++++++++--------
.../autoconvert/NDStatsTimeSeriesBasicAll.ui | 1145 ++++----
.../NDStatsTimeSeriesCentroidAll.ui | 1208 +++++----
9 files changed, 6327 insertions(+), 5710 deletions(-)
diff --git a/ADApp/op/edl/autoconvert/NDStats.edl b/ADApp/op/edl/autoconvert/NDStats.edl
index bc81da677..58b3eb6d6 100644
--- a/ADApp/op/edl/autoconvert/NDStats.edl
+++ b/ADApp/op/edl/autoconvert/NDStats.edl
@@ -6,7 +6,7 @@ release 0
x 174
y 128
w 1120
-h 700
+h 675
font "helvetica-medium-r-18.0"
ctlFont "helvetica-medium-r-8.0"
btnFont "helvetica-medium-r-18.0"
@@ -644,188 +644,6 @@ value {
}
endObjectProperties
-# (Rectangle)
-object activeRectangleClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 875
-y 570
-w 119
-h 20
-lineColor index 2
-fill
-fillColor index 2
-lineWidth 0
-endObjectProperties
-
-# (Rectangle)
-object activeRectangleClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 755
-y 565
-w 360
-h 130
-lineColor index 14
-fillColor index 14
-lineWidth 0
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 880
-y 570
-w 110
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "center"
-fgColor index 54
-useDisplayBg
-value {
- "Time Series"
-}
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 816
-y 647
-w 130
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Current point"
-}
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 951
-y 648
-w 90
-h 18
-controlPv "$(P)$(R)TSCurrentPoint"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-bgColor index 4
-autoHeight
-format decimal
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 856
-y 672
-w 90
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Read rate"
-}
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 1003
-y 598
-w 90
-h 18
-controlPv "$(P)$(R)TSAcquiring"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-fgAlarm
-bgColor index 12
-autoHeight
-format "string"
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 951
-y 623
-w 60
-h 19
-controlPv "$(P)$(R)TSNumPoints"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 14
-bgColor index 51
-editable
-autoHeight
-format decimal
-motifWidget
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 786
-y 622
-w 160
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Number of points"
-}
-endObjectProperties
-
# (Static Text)
object activeXTextClass
beginObjectProperties
@@ -2274,94 +2092,6 @@ value {
}
endObjectProperties
-# (Rectangle)
-object activeRectangleClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 882
-y 482
-w 106
-h 20
-lineColor index 2
-fill
-fillColor index 2
-lineWidth 0
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 910
-y 482
-w 50
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "center"
-fgColor index 54
-useDisplayBg
-value {
- "Reset"
-}
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 890
-y 509
-w 50
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Reset"
-}
-endObjectProperties
-
-# (Rectangle)
-object activeRectangleClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 755
-y 480
-w 360
-h 80
-lineColor index 14
-fillColor index 14
-lineWidth 0
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 850
-y 534
-w 90
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Configure"
-}
-endObjectProperties
-
# (Text Control)
object activeXTextDspClass
beginObjectProperties
@@ -2510,188 +2240,412 @@ value {
}
endObjectProperties
-# (Menu Button)
-object activeMenuButtonClass
+# (Group)
+object activeGroupClass
beginObjectProperties
major 4
minor 0
release 0
-x 584
-y 72
-w 60
-h 18
+x 390
+y 590
+w 360
+h 80
+
+beginGroup
+
+
+# (Rectangle)
+object activeRectangleClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 517
+y 592
+w 106
+h 20
+lineColor index 2
+fill
+fillColor index 2
+lineWidth 0
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 545
+y 592
+w 50
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "center"
+fgColor index 54
+useDisplayBg
+value {
+ "Reset"
+}
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 525
+y 619
+w 50
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
fgColor index 14
-bgColor index 51
-inconsistentColor index 12
-topShadowColor index 2
-botShadowColor index 12
-controlPv "$(P)$(R)ComputeStatistics"
-indicatorPv "$(P)$(R)ComputeStatistics"
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "Reset"
+}
endObjectProperties
-# (Menu Button)
-object activeMenuButtonClass
+# (Rectangle)
+object activeRectangleClass
beginObjectProperties
major 4
minor 0
release 0
-x 949
-y 72
-w 60
+x 390
+y 590
+w 360
+h 80
+lineColor index 14
+fillColor index 14
+lineWidth 0
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 485
+y 644
+w 90
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Configure"
+}
+endObjectProperties
+
+endGroup
+
+endObjectProperties
+
+
+# (Group)
+object activeGroupClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 755
+y 480
+w 360
+h 155
+
+beginGroup
+
+
+# (Rectangle)
+object activeRectangleClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 875
+y 485
+w 119
+h 20
+lineColor index 2
+fill
+fillColor index 2
+lineWidth 0
+endObjectProperties
+
+# (Rectangle)
+object activeRectangleClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 755
+y 480
+w 360
+h 155
+lineColor index 14
+fillColor index 14
+lineWidth 0
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 880
+y 485
+w 110
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "center"
+fgColor index 54
+useDisplayBg
+value {
+ "Time Series"
+}
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 816
+y 562
+w 130
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Current point"
+}
+endObjectProperties
+
+# (Text Control)
+object activeXTextDspClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 951
+y 563
+w 90
h 18
+controlPv "$(P)$(R)TS:TSCurrentPoint"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+bgColor index 4
+autoHeight
+format decimal
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 836
+y 587
+w 90
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
fgColor index 14
-bgColor index 51
-inconsistentColor index 12
-topShadowColor index 2
-botShadowColor index 12
-controlPv "$(P)$(R)ComputeProfiles"
-indicatorPv "$(P)$(R)ComputeProfiles"
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "Read rate"
+}
endObjectProperties
-# (Related Display)
-object relatedDisplayClass
+# (Text Control)
+object activeXTextDspClass
beginObjectProperties
major 4
minor 0
release 0
x 951
-y 213
+y 538
w 60
-h 20
+h 19
+controlPv "$(P)$(R)TS:TSNumPoints"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
fgColor index 14
bgColor index 51
-topShadowColor index 2
-botShadowColor index 12
-font "helvetica-medium-r-10.0"
-icon
-numPvs 0
-numDsps 0
-displayFileName {
-}
-menuLabel {
+editable
+autoHeight
+format decimal
+motifWidget
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 786
+y 537
+w 160
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Number of points"
}
endObjectProperties
-# (Menu Button)
-object activeMenuButtonClass
+# (Text Control)
+object activeXTextDspClass
beginObjectProperties
major 4
minor 0
release 0
-x 951
-y 673
-w 80
+x 1016
+y 513
+w 90
h 18
+controlPv "$(P)$(R)TS:TSAcquiring"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+fgAlarm
+bgColor index 12
+autoHeight
+format "string"
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 781
+y 512
+w 70
+h 20
+font "helvetica-medium-r-8.0"
fgColor index 14
-bgColor index 51
-inconsistentColor index 12
-topShadowColor index 2
-botShadowColor index 12
-controlPv "$(P)$(R)TSRead.SCAN"
-indicatorPv "$(P)$(R)TSRead.SCAN"
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "Acquire"
+}
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Static Text)
+object activeXTextClass
beginObjectProperties
major 4
minor 0
release 0
-x 1036
-y 672
-w 60
+x 816
+y 611
+w 110
h 20
+font "helvetica-medium-r-8.0"
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "3"
-releaseValue
-onLabel "Read"
-offLabel "Read"
-3d
-useEnumNumeric
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "AcquireMode"
+}
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+endGroup
+
+endObjectProperties
+
+
+# (Menu Button)
+object activeMenuButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 778
-y 597
-w 90
-h 20
+x 584
+y 72
+w 60
+h 18
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "0"
-releaseValue
-onLabel "Erase/Start"
-offLabel "Erase/Start"
-3d
-useEnumNumeric
+bgColor index 51
+inconsistentColor index 12
+topShadowColor index 2
+botShadowColor index 12
+controlPv "$(P)$(R)ComputeStatistics"
+indicatorPv "$(P)$(R)ComputeStatistics"
font "helvetica-medium-r-10.0"
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Menu Button)
+object activeMenuButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 873
-y 597
+x 949
+y 72
w 60
-h 20
+h 18
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "2"
-releaseValue
-onLabel "Stop"
-offLabel "Stop"
-3d
-useEnumNumeric
+bgColor index 51
+inconsistentColor index 12
+topShadowColor index 2
+botShadowColor index 12
+controlPv "$(P)$(R)ComputeProfiles"
+indicatorPv "$(P)$(R)ComputeProfiles"
font "helvetica-medium-r-10.0"
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Related Display)
+object relatedDisplayClass
beginObjectProperties
major 4
minor 0
release 0
-x 938
-y 597
+x 951
+y 213
w 60
h 20
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "1"
-releaseValue
-onLabel "Start"
-offLabel "Start"
-3d
-useEnumNumeric
+bgColor index 51
+topShadowColor index 2
+botShadowColor index 12
font "helvetica-medium-r-10.0"
+icon
+numPvs 0
+numDsps 0
+displayFileName {
+}
+menuLabel {
+}
endObjectProperties
# (Related Display)
@@ -2789,7 +2743,44 @@ major 4
minor 0
release 0
x 951
-y 534
+y 449
+w 60
+h 20
+fgColor index 14
+bgColor index 51
+topShadowColor index 2
+botShadowColor index 12
+font "helvetica-medium-r-10.0"
+icon
+numPvs 0
+numDsps 0
+displayFileName {
+}
+menuLabel {
+}
+endObjectProperties
+# (Group)
+object activeGroupClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 390
+y 590
+w 360
+h 80
+
+beginGroup
+
+
+# (Related Display)
+object relatedDisplayClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 586
+y 644
w 60
h 20
fgColor index 14
@@ -2812,8 +2803,8 @@ beginObjectProperties
major 4
minor 0
release 0
-x 951
-y 509
+x 586
+y 619
w 60
h 20
fgColor index 14
@@ -2831,22 +2822,136 @@ useEnumNumeric
font "helvetica-medium-r-10.0"
endObjectProperties
-# (Related Display)
-object relatedDisplayClass
+endGroup
+
+endObjectProperties
+
+# (Group)
+object activeGroupClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 755
+y 480
+w 360
+h 155
+
+beginGroup
+
+
+# (Menu Button)
+object activeMenuButtonClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 931
+y 587
+w 100
+h 20
+fgColor index 14
+bgColor index 51
+inconsistentColor index 12
+topShadowColor index 2
+botShadowColor index 12
+controlPv "$(P)$(R)TS:TSRead.SCAN"
+indicatorPv "$(P)$(R)TS:TSRead.SCAN"
+font "helvetica-medium-r-10.0"
+endObjectProperties
+
+# (Message Button)
+object activeMessageButtonClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 1036
+y 587
+w 70
+h 20
+fgColor index 14
+onColor index 51
+offColor index 51
+topShadowColor index 0
+botShadowColor index 14
+controlPv "$(P)$(R)TS:TSRead.PROC"
+pressValue "1"
+releaseValue
+onLabel "Read"
+offLabel "Read"
+3d
+useEnumNumeric
+font "helvetica-medium-r-10.0"
+endObjectProperties
+
+# (Message Button)
+object activeMessageButtonClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 856
+y 512
+w 90
+h 20
+fgColor index 14
+onColor index 51
+offColor index 51
+topShadowColor index 0
+botShadowColor index 14
+controlPv "$(P)$(R)TS:TSAcquire"
+pressValue "1"
+releaseValue
+onLabel "Erase/Start"
+offLabel "Erase/Start"
+3d
+useEnumNumeric
+font "helvetica-medium-r-10.0"
+endObjectProperties
+
+# (Message Button)
+object activeMessageButtonClass
beginObjectProperties
major 4
minor 0
release 0
x 951
-y 449
+y 512
w 60
h 20
fgColor index 14
+onColor index 51
+offColor index 51
+topShadowColor index 0
+botShadowColor index 14
+controlPv "$(P)$(R)TS:TSAcquire"
+pressValue "2"
+releaseValue
+onLabel "Stop"
+offLabel "Stop"
+3d
+useEnumNumeric
+font "helvetica-medium-r-10.0"
+endObjectProperties
+
+# (Related Display)
+object relatedDisplayClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 1036
+y 612
+w 70
+h 20
+fgColor index 14
bgColor index 51
topShadowColor index 2
botShadowColor index 12
font "helvetica-medium-r-10.0"
icon
+buttonLabel "More"
numPvs 0
numDsps 0
displayFileName {
@@ -2855,3 +2960,28 @@ menuLabel {
}
endObjectProperties
+# (Menu Button)
+object activeMenuButtonClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 931
+y 611
+w 100
+h 20
+fgColor index 14
+bgColor index 51
+inconsistentColor index 12
+topShadowColor index 2
+botShadowColor index 12
+controlPv "$(P)$(R)TS:TSAcquireMode"
+indicatorPv "$(P)$(R)TS:TSAcquireMode"
+font "helvetica-medium-r-10.0"
+endObjectProperties
+
+endGroup
+
+endObjectProperties
+
+
diff --git a/ADApp/op/edl/autoconvert/NDStatsTimeSeriesBasicAll.edl b/ADApp/op/edl/autoconvert/NDStatsTimeSeriesBasicAll.edl
index bf1d9ef1f..ccf4e17f1 100644
--- a/ADApp/op/edl/autoconvert/NDStatsTimeSeriesBasicAll.edl
+++ b/ADApp/op/edl/autoconvert/NDStatsTimeSeriesBasicAll.edl
@@ -270,137 +270,6 @@ endGroup
endObjectProperties
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 248
-y 480
-w 90
-h 18
-controlPv "$(P)$(R)TSAcquiring"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-fgAlarm
-bgColor index 12
-autoHeight
-format "string"
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 188
-y 505
-w 60
-h 19
-controlPv "$(P)$(R)TSNumPoints"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 14
-bgColor index 51
-editable
-autoHeight
-format decimal
-motifWidget
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 23
-y 504
-w 160
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Number of points"
-}
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 23
-y 529
-w 130
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Current point"
-}
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 158
-y 530
-w 90
-h 18
-controlPv "$(P)$(R)TSCurrentPoint"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-bgColor index 4
-autoHeight
-format decimal
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 23
-y 554
-w 90
-h 20
-font "helvetica-medium-r-8.0"
-fgColor index 14
-useDisplayBg
-value {
- "Read rate"
-}
-endObjectProperties
-
# (X-Y Graph)
object xyGraphClass
beginObjectProperties
@@ -688,6 +557,175 @@ plotColor {
0 index 27
}
endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 46
+y 531
+w 130
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Current point"
+}
+endObjectProperties
+
+# (Text Control)
+object activeXTextDspClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 181
+y 532
+w 90
+h 18
+controlPv "$(P)$(R)TS:TSCurrentPoint"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+bgColor index 4
+autoHeight
+format decimal
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 86
+y 556
+w 90
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Read rate"
+}
+endObjectProperties
+
+# (Text Control)
+object activeXTextDspClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 181
+y 507
+w 60
+h 19
+controlPv "$(P)$(R)TS:TSNumPoints"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 14
+bgColor index 51
+editable
+autoHeight
+format decimal
+motifWidget
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 16
+y 506
+w 160
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Number of points"
+}
+endObjectProperties
+
+# (Text Control)
+object activeXTextDspClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 246
+y 482
+w 90
+h 18
+controlPv "$(P)$(R)TS:TSAcquiring"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+fgAlarm
+bgColor index 12
+autoHeight
+format "string"
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 11
+y 481
+w 70
+h 20
+font "helvetica-medium-r-8.0"
+fgColor index 14
+useDisplayBg
+value {
+ "Acquire"
+}
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 136
+y 581
+w 40
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "More"
+}
+endObjectProperties
# (Group)
object activeGroupClass
beginObjectProperties
@@ -707,28 +745,23 @@ endGroup
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Menu Button)
+object activeMenuButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 23
-y 479
-w 90
+x 181
+y 556
+w 80
h 20
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "0"
-releaseValue
-onLabel "Erase/Start"
-offLabel "Erase/Start"
-3d
-useEnumNumeric
+bgColor index 51
+inconsistentColor index 12
+topShadowColor index 2
+botShadowColor index 12
+controlPv "$(P)$(R)TS:TSRead.SCAN"
+indicatorPv "$(P)$(R)TS:TSRead.SCAN"
font "helvetica-medium-r-10.0"
endObjectProperties
@@ -738,8 +771,8 @@ beginObjectProperties
major 4
minor 0
release 0
-x 118
-y 479
+x 266
+y 556
w 60
h 20
fgColor index 14
@@ -747,11 +780,11 @@ onColor index 51
offColor index 51
topShadowColor index 0
botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "2"
+controlPv "$(P)$(R)TS:TSRead.PROC"
+pressValue "1"
releaseValue
-onLabel "Stop"
-offLabel "Stop"
+onLabel "Read"
+offLabel "Read"
3d
useEnumNumeric
font "helvetica-medium-r-10.0"
@@ -763,53 +796,33 @@ beginObjectProperties
major 4
minor 0
release 0
-x 183
-y 479
-w 60
+x 86
+y 481
+w 90
h 20
fgColor index 14
onColor index 51
offColor index 51
topShadowColor index 0
botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
+controlPv "$(P)$(R)TS:TSAcquire"
pressValue "1"
releaseValue
-onLabel "Start"
-offLabel "Start"
+onLabel "Erase/Start"
+offLabel "Erase/Start"
3d
useEnumNumeric
font "helvetica-medium-r-10.0"
endObjectProperties
-# (Menu Button)
-object activeMenuButtonClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 118
-y 555
-w 80
-h 18
-fgColor index 14
-bgColor index 51
-inconsistentColor index 12
-topShadowColor index 2
-botShadowColor index 12
-controlPv "$(P)$(R)TSRead.SCAN"
-indicatorPv "$(P)$(R)TSRead.SCAN"
-font "helvetica-medium-r-10.0"
-endObjectProperties
-
# (Message Button)
object activeMessageButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 203
-y 554
+x 181
+y 481
w 60
h 20
fgColor index 14
@@ -817,13 +830,38 @@ onColor index 51
offColor index 51
topShadowColor index 0
botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "3"
+controlPv "$(P)$(R)TS:TSAcquire"
+pressValue "2"
releaseValue
-onLabel "Read"
-offLabel "Read"
+onLabel "Stop"
+offLabel "Stop"
3d
useEnumNumeric
font "helvetica-medium-r-10.0"
endObjectProperties
+# (Related Display)
+object relatedDisplayClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 181
+y 581
+w 69
+h 20
+fgColor index 14
+bgColor index 4
+topShadowColor index 2
+botShadowColor index 12
+font "helvetica-medium-r-10.0"
+icon
+buttonLabel "More"
+numPvs 0
+numDsps 0
+displayFileName {
+}
+menuLabel {
+}
+endObjectProperties
+
diff --git a/ADApp/op/edl/autoconvert/NDStatsTimeSeriesCentroidAll.edl b/ADApp/op/edl/autoconvert/NDStatsTimeSeriesCentroidAll.edl
index f13730a6d..792abd2c7 100644
--- a/ADApp/op/edl/autoconvert/NDStatsTimeSeriesCentroidAll.edl
+++ b/ADApp/op/edl/autoconvert/NDStatsTimeSeriesCentroidAll.edl
@@ -6,7 +6,7 @@ release 0
x 305
y 202
w 1435
-h 755
+h 780
font "helvetica-medium-r-18.0"
ctlFont "helvetica-medium-r-8.0"
btnFont "helvetica-medium-r-18.0"
@@ -59,194 +59,6 @@ value {
}
endObjectProperties
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 235
-y 656
-w 90
-h 18
-controlPv "$(P)$(R)TSAcquiring"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-fgAlarm
-bgColor index 12
-autoHeight
-format "string"
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Group)
-object activeGroupClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 680
-w 225
-h 20
-
-beginGroup
-
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 175
-y 681
-w 60
-h 19
-controlPv "$(P)$(R)TSNumPoints"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 14
-bgColor index 51
-editable
-autoHeight
-format decimal
-motifWidget
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 680
-w 160
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Number of points"
-}
-endObjectProperties
-
-endGroup
-
-endObjectProperties
-
-
-# (Group)
-object activeGroupClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 705
-w 225
-h 20
-
-beginGroup
-
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 705
-w 130
-h 20
-font "helvetica-medium-r-8.0"
-fontAlign "right"
-fgColor index 14
-useDisplayBg
-value {
- "Current point"
-}
-endObjectProperties
-
-# (Text Control)
-object activeXTextDspClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 145
-y 706
-w 90
-h 18
-controlPv "$(P)$(R)TSCurrentPoint"
-font "helvetica-medium-r-8.0"
-smartRefresh
-fastUpdate
-fgColor index 54
-bgColor index 4
-autoHeight
-format decimal
-nullColor index 32
-useHexPrefix
-objType "controls"
-newPos
-endObjectProperties
-
-endGroup
-
-endObjectProperties
-
-
-# (Group)
-object activeGroupClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 730
-w 240
-h 20
-
-beginGroup
-
-
-# (Static Text)
-object activeXTextClass
-beginObjectProperties
-major 4
-minor 0
-release 0
-x 10
-y 730
-w 90
-h 20
-font "helvetica-medium-r-8.0"
-fgColor index 14
-useDisplayBg
-value {
- "Read rate"
-}
-endObjectProperties
-
-endGroup
-
-endObjectProperties
-
-
# (Group)
object activeGroupClass
beginObjectProperties
@@ -842,116 +654,174 @@ endGroup
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Static Text)
+object activeXTextClass
beginObjectProperties
major 4
minor 0
release 0
-x 10
-y 655
-w 90
+x 64
+y 705
+w 130
h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "0"
-releaseValue
-onLabel "Erase/Start"
-offLabel "Erase/Start"
-3d
-useEnumNumeric
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "Current point"
+}
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Text Control)
+object activeXTextDspClass
beginObjectProperties
major 4
minor 0
release 0
-x 105
-y 655
-w 60
+x 199
+y 706
+w 90
+h 18
+controlPv "$(P)$(R)TS:TSCurrentPoint"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+bgColor index 4
+autoHeight
+format decimal
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
+endObjectProperties
+
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 104
+y 730
+w 90
h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "2"
-releaseValue
-onLabel "Stop"
-offLabel "Stop"
-3d
-useEnumNumeric
-font "helvetica-medium-r-10.0"
+useDisplayBg
+value {
+ "Read rate"
+}
endObjectProperties
-# (Message Button)
-object activeMessageButtonClass
+# (Text Control)
+object activeXTextDspClass
beginObjectProperties
major 4
minor 0
release 0
-x 170
-y 655
+x 199
+y 681
w 60
-h 20
+h 19
+controlPv "$(P)$(R)TS:TSNumPoints"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
fgColor index 14
-onColor index 51
-offColor index 51
-topShadowColor index 0
-botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "1"
-releaseValue
-onLabel "Start"
-offLabel "Start"
-3d
-useEnumNumeric
-font "helvetica-medium-r-10.0"
+bgColor index 51
+editable
+autoHeight
+format decimal
+motifWidget
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
endObjectProperties
-# (Group)
-object activeGroupClass
+
+# (Static Text)
+object activeXTextClass
beginObjectProperties
major 4
minor 0
release 0
-x 10
+x 34
y 680
-w 225
+w 160
h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "Number of points"
+}
+endObjectProperties
-beginGroup
-
-
-endGroup
-
+# (Text Control)
+object activeXTextDspClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 264
+y 656
+w 90
+h 18
+controlPv "$(P)$(R)TS:TSAcquiring"
+font "helvetica-medium-r-8.0"
+smartRefresh
+fastUpdate
+fgColor index 54
+fgAlarm
+bgColor index 12
+autoHeight
+format "string"
+nullColor index 32
+useHexPrefix
+objType "controls"
+newPos
endObjectProperties
-# (Group)
-object activeGroupClass
+# (Static Text)
+object activeXTextClass
beginObjectProperties
major 4
minor 0
release 0
-x 10
-y 705
-w 225
+x 29
+y 655
+w 70
h 20
-
-beginGroup
-
-
-endGroup
-
+font "helvetica-medium-r-8.0"
+fgColor index 14
+useDisplayBg
+value {
+ "Acquire"
+}
endObjectProperties
+# (Static Text)
+object activeXTextClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 154
+y 755
+w 40
+h 20
+font "helvetica-medium-r-8.0"
+fontAlign "right"
+fgColor index 14
+useDisplayBg
+value {
+ "More"
+}
+endObjectProperties
# (Group)
object activeGroupClass
beginObjectProperties
@@ -959,30 +829,35 @@ major 4
minor 0
release 0
x 10
-y 730
-w 240
-h 20
+y 40
+w 1415
+h 610
beginGroup
+endGroup
+
+endObjectProperties
+
+
# (Menu Button)
object activeMenuButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 105
-y 731
+x 199
+y 730
w 80
-h 18
+h 20
fgColor index 14
bgColor index 51
inconsistentColor index 12
topShadowColor index 2
botShadowColor index 12
-controlPv "$(P)$(R)TSRead.SCAN"
-indicatorPv "$(P)$(R)TSRead.SCAN"
+controlPv "$(P)$(R)TS:TSRead.SCAN"
+indicatorPv "$(P)$(R)TS:TSRead.SCAN"
font "helvetica-medium-r-10.0"
endObjectProperties
@@ -992,7 +867,7 @@ beginObjectProperties
major 4
minor 0
release 0
-x 190
+x 284
y 730
w 60
h 20
@@ -1001,8 +876,8 @@ onColor index 51
offColor index 51
topShadowColor index 0
botShadowColor index 14
-controlPv "$(P)$(R)TSControl"
-pressValue "3"
+controlPv "$(P)$(R)TS:TSRead.PROC"
+pressValue "1"
releaseValue
onLabel "Read"
offLabel "Read"
@@ -1011,26 +886,78 @@ useEnumNumeric
font "helvetica-medium-r-10.0"
endObjectProperties
-endGroup
-
+# (Message Button)
+object activeMessageButtonClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 104
+y 655
+w 90
+h 20
+fgColor index 14
+onColor index 51
+offColor index 51
+topShadowColor index 0
+botShadowColor index 14
+controlPv "$(P)$(R)TS:TSAcquire"
+pressValue "1"
+releaseValue
+onLabel "Erase/Start"
+offLabel "Erase/Start"
+3d
+useEnumNumeric
+font "helvetica-medium-r-10.0"
endObjectProperties
-# (Group)
-object activeGroupClass
+# (Message Button)
+object activeMessageButtonClass
beginObjectProperties
major 4
minor 0
release 0
-x 10
-y 40
-w 1415
-h 610
-
-beginGroup
-
-
-endGroup
-
+x 199
+y 655
+w 60
+h 20
+fgColor index 14
+onColor index 51
+offColor index 51
+topShadowColor index 0
+botShadowColor index 14
+controlPv "$(P)$(R)TS:TSAcquire"
+pressValue "2"
+releaseValue
+onLabel "Stop"
+offLabel "Stop"
+3d
+useEnumNumeric
+font "helvetica-medium-r-10.0"
endObjectProperties
+# (Related Display)
+object relatedDisplayClass
+beginObjectProperties
+major 4
+minor 0
+release 0
+x 199
+y 755
+w 69
+h 20
+fgColor index 14
+bgColor index 4
+topShadowColor index 2
+botShadowColor index 12
+font "helvetica-medium-r-10.0"
+icon
+buttonLabel "More"
+numPvs 0
+numDsps 0
+displayFileName {
+}
+menuLabel {
+}
+endObjectProperties
diff --git a/ADApp/op/opi/autoconvert/NDStats.opi b/ADApp/op/opi/autoconvert/NDStats.opi
index 944999c09..cb5979e31 100644
--- a/ADApp/op/opi/autoconvert/NDStats.opi
+++ b/ADApp/op/opi/autoconvert/NDStats.opi
@@ -14,7 +14,7 @@
5
- 700
+ 675
true
@@ -315,120 +315,6 @@ $(pv_value)
880
45
-
-
- false
- 255
- true
- false
-
-
-
-
-
-
- false
-
-
-
- 0
- 1
- true
-
-
-
- 100.0
-
- Default
-
- false
-
-
-
- false
- 21
- true
-
-
-
- 0
- 0
- Rectangle
-
-
-
-
- true
- true
- false
-
-
- $(pv_name)
-$(pv_value)
- false
- true
- Rectangle
- 120
- 875
- 570
-
-
-
- false
- 255
- true
- false
-
-
-
-
-
-
- false
-
-
-
- 0
- 1
- true
-
-
-
- 0.0
-
- Default
-
- false
-
-
-
- false
- 130
- true
-
-
-
- 0
- 1
- Rectangle
-
-
-
-
- true
- true
- false
-
-
- $(pv_name)
-$(pv_value)
- true
- true
- Rectangle
- 360
- 755
- 565
-
false
@@ -657,47 +543,31 @@ $(pv_value)
882
247
-
+
- false
- 255
- true
- false
-
+
-
-
-
- false
0
1
true
-
-
-
- 100.0
Default
- false
-
+
- false
- 21
- true
-
-
-
- 0
- 0
- Rectangle
-
-
+
+ 555
+
+ true
+
+ Linking Container
+ NDPluginBase.opi
+ 2
true
@@ -705,56 +575,37 @@ $(pv_value)
false
- $(pv_name)
-$(pv_value)
- false
+
true
- Rectangle
- 107
- 882
- 482
+ Linking Container
+ 380
+ 5
+ 40
-
+
- false
- 255
- true
- false
-
+
-
-
-
- false
0
1
true
-
-
-
- 0.0
+ false
Default
- false
- false
80
- true
-
-
-
- 0
- 1
- Rectangle
-
-
+ false
+
+ true
+
+ Grouping Container
true
@@ -762,16 +613,375 @@ $(pv_value)
false
- $(pv_name)
-$(pv_value)
+ false
+
true
true
- Rectangle
+ Grouping Container
360
- 755
- 480
-
-
+ 390
+ 590
+
+
+ false
+ 255
+ true
+ false
+
+
+
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ 100.0
+
+ Default
+
+ false
+
+
+
+ false
+ 21
+ true
+
+
+
+ 0
+ 0
+ Rectangle
+
+
+
+
+ true
+ true
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Rectangle
+ 107
+ 127
+ 2
+
+
+
+ false
+ 255
+ true
+ false
+
+
+
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ 0.0
+
+ Default
+
+ false
+
+
+
+ false
+ 80
+ true
+
+
+
+ 0
+ 1
+ Rectangle
+
+
+
+
+ true
+ true
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ true
+ true
+ Rectangle
+ 360
+ 0
+ 0
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 1
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Reset
+
+ true
+ 1
+ true
+ Label
+ 50
+ false
+ 155
+ 2
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Reset
+
+ true
+ 1
+ true
+ Label
+ 50
+ false
+ 135
+ 29
+
+
+
+
+ yySseq_full.opi
+
+ true
+ $(R)Reset
+
+ 1
+ Reset
+
+
+ yySseq_full.opi
+
+ true
+ $(R)Reset1
+
+ 1
+ Reset1
+
+
+ yySseq_full.opi
+
+ true
+ $(R)Reset2
+
+ 1
+ Reset2
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 6
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Menu Button
+
+
+
+
+ true
+ true
+ false
+
+
+ false
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Menu Button
+ 60
+ 196
+ 54
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Configure
+
+ true
+ 1
+ true
+ Label
+ 90
+ false
+ 95
+ 54
+
+
+
+
+ $(P)$(R)Reset.PROC
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)Reset.PROC
+
+
+
+ true
+ true
+ false
+
+
+
+ Reset
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 60
+ 196
+ 29
+
+
+
@@ -782,20 +992,19 @@ $(pv_value)
0
1
true
+ false
Default
-
- 555
+ 155
+ false
true
- Linking Container
- NDPluginBase.opi
- 2
+ Grouping Container
true
@@ -803,12 +1012,834 @@ $(pv_value)
false
+ false
+ true
true
- Linking Container
- 380
- 5
- 40
+ Grouping Container
+ 360
+ 755
+ 480
+
+
+ false
+ 255
+ true
+ false
+
+
+
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ 100.0
+
+ Default
+
+ false
+
+
+
+ false
+ 21
+ true
+
+
+
+ 0
+ 0
+ Rectangle
+
+
+
+
+ true
+ true
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Rectangle
+ 120
+ 120
+ 5
+
+
+
+ false
+ 255
+ true
+ false
+
+
+
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ 0.0
+
+ Default
+
+ false
+
+
+
+ false
+ 155
+ true
+
+
+
+ 0
+ 1
+ Rectangle
+
+
+
+
+ true
+ true
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ true
+ true
+ Rectangle
+ 360
+ 0
+ 0
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 1
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Time Series
+
+ true
+ 1
+ true
+ Label
+ 110
+ false
+ 125
+ 5
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Current point
+
+ true
+ 1
+ true
+ Label
+ 130
+ false
+ 61
+ 82
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+
+
+ false
+
+
+
+ 1
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)TS:TSCurrentPoint
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 90
+ false
+ 196
+ 83
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+
+
+
+ 6
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Menu Button
+ $(P)$(R)TS:TSRead.SCAN
+
+
+
+ true
+ true
+ false
+
+
+ false
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Menu Button
+ 100
+ 176
+ 107
+
+
+
+
+ $(P)$(R)TS:TSRead.PROC
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSRead.PROC
+
+
+
+ true
+ true
+ false
+
+
+
+ Read
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 70
+ 281
+ 107
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Read rate
+
+ true
+ 1
+ true
+ Label
+ 90
+ false
+ 81
+ 107
+
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 3
+ 1
+
+ true
+
+
+
+ false
+
+
+
+ 1
+ 19
+ 0
+ false
+ Infinity
+ -Infinity
+ false
+ Text Input
+ 0
+ false
+ 0
+ true
+ $(P)$(R)TS:TSNumPoints
+
+ false
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ 0
+ false
+ true
+ false
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Text Input
+ 60
+ 196
+ 58
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Number of points
+
+ true
+ 1
+ true
+ Label
+ 160
+ false
+ 31
+ 57
+
+
+
+
+ $(P)$(R)TS:TSAcquire
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSAcquire
+
+
+
+ true
+ true
+ false
+
+
+
+ Erase/Start
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 90
+ 101
+ 32
+
+
+
+
+ $(P)$(R)TS:TSAcquire
+ 2
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSAcquire
+
+
+
+ true
+ true
+ false
+
+
+
+ Stop
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 60
+ 196
+ 32
+
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ true
+
+
+
+ 4
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)TS:TSAcquiring
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 90
+ false
+ 261
+ 33
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 0
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Acquire
+
+ true
+ 1
+ true
+ Label
+ 70
+ false
+ 26
+ 32
+
+
+
+
+ NDPluginTimeSeries.opi
+
+ true
+ $(R)TS:
+
+ 1
+ Time series control
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+
+
+
+
+ true
+ true
+ false
+
+
+
+ More
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 70
+ 281
+ 132
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 0
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ AcquireMode
+
+ true
+ 1
+ true
+ Label
+ 110
+ false
+ 61
+ 131
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+
+
+
+ 6
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Menu Button
+ $(P)$(R)TS:TSAcquireMode
+
+
+
+ true
+ true
+ false
+
+
+ false
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Menu Button
+ 100
+ 176
+ 131
+
@@ -2134,10 +3165,10 @@ $(pv_value)
-
+
20
- 1
+ 2
Label
@@ -2147,23 +3178,26 @@ $(pv_value)
false
- Time Series
+ Minimum
true
1
true
Label
- 110
+ 70
false
- 880
- 570
+ 405
+ 121
-
+
+ false
false
+ false
-
+
+ true
@@ -2173,592 +3207,9 @@ $(pv_value)
+ false
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Current point
-
- true
- 1
- true
- Label
- 130
- false
- 816
- 647
-
-
-
- false
- false
- false
-
-
-
- true
-
-
-
- 0
- 1
- true
-
-
-
- false
-
-
-
- 1
- 18
- 0
- Text Update
- 0
- true
- $(P)$(R)TSCurrentPoint
-
- 0.0
-
-
- true
- true
- false
-
-
- false
- ######
- $(pv_name)
-$(pv_value)
- false
- 1
- true
- Text Update
- 90
- false
- 951
- 648
-
-
-
- true
- false
- false
-
-
-
- false
-
-
-
- 6
- 1
- true
-
- Default
-
- false
-
-
-
- 18
-
- Menu Button
- $(P)$(R)TSRead.SCAN
-
-
-
- true
- true
- false
-
-
- false
- $(pv_name)
-$(pv_value)
- false
- true
- Menu Button
- 80
- 951
- 673
-
-
-
-
- $(P)$(R)TSControl
- 3
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Read
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 1036
- 672
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Read rate
-
- true
- 1
- true
- Label
- 90
- false
- 856
- 672
-
-
-
-
- $(P)$(R)TSControl
- 0
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Erase/Start
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 90
- 778
- 597
-
-
-
-
- $(P)$(R)TSControl
- 2
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Stop
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 873
- 597
-
-
-
-
- $(P)$(R)TSControl
- 1
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Start
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 938
- 597
-
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
-
-
- true
-
-
-
- 4
- 18
- 0
- Text Update
- 0
- true
- $(P)$(R)TSAcquiring
-
- 0.0
-
-
- true
- true
- false
-
-
- false
- ######
- $(pv_name)
-$(pv_value)
- false
- 1
- true
- Text Update
- 90
- false
- 1003
- 598
-
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 3
- 1
-
- true
-
-
-
- false
-
-
-
- 1
- 19
- 0
- false
- Infinity
- -Infinity
- false
- Text Input
- 0
- false
- 0
- true
- $(P)$(R)TSNumPoints
-
- false
- 0.0
-
-
- true
- true
- false
-
-
- 0
- false
- true
- false
- false
-
-
- $(pv_name)
-$(pv_value)
- false
- true
- Text Input
- 60
- 951
- 623
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Number of points
-
- true
- 1
- true
- Label
- 160
- false
- 786
- 622
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Minimum
-
- true
- 1
- true
- Label
- 70
- false
- 405
- 121
-
-
-
- false
- false
- false
-
-
-
- true
-
-
-
- 0
- 1
- true
-
-
-
- false
-
-
+
1
18
@@ -3621,82 +4072,91 @@ $(pv_value)
Total
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSNet
+ $(R)TS:
+ $(R)TSNet
1
Net
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMinValue
+ $(R)TS:
+ $(R)TSMinValue
1
Min
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMinX
+ $(R)TS:
+ $(R)TSMinX
1
Min X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMinY
+ $(R)TS:
+ $(R)TSMinY
1
Min Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMaxValue
+ $(R)TS:
+ $(R)TSMaxValue
1
Max
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMaxX
+ $(R)TS:
+ $(R)TSMaxX
1
Max X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMaxY
+ $(R)TS:
+ $(R)TSMaxY
1
Max Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSMeanValue
+ $(R)TS:
+ $(R)TSMeanValue
1
Mean
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSigma
+ $(R)TS:
+ $(R)TSSigma
1
Sigma
@@ -5667,109 +6127,121 @@ $(pv_value)
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSCentroidTotal
+ $(R)TS:
+ $(R)TSCentroidTotal
1
Total
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSCentroidY
+ $(R)TS:
+ $(R)TSCentroidY
1
Centroid X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSCentroidY
+ $(R)TS:
+ $(R)TSCentroidY
1
Centroid Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSigmaX
+ $(R)TS:
+ $(R)TSSigmaX
1
Sigma X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSigmaY
+ $(R)TS:
+ $(R)TSSigmaY
1
Sigma Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSkewX
+ $(R)TS:
+ $(R)TSSkewX
1
Skewness X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSkewY
+ $(R)TS:
+ $(R)TSSkewY
1
Skewness Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSKurtosisX
+ $(R)TS:
+ $(R)TSKurtosisX
1
Kurtosis X
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSKurtosisY
+ $(R)TS:
+ $(R)TSKurtosisY
1
Kurtosis Y
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSSigmaXY
+ $(R)TS:
+ $(R)TSSigmaXY
1
Sigma XY
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSEccentricity
+ $(R)TS:
+ $(R)TSEccentricity
1
Eccentricity
- NDTimeSeries.opi
+ NDStatsTimeSeriesPlot.opi
true
- TSOrientation
+ $(R)TS:
+ $(R)TSOrientation
1
Orientation
@@ -6047,251 +6519,6 @@ $(pv_value)
405
535
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 1
- Label
-
-
- true
- true
- false
-
-
- false
- Reset
-
- true
- 1
- true
- Label
- 50
- false
- 910
- 482
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Reset
-
- true
- 1
- true
- Label
- 50
- false
- 890
- 509
-
-
-
-
- yySseq_full.opi
-
- true
- $(R)Reset
-
- 1
- Reset
-
-
- yySseq_full.opi
-
- true
- $(R)Reset1
-
- 1
- Reset1
-
-
- yySseq_full.opi
-
- true
- $(R)Reset2
-
- 1
- Reset2
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 6
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Menu Button
-
-
-
-
- true
- true
- false
-
-
- false
- $(pv_name)
-$(pv_value)
- false
- true
- Menu Button
- 60
- 951
- 534
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Configure
-
- true
- 1
- true
- Label
- 90
- false
- 850
- 534
-
-
-
-
- $(P)$(R)Reset.PROC
- 1
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)Reset.PROC
-
-
-
- true
- true
- false
-
-
-
- Reset
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 951
- 509
-
false
diff --git a/ADApp/op/opi/autoconvert/NDStatsTimeSeriesBasicAll.opi b/ADApp/op/opi/autoconvert/NDStatsTimeSeriesBasicAll.opi
index ecdbbd821..256e32b4c 100644
--- a/ADApp/op/opi/autoconvert/NDStatsTimeSeriesBasicAll.opi
+++ b/ADApp/op/opi/autoconvert/NDStatsTimeSeriesBasicAll.opi
@@ -2439,146 +2439,127 @@ $(trace_0_y_pv_value)
0
5
-
-
-
- $(P)$(R)TSControl
- 0
- 10
-
-
-
-
+
+
false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
+ true
+ 0.0
+
+
+
+ Time point
+ true
+
+
+
+ false
+ 100.0
+ 0.0
+
Default
-
- false
-
+
+
+ true
+ 0
+
+ Default Bold
+
+ true
+ true
+ 0.0
+
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Erase/Start
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 90
- 23
- 479
-
-
-
-
- $(P)$(R)TSControl
- 2
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
+
+ Value
+ true
+
+
+
+ false
+ 100.0
+ 0.0
+
Default
-
- false
-
+
+
+ true
+ 0
+
+ Default Bold
+
+ true
+ true
+ 0.0
+
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Stop
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 118
- 479
-
-
-
-
- $(P)$(R)TSControl
- 1
- 10
-
-
-
-
- false
+
+ Secondary Axis (2)
+ true
+
+
+
+ true
+ false
+ 100.0
+ 0.0
+
+ Default
+
+
+ true
+ 0
+
+ Default Bold
+
+ true
+ true
+ true
+ 0.0
+
+
+
+ Secondary Axis (3)
+ true
+
+
+
+ true
+ false
+ 100.0
+ 0.0
+
+ Default
+
+
+ true
+ 0
+
+ Default Bold
+
+ true
+ true
+ 2
false
-
+
- false
+ true
0
1
true
-
- Default
-
false
-
+
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
+ 200
+ XY Graph
+
+
+
+
@@ -2587,397 +2568,444 @@ $(pv_value)
false
-
- Start
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 183
- 479
-
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
-
-
- true
-
-
-
- 4
- 18
- 0
- Text Update
- 0
- true
- $(P)$(R)TSAcquiring
-
- 0.0
-
-
- true
- true
- false
-
-
- false
- ######
- $(pv_name)
-$(pv_value)
- false
- 1
- true
- Text Update
- 90
- false
- 248
- 480
-
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 3
- 1
-
- true
-
-
-
- false
-
-
-
- 1
- 19
- 0
- false
- Infinity
- -Infinity
- false
- Text Input
- 0
- false
- 0
- true
- $(P)$(R)TSNumPoints
-
- false
- 0.0
-
-
- true
- true
- false
-
-
- 0
- false
- true
- false
- false
-
-
- $(pv_name)
-$(pv_value)
- false
- true
- Text Input
- 60
- 188
- 505
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Number of points
-
- true
- 1
- true
- Label
- 160
- false
- 23
- 504
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
+ true
+ false
+ true
+ $(P)$(R)TSSigma
+
+ Default Bold
+
+ $(trace_0_y_pv)
+$(trace_0_y_pv_value)
+ true
+ 0
+ false
+ 1
+ $(trace_0_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+ $(P)$(R)TSSigma
+
+ true
+ 100
+ true
+ 1
+ $(trace_10_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_11_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_12_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_13_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_14_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_15_y_pv)
+ 0
+ 4
+ 0
+
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Current point
-
- true
- 1
- true
- Label
- 130
- false
- 23
- 529
-
-
-
- false
- false
- false
-
-
-
- true
-
-
-
- 0
- 1
- true
-
-
-
- false
-
-
-
- 1
- 18
- 0
- Text Update
- 0
- true
- $(P)$(R)TSCurrentPoint
-
- 0.0
-
-
- true
- true
- false
-
-
- false
- ######
- $(pv_name)
-$(pv_value)
- false
- 1
- true
- Text Update
- 90
- false
- 158
- 530
-
-
-
- true
- false
- false
-
-
-
- false
-
-
-
- 6
- 1
- true
-
- Default
-
- false
-
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_16_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_17_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_18_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_19_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_1_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_2_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_3_y_pv)
+ 0
+ 4
+ 0
+
-
- 18
-
- Menu Button
- $(P)$(R)TSRead.SCAN
-
-
-
- true
- true
- false
-
-
- false
- $(pv_name)
-$(pv_value)
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_4_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_5_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_6_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_7_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_8_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ true
+ 100
+ true
+ 1
+ $(trace_9_y_pv)
+ 0
+ 4
+ 0
+
+
+
+ 0
+ 100
+ 0
+ true
+ 0
+
+
+ 1
+
+
+ 1
false
+
+
true
- Menu Button
- 80
- 118
- 555
-
-
-
-
- $(P)$(R)TSControl
- 3
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Read
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 203
- 554
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 0
- Label
-
-
- true
- true
- false
-
-
- false
- Read rate
-
- true
- 1
- true
- Label
- 90
- false
- 23
- 554
+ XY Graph
+ 350
+ 720
+ 450
@@ -3111,7 +3139,7 @@ $(pv_value)
true
false
true
- $(P)$(R)TSSigma
+ $(P)$(R)TSMean
Default Bold
@@ -3136,7 +3164,7 @@ $(trace_0_y_pv_value)
1
- $(P)$(R)TSSigma
+ $(P)$(R)TSMeanValue
true
100
@@ -3544,7 +3572,7 @@ $(trace_0_y_pv_value)
true
XY Graph
350
- 720
+ 365
450
@@ -3679,7 +3707,7 @@ $(trace_0_y_pv_value)
true
false
true
- $(P)$(R)TSMean
+ $(P)$(R)TSMinX
Default Bold
@@ -3704,7 +3732,7 @@ $(trace_0_y_pv_value)
1
- $(P)$(R)TSMeanValue
+ $(P)$(R)TSMinX
true
100
@@ -4112,8 +4140,8 @@ $(trace_0_y_pv_value)
true
XY Graph
350
- 365
- 450
+ 5
+ 245
@@ -4247,7 +4275,7 @@ $(trace_0_y_pv_value)
true
false
true
- $(P)$(R)TSMinX
+ $(P)$(R)TSMinY
Default Bold
@@ -4272,7 +4300,7 @@ $(trace_0_y_pv_value)
1
- $(P)$(R)TSMinX
+ $(P)$(R)TSMinY
true
100
@@ -4680,7 +4708,7 @@ $(trace_0_y_pv_value)
true
XY Graph
350
- 5
+ 360
245
@@ -4815,7 +4843,7 @@ $(trace_0_y_pv_value)
true
false
true
- $(P)$(R)TSMinY
+ $(P)$(R)TSMaxX
Default Bold
@@ -4840,7 +4868,7 @@ $(trace_0_y_pv_value)
1
- $(P)$(R)TSMinY
+ $(P)$(R)TSMaxX
true
100
@@ -5248,7 +5276,7 @@ $(trace_0_y_pv_value)
true
XY Graph
350
- 360
+ 715
245
@@ -5383,7 +5411,7 @@ $(trace_0_y_pv_value)
true
false
true
- $(P)$(R)TSMaxX
+ $(P)$(R)TSMaxY
Default Bold
@@ -5408,7 +5436,7 @@ $(trace_0_y_pv_value)
1
- $(P)$(R)TSMaxX
+ $(P)$(R)TSMaxY
true
100
@@ -5804,124 +5832,68 @@ $(trace_0_y_pv_value)
0
true
0
-
-
- 1
-
-
- 1
- false
-
-
- true
- XY Graph
- 350
- 715
- 245
-
-
-
- false
- true
- 0.0
-
-
-
- Time point
- true
-
-
-
- false
- 100.0
- 0.0
-
- Default
-
-
- true
- 0
-
- Default Bold
-
- true
- true
- 0.0
-
-
-
- Value
- true
-
-
-
- false
- 100.0
- 0.0
-
- Default
-
-
- true
- 0
-
- Default Bold
-
- true
- true
- 0.0
-
-
-
- Secondary Axis (2)
- true
-
-
-
- true
- false
- 100.0
- 0.0
-
- Default
-
-
- true
- 0
-
- Default Bold
-
- true
- true
- true
- 0.0
-
+
+
+ 1
+
+
+ 1
+ false
+
+
+ true
+ XY Graph
+ 350
+ 1070
+ 245
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
-
- Secondary Axis (3)
- true
-
-
-
- true
- false
- 100.0
- 0.0
-
- Default
-
-
- true
- 0
-
- Default Bold
-
- true
- true
- 2
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Current point
+
+ true
+ 1
+ true
+ Label
+ 130
+ false
+ 46
+ 531
+
+
+
+ false
+ false
false
-
+
true
@@ -5930,17 +5902,22 @@ $(trace_0_y_pv_value)
0
1
true
+
+
+
false
-
+
- 200
- XY Graph
-
-
-
-
+ 1
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)TS:TSCurrentPoint
+ 0.0
true
@@ -5948,443 +5925,548 @@ $(trace_0_y_pv_value)
false
- true
- false
- true
- $(P)$(R)TSMaxY
-
- Default Bold
-
- $(trace_0_y_pv)
-$(trace_0_y_pv_value)
- true
- 0
- false
- 1
- $(trace_0_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
- $(P)$(R)TSMaxY
-
- true
- 100
- true
- 1
- $(trace_10_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_11_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_12_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_13_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_14_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_15_y_pv)
- 0
- 4
- 0
-
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 90
+ false
+ 181
+ 532
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+
+
+
+ 6
+ 1
+ true
+
+ Default
+
+ false
+
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_16_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_17_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_18_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_19_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_1_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_2_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_3_y_pv)
- 0
- 4
- 0
-
+
+ 20
+
+ Menu Button
+ $(P)$(R)TS:TSRead.SCAN
+
+
+
+ true
+ true
+ false
+
+
+ false
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Menu Button
+ 80
+ 181
+ 556
+
+
+
+
+ $(P)$(R)TS:TSRead.PROC
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSRead.PROC
+
+
+
+ true
+ true
+ false
+
+
+
+ Read
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 60
+ 266
+ 556
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Read rate
+
+ true
+ 1
+ true
+ Label
+ 90
+ false
+ 86
+ 556
+
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 3
+ 1
+
+ true
+
+
+
+ false
+
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_4_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_5_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_6_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_7_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_8_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- true
- 100
- true
- 1
- $(trace_9_y_pv)
- 0
- 4
- 0
-
-
-
- 0
- 100
- 0
- true
- 0
-
-
- 1
-
-
- 1
+
+ 1
+ 19
+ 0
+ false
+ Infinity
+ -Infinity
+ false
+ Text Input
+ 0
+ false
+ 0
+ true
+ $(P)$(R)TS:TSNumPoints
+
+ false
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ 0
+ false
+ true
+ false
+ false
+
+
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Text Input
+ 60
+ 181
+ 507
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Number of points
+
+ true
+ 1
+ true
+ Label
+ 160
+ false
+ 16
+ 506
+
+
+
+
+ $(P)$(R)TS:TSAcquire
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSAcquire
+
+
+
+ true
+ true
+ false
+
+
+
+ Erase/Start
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 90
+ 86
+ 481
+
+
+
+
+ $(P)$(R)TS:TSAcquire
+ 2
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSAcquire
+
+
+
+ true
+ true
+ false
+
+
+
+ Stop
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 60
+ 181
+ 481
+
+
+
+ false
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+
+
+ true
+
+
+
+ 4
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)TS:TSAcquiring
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
false
-
-
+ 1
true
- XY Graph
- 350
- 1070
- 245
+ Text Update
+ 90
+ false
+ 246
+ 482
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 0
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Acquire
+
+ true
+ 1
+ true
+ Label
+ 70
+ false
+ 11
+ 481
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ More
+
+ true
+ 1
+ true
+ Label
+ 40
+ false
+ 136
+ 581
+
+
+
+
+ NDPluginTimeSeries.opi
+
+ true
+ $(R)TS:
+
+ 1
+ Time series control
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+
+
+
+
+ true
+ true
+ false
+
+
+
+ More
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 69
+ 181
+ 581
diff --git a/ADApp/op/opi/autoconvert/NDStatsTimeSeriesCentroidAll.opi b/ADApp/op/opi/autoconvert/NDStatsTimeSeriesCentroidAll.opi
index 6ea13af55..ec4c2a382 100644
--- a/ADApp/op/opi/autoconvert/NDStatsTimeSeriesCentroidAll.opi
+++ b/ADApp/op/opi/autoconvert/NDStatsTimeSeriesCentroidAll.opi
@@ -14,7 +14,7 @@
5
- 755
+ 780
true
@@ -87,456 +87,6 @@ $(pv_value)
0
5
-
-
-
-
-
-
-
-
- 0
- 1
- true
- false
-
- Default
-
-
-
-
- 20
- false
-
- true
-
- Grouping Container
-
-
- true
- true
- false
-
-
- false
-
- true
- true
- Grouping Container
- 225
- 10
- 680
-
-
- false
- false
- false
-
-
-
- false
-
-
-
- 3
- 1
-
- true
-
-
-
- false
-
-
-
- 1
- 19
- 0
- false
- Infinity
- -Infinity
- false
- Text Input
- 0
- false
- 0
- true
- $(P)$(R)TSNumPoints
-
- false
- 0.0
-
-
- true
- true
- false
-
-
- 0
- false
- true
- false
- false
-
-
- $(pv_name)
-$(pv_value)
- false
- true
- Text Input
- 60
- 165
- 1
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Number of points
-
- true
- 1
- true
- Label
- 160
- false
- 0
- 0
-
-
-
-
-
-
-
-
-
-
- 0
- 1
- true
- false
-
- Default
-
-
-
-
- 20
- false
-
- true
-
- Grouping Container
-
-
- true
- true
- false
-
-
- false
-
- true
- true
- Grouping Container
- 225
- 10
- 705
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 2
- Label
-
-
- true
- true
- false
-
-
- false
- Current point
-
- true
- 1
- true
- Label
- 130
- false
- 0
- 0
-
-
-
- false
- false
- false
-
-
-
- true
-
-
-
- 0
- 1
- true
-
-
-
- false
-
-
-
- 1
- 18
- 0
- Text Update
- 0
- true
- $(P)$(R)TSCurrentPoint
-
- 0.0
-
-
- true
- true
- false
-
-
- false
- ######
- $(pv_name)
-$(pv_value)
- false
- 1
- true
- Text Update
- 90
- false
- 135
- 1
-
-
-
-
-
-
-
-
-
-
- 0
- 1
- true
- false
-
- Default
-
-
-
-
- 20
- false
-
- true
-
- Grouping Container
-
-
- true
- true
- false
-
-
- false
-
- true
- true
- Grouping Container
- 240
- 10
- 730
-
-
- true
- false
- false
-
-
-
- false
-
-
-
- 6
- 1
- true
-
- Default
-
- false
-
-
-
- 18
-
- Menu Button
- $(P)$(R)TSRead.SCAN
-
-
-
- true
- true
- false
-
-
- false
- $(pv_name)
-$(pv_value)
- false
- true
- Menu Button
- 80
- 95
- 1
-
-
-
-
- $(P)$(R)TSControl
- 3
- 10
-
-
-
-
- false
- false
-
-
-
- false
-
-
-
- 0
- 1
- true
-
- Default
-
- false
-
-
-
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
-
-
-
- true
- true
- false
-
-
-
- Read
- false
- $(pv_name)
-$(pv_value)
- true
- Action Button
- 60
- 180
- 0
-
-
-
- false
-
-
-
-
-
-
- 0
- 1
- true
-
-
-
-
-
-
- 20
- 0
- Label
-
-
- true
- true
- false
-
-
- false
- Read rate
-
- true
- 1
- true
- Label
- 90
- false
- 0
- 0
-
-
@@ -7406,13 +6956,241 @@ $(trace_0_y_pv_value)
1
true
-
+
+
+
+
+
+ 25
+ 1
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ $(P)$(R)
+
+ true
+ 1
+ true
+ Label
+ 1435
+ false
+ 0
+ 5
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Current point
+
+ true
+ 1
+ true
+ Label
+ 130
+ false
+ 64
+ 705
+
+
+
+ false
+ false
+ false
+
+
+
+ true
+
+
+
+ 0
+ 1
+ true
+
+
+
+ false
+
+
+
+ 1
+ 18
+ 0
+ Text Update
+ 0
+ true
+ $(P)$(R)TS:TSCurrentPoint
+
+ 0.0
+
+
+ true
+ true
+ false
+
+
+ false
+ ######
+ $(pv_name)
+$(pv_value)
+ false
+ 1
+ true
+ Text Update
+ 90
+ false
+ 199
+ 706
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+
+
+
+ 6
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Menu Button
+ $(P)$(R)TS:TSRead.SCAN
+
+
+
+ true
+ true
+ false
+
+
+ false
+ $(pv_name)
+$(pv_value)
+ false
+ true
+ Menu Button
+ 80
+ 199
+ 730
+
+
+
+
+ $(P)$(R)TS:TSRead.PROC
+ 1
+ 10
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+ $(P)$(R)TS:TSRead.PROC
+
+
+
+ true
+ true
+ false
+
+
+
+ Read
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 60
+ 284
+ 730
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
-
+
- 25
- 1
+ 20
+ 2
Label
@@ -7422,28 +7200,21 @@ $(trace_0_y_pv_value)
false
- $(P)$(R)
+ Read rate
true
1
true
Label
- 1435
+ 90
false
- 0
- 5
+ 104
+ 730
-
-
-
- $(P)$(R)TSControl
- 0
- 10
-
-
-
-
+
+
false
+ false
false
@@ -7452,22 +7223,33 @@ $(trace_0_y_pv_value)
- 0
+ 3
1
+
true
- Default
+
false
- 20
-
- Action Button
- 0
- $(P)$(R)TSControl
+ 1
+ 19
+ 0
+ false
+ Infinity
+ -Infinity
+ false
+ Text Input
+ 0
+ false
+ 0
+ true
+ $(P)$(R)TS:TSNumPoints
+ false
+ 0.0
true
@@ -7475,22 +7257,67 @@ $(trace_0_y_pv_value)
false
+ 0
+ false
+ true
+ false
+ false
- Erase/Start
- false
+
$(pv_name)
$(pv_value)
+ false
true
- Action Button
- 90
- 10
- 655
+ Text Input
+ 60
+ 199
+ 681
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Number of points
+
+ true
+ 1
+ true
+ Label
+ 160
+ false
+ 34
+ 680
- $(P)$(R)TSControl
- 2
+ $(P)$(R)TS:TSAcquire
+ 1
10
@@ -7519,7 +7346,7 @@ $(pv_value)
Action Button
0
- $(P)$(R)TSControl
+ $(P)$(R)TS:TSAcquire
@@ -7529,21 +7356,21 @@ $(pv_value)
- Stop
+ Erase/Start
false
$(pv_name)
$(pv_value)
true
Action Button
- 60
- 105
+ 90
+ 104
655
- $(P)$(R)TSControl
- 1
+ $(P)$(R)TS:TSAcquire
+ 2
10
@@ -7572,7 +7399,7 @@ $(pv_value)
Action Button
0
- $(P)$(R)TSControl
+ $(P)$(R)TS:TSAcquire
@@ -7582,14 +7409,14 @@ $(pv_value)
- Start
+ Stop
false
$(pv_name)
$(pv_value)
true
Action Button
60
- 170
+ 199
655
@@ -7620,7 +7447,7 @@ $(pv_value)
Text Update
0
true
- $(P)$(R)TSAcquiring
+ $(P)$(R)TS:TSAcquiring
0.0
@@ -7640,7 +7467,142 @@ $(pv_value)
Text Update
90
false
- 235
+ 264
656
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 0
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ Acquire
+
+ true
+ 1
+ true
+ Label
+ 70
+ false
+ 29
+ 655
+
+
+
+ false
+
+
+
+
+
+
+ 0
+ 1
+ true
+
+
+
+
+
+
+ 20
+ 2
+ Label
+
+
+ true
+ true
+ false
+
+
+ false
+ More
+
+ true
+ 1
+ true
+ Label
+ 40
+ false
+ 154
+ 755
+
+
+
+
+ NDPluginTimeSeries.opi
+
+ true
+ $(R)TS:
+
+ 1
+ Time series control
+
+
+ false
+ false
+
+
+
+ false
+
+
+
+ 0
+ 1
+ true
+
+ Default
+
+ false
+
+
+
+ 20
+
+ Action Button
+ 0
+
+
+
+
+ true
+ true
+ false
+
+
+
+ More
+ false
+ $(pv_name)
+$(pv_value)
+ true
+ Action Button
+ 69
+ 199
+ 755
+
diff --git a/ADApp/op/ui/autoconvert/NDStats.ui b/ADApp/op/ui/autoconvert/NDStats.ui
index 1447c070a..c1c5768a2 100644
--- a/ADApp/op/ui/autoconvert/NDStats.ui
+++ b/ADApp/op/ui/autoconvert/NDStats.ui
@@ -7,7 +7,7 @@
174
128
1120
- 700
+ 675
@@ -1449,566 +1449,7 @@ border-radius: 2px;
-
-
- caGraphics::Rectangle
-
-
-
- 875
- 570
- 120
- 21
-
-
-
-
- 218
- 218
- 218
-
-
-
- Filled
-
-
-
- 218
- 218
- 218
-
-
-
- Solid
-
-
-
-
- caGraphics::Rectangle
-
-
-
- 755
- 565
- 360
- 130
-
-
-
-
- 0
- 0
- 0
-
-
-
-
- 0
- 0
- 0
-
-
-
-
- 0
- 0
- 0
-
-
-
- Solid
-
-
-
-
- QFrame::NoFrame
-
-
-
- 10
- 0
- 184
-
-
-
-
- 10
- 0
- 184
-
-
-
- Time Series
-
-
- ESimpleLabel::WidthAndHeight
-
-
- Qt::AlignAbsolute|Qt::AlignHCenter|Qt::AlignVCenter
-
-
-
- 880
- 570
- 110
- 20
-
-
-
-
-
- QFrame::NoFrame
-
-
-
- 0
- 0
- 0
-
-
-
-
- 0
- 0
- 0
-
-
-
- Current point
-
-
- ESimpleLabel::WidthAndHeight
-
-
- Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter
-
-
-
- 816
- 647
- 130
- 20
-
-
-
-
-
-
- 951
- 648
- 90
- 18
-
-
-
- caLineEdit::WidthAndHeight
-
-
- $(P)$(R)TSCurrentPoint
-
-
-
- 10
- 0
- 184
-
-
-
-
- 187
- 187
- 187
-
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- 0.0
-
-
- 1.0
-
-
- Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter
-
-
- decimal
-
-
- caLineEdit::Static
-
-
-
-
-
-
- 1036
- 672
- 60
- 20
-
-
-
- EPushButton::WidthAndHeight
-
-
- $(P)$(R)TSControl
-
-
-
- 0
- 0
- 0
-
-
-
-
- 115
- 223
- 255
-
-
-
- Read
-
-
- 3
-
-
- caMessageButton::Static
-
-
-
-
- QFrame::NoFrame
-
-
-
- 0
- 0
- 0
-
-
-
-
- 0
- 0
- 0
-
-
-
- Read rate
-
-
- ESimpleLabel::WidthAndHeight
-
-
- Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter
-
-
-
- 856
- 672
- 90
- 20
-
-
-
-
-
-
- 778
- 597
- 90
- 20
-
-
-
- EPushButton::WidthAndHeight
-
-
- $(P)$(R)TSControl
-
-
-
- 0
- 0
- 0
-
-
-
-
- 115
- 223
- 255
-
-
-
- Erase/Start
-
-
- 0
-
-
- caMessageButton::Static
-
-
-
-
-
- 873
- 597
- 60
- 20
-
-
-
- EPushButton::WidthAndHeight
-
-
- $(P)$(R)TSControl
-
-
-
- 0
- 0
- 0
-
-
-
-
- 115
- 223
- 255
-
-
-
- Stop
-
-
- 2
-
-
- caMessageButton::Static
-
-
-
-
-
- 938
- 597
- 60
- 20
-
-
-
- EPushButton::WidthAndHeight
-
-
- $(P)$(R)TSControl
-
-
-
- 0
- 0
- 0
-
-
-
-
- 115
- 223
- 255
-
-
-
- Start
-
-
- 1
-
-
- caMessageButton::Static
-
-
-
-
-
- 1003
- 598
- 90
- 18
-
-
-
- caLineEdit::WidthAndHeight
-
-
- $(P)$(R)TSAcquiring
-
-
-
- 10
- 0
- 184
-
-
-
-
- 70
- 70
- 70
-
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- 0.0
-
-
- 1.0
-
-
- Qt::AlignAbsolute|Qt::AlignLeft|Qt::AlignVCenter
-
-
- string
-
-
- caLineEdit::Alarm_Static
-
-
-
-
-
- 951
- 623
- 60
- 19
-
-
-
- caLineEdit::WidthAndHeight
-
-
- $(P)$(R)TSNumPoints
-
-
-
- 0
- 0
- 0
-
-
-
-
- 115
- 223
- 255
-
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- caLineEdit::Channel
-
-
- 0.0
-
-
- 1.0
-
-
- caLineEdit::Static
-
-
- decimal
-
-
-
-
- QFrame::NoFrame
-
-
-
- 0
- 0
- 0
-
-
-
-
- 0
- 0
- 0
-
-
-
- Number of points
-
-
- ESimpleLabel::WidthAndHeight
-
-
- Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignVCenter
-
-
-
- 786
- 622
- 160
- 20
-
-
-
-
+
QFrame::NoFrame
@@ -2044,7 +1485,7 @@ border-radius: 2px;
-
+
479
@@ -2098,7 +1539,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2134,7 +1575,7 @@ border-radius: 2px;
-
+
649
@@ -2188,7 +1629,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2224,7 +1665,7 @@ border-radius: 2px;
-
+
479
@@ -2278,7 +1719,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2314,7 +1755,7 @@ border-radius: 2px;
-
+
649
@@ -2368,7 +1809,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2404,7 +1845,7 @@ border-radius: 2px;
-
+
479
@@ -2458,7 +1899,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2494,7 +1935,7 @@ border-radius: 2px;
-
+
649
@@ -2548,7 +1989,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2584,7 +2025,7 @@ border-radius: 2px;
-
+
479
@@ -2638,7 +2079,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2674,7 +2115,7 @@ border-radius: 2px;
-
+
649
@@ -2728,7 +2169,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2764,7 +2205,7 @@ border-radius: 2px;
-
+
479
@@ -2818,7 +2259,7 @@ border-radius: 2px;
caLineEdit::Static
-
+
QFrame::NoFrame
@@ -2854,7 +2295,7 @@ border-radius: 2px;
-
+
649
@@ -2938,16 +2379,16 @@ border-radius: 2px;
Total;Net;Min;Min X;Min Y;Max;Max X;Max Y;Mean;Sigma;All
- NDStatsTimeSeriesPlot.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDTimeSeries.adl;NDStatsTimeSeriesBasicAll.adl
+ NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesPlot.adl;NDStatsTimeSeriesBasicAll.adl
- P=$(P),R=$(R)TS:,RN=$(R)TSTotal;P=$(P),R=$(R),PLT=TSNet;P=$(P),R=$(R),PLT=TSMinValue;P=$(P),R=$(R),PLT=TSMinX;P=$(P),R=$(R),PLT=TSMinY;P=$(P),R=$(R),PLT=TSMaxValue;P=$(P),R=$(R),PLT=TSMaxX;P=$(P),R=$(R),PLT=TSMaxY;P=$(P),R=$(R),PLT=TSMeanValue;P=$(P),R=$(R),PLT=TSSigma;P=$(P),R=$(R)
+ P=$(P),R=$(R)TS:,RN=$(R)TSTotal;P=$(P),R=$(R)TS:,RN=$(R)TSNet;P=$(P),R=$(R)TS:,RN=$(R)TSMinValue;P=$(P),R=$(R)TS:,RN=$(R)TSMinX;P=$(P),R=$(R)TS:,RN=$(R)TSMinY;P=$(P),R=$(R)TS:,RN=$(R)TSMaxValue;P=$(P),R=$(R)TS:,RN=$(R)TSMaxX;P=$(P),R=$(R)TS:,RN=$(R)TSMaxY;P=$(P),R=$(R)TS:,RN=$(R)TSMeanValue;P=$(P),R=$(R)TS:,RN=$(R)TSSigma;P=$(P),R=$(R)
false;false;false;false;false;false;false;false;false;false;false
-
+
QFrame::NoFrame
@@ -2983,7 +2424,7 @@ border-radius: 2px;
-
+
caGraphics::Rectangle
@@ -3020,7 +2461,7 @@ border-radius: 2px;
Solid
-
NDPluginStats inherits from NDPluginDriver. The
NDPluginStats class documentation describes this class in detail.
@@ -74,219 +76,300 @@
- Parameter index variable
+ Parameter index variable
+
- asyn interface
+ asyn interface
+
- Access
+ Access
+
- Description
+ Description
+
- drvInfo string
+ drvInfo string
+
- EPICS record name
+ EPICS record name
+
- EPICS record type
+ EPICS record type
+
- Basic statistics
+ Basic statistics
+
NDPluginStats
- ComputeStatistics
+ ComputeStatistics
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
Flag to control whether to compute statistics for this array (0=No, 1=Yes). Not
computing statistics reduces CPU load. Basic statistics computations are quite fast,
since they involve mostly double precision addition, with 1 multiply to compute
- sigma, per array element.
+ sigma, per array element.
+
- COMPUTE_STATISTICS
+ COMPUTE_STATISTICS
+
$(P)$(R)ComputeStatistics
- $(P)$(R)ComputeStatistics_RBV
+ $(P)$(R)ComputeStatistics_RBV
+
bo
- bi
+ bi
+
NDPluginStats
- BgdWidth
+ BgdWidth
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
Width of the background in pixels to use when computing net counts. 0=no background
- subtraction, so the net counts is the same as the total counts.
+ subtraction, so the net counts is the same as the total counts.
+
- BGD_WIDTH
+ BGD_WIDTH
+
$(P)$(R)BgdWidth
- $(P)$(R)BgdWidth_RBV
+ $(P)$(R)BgdWidth_RBV
+
longout
- longin
+ longin
+
NDPluginStats
- MinValue
+ MinValue
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Minimum value in any element in the array
+ Minimum value in any element in the array
+
- MIN_VALUE
+ MIN_VALUE
+
- $(P)$(R)MinValue_RBV
+ $(P)$(R)MinValue_RBV
+
- ai
+ ai
+
NDPluginStats
- MinX
+ MinX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
X pixel location of minimum value in the array. This is only valid for 2-D monochromatic
- arrays.
+ arrays.
+
- MIN_X
+ MIN_X
+
- $(P)$(R)MinX_RBV
+ $(P)$(R)MinX_RBV
+
- ai
+ ai
+
NDPluginStats
- MinY
+ MinY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Y pixel location of minimum value in the array. This is only valid for 2-D monochromatic
- arrays.
+ arrays.
+
- MIN_Y
+ MIN_Y
+
- $(P)$(R)MinY_RBV
+ $(P)$(R)MinY_RBV
+
- ai
+ ai
+
NDPluginStats
- MaxValue
+ MaxValue
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Maximum value in any element in the array
+ Maximum value in any element in the array
+
- MAX_VALUE
+ MAX_VALUE
+
- $(P)$(R)MaxValue_RBV
+ $(P)$(R)MaxValue_RBV
+
- ai
+ ai
+
NDPluginStats
- MaxX
+ MaxX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
X pixel location of maximum value in the array. This is only valid for 2-D monochromatic
- arrays.
+ arrays.
+
- MAX_X
+ MAX_X
+
- $(P)$(R)MaxX_RBV
+ $(P)$(R)MaxX_RBV
+
- ai
+ ai
+
NDPluginStats
- MaxY
+ MaxY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Y pixel location of maximum value in the array. This is only valid for 2-D monochromatic
- arrays.
+ arrays.
+
- MAX_Y
+ MAX_Y
+
- $(P)$(R)MaxY_RBV
+ $(P)$(R)MaxY_RBV
+
- ai
+ ai
+
NDPluginStats
- MeanValue
+ MeanValue
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Mean value in the array
+ Mean value in the array
+
- MEAN_VALUE
+ MEAN_VALUE
+
- $(P)$(R)MeanValue_RBV
+ $(P)$(R)MeanValue_RBV
+
- ai
+ ai
+
NDPluginStats
- Total
+ Total
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Sum (total) of all elements in the array. This is available as an ai record. The
total counts are also available as epicsInt32 values in an mca record via callbacks
to the drvFastSweep driver. The mca record is very useful for on-the-fly data acquisition
- of the total counts in the detector or in an ROI.
+ of the total counts in the detector or in an ROI.
+
- TOTAL
+ TOTAL
+
$(P)$(R)Total_RBV
- $(P)$(R)TotalArray
+ $(P)$(R)TotalArray
+
ai
- mca
+ mca
+
NDPluginStats
- Net
+ Net
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Net (background subtracted) total of all elements in the array. The background is
calculated by determining the average counts per array element in a border around
@@ -295,194 +378,265 @@
is ≤ 0 then no background is computed. The net counts is available as an ai record.
The net counts is also available as epicsInt32 values in an mca record via callbacks
to the drvFastSweep driver. The mca record is very useful for on-the-fly data acquisition
- of the net counts in the detector or in an ROI.
+ of the net counts in the detector or in an ROI.
+
- NET
+ NET
+
$(P)$(R)Net_RBV
- $(P)$(R)NetArray
+ $(P)$(R)NetArray
+
ai
- mca
+ mca
+
NDPluginStats
- SigmaValue
+ SigmaValue
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Sigma (standard deviation) of all elements in the array
+ Sigma (standard deviation) of all elements in the array
+
- SIGMA_VALUE
+ SIGMA_VALUE
+
- $(P)$(R)Sigma_RBV
+ $(P)$(R)Sigma_RBV
+
- ai
+ ai
+
- Centroid statistics
+ Centroid statistics
+
NDPluginStats
- ComputeCentroid
+ ComputeCentroid
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
Flag to control whether to compute the centroid statistics (0=No, 1=Yes). The centroids
are computed from the average row and column profiles above the centroid threshold.
These calculations are also quite fast, since they just involve addition operations
- for each array element.
+ for each array element.
+
- COMPUTE_CENTROID
+ COMPUTE_CENTROID
+
$(P)$(R)ComputeCentroid
- $(P)$(R)ComputeCentroid_RBV
+ $(P)$(R)ComputeCentroid_RBV
+
bo
- bi
+ bi
+
NDPluginStats
- CentroidThreshold
+ CentroidThreshold
+
- asynFloat64
+ asynFloat64
+
- r/w
+ r/w
+
Threshold used when computing the centroid statistics. All array elements less than
this value are set to 0 for computing the centroid statistics. It is important to
set this value to ignore the "background" when computing the position and size of
- a "beam" image, for example.
+ a "beam" image, for example.
+
- CENTROID_THRESHOLD
+ CENTROID_THRESHOLD
+
$(P)$(R)CentroidThreshold
- $(P)$(R)CentroidThreshold_RBV
+ $(P)$(R)CentroidThreshold_RBV
+
ao
- ai
+ ai
+
NDPluginStats
- CentroidTotal
+ CentroidTotal
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Total mass, sum of all elements above the threshold.
+ Total mass, sum of all elements above the threshold.
+
- CENTROID_TOTAL
+ CENTROID_TOTAL
+
- $(P)$(R)CentroidTotal_RBV
+ $(P)$(R)CentroidTotal_RBV
+
- ai
+ ai
+
NDPluginStats
- CentroidX
+ CentroidX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- X centroid of the array above the centroid threshold.
+ X centroid of the array above the centroid threshold.
+
- CENTROIDX_VALUE
+ CENTROIDX_VALUE
+
- $(P)$(R)CentroidX_RBV
+ $(P)$(R)CentroidX_RBV
+
- ai
+ ai
+
NDPluginStats
- CentroidY
+ CentroidY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Y centroid of the array above the centroid threshold.
+ Y centroid of the array above the centroid threshold.
+
- CENTROIDY_VALUE
+ CENTROIDY_VALUE
+
- $(P)$(R)CentroidY_RBV
+ $(P)$(R)CentroidY_RBV
+
- ai
+ ai
+
NDPluginStats
- SigmaX
+ SigmaX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Sigma X (width) of the distribution above the centroid threshold.
+ Sigma X (width) of the distribution above the centroid threshold.
+
- SIGMAX_VALUE
+ SIGMAX_VALUE
+
- $(P)$(R)SigmaX_RBV
+ $(P)$(R)SigmaX_RBV
+
- ai
+ ai
+
NDPluginStats
- SigmaY
+ SigmaY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
- Sigma Y (height) of the distribution above the centroid threshold.
+ Sigma Y (height) of the distribution above the centroid threshold.
+
- SIGMAY_VALUE
+ SIGMAY_VALUE
+
- $(P)$(R)SigmaY_RBV
+ $(P)$(R)SigmaY_RBV
+
- ai
+ ai
+
NDPluginStats
- SigmaXY
+ SigmaXY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
This is the normalized value of sigmaXY, i.e. sigmaXY/(sigmaX * sigmaY). This is
often called the correlation coefficient, r. It is zero if the X and Y profiles
are not correlated, meaning that the distribution is not tilted with respect to
- the X and Y axes.
+ the X and Y axes.
+
- SIGMAXY_VALUE
+ SIGMAXY_VALUE
+
- $(P)$(R)SigmaXY_RBV
+ $(P)$(R)SigmaXY_RBV
+
- ai
+ ai
+
NDPluginStats
- SkewX
+ SkewX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Skewness X (symmetry) of the distribution above the centroid threshold, in relation
to the center of mass.
@@ -493,20 +647,26 @@
- SKEWX_VALUE
+ SKEWX_VALUE
+
- $(P)$(R)SkewX_RBV
+ $(P)$(R)SkewX_RBV
+
- ai
+ ai
+
NDPluginStats
- SkewY
+ SkewY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Skewness Y (symmetry) of the distribution above the centroid threshold, in relation
to the center of mass.
@@ -517,20 +677,26 @@
- SKEWY_VALUE
+ SKEWY_VALUE
+
- $(P)$(R)SkewY_RBV
+ $(P)$(R)SkewY_RBV
+
- ai
+ ai
+
NDPluginStats
- KurtosisX
+ KurtosisX
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Excess Kurtosis X (flatness) of the distribution above the centroid threshold.
- KURTOSISX_VALUE
+ KURTOSISX_VALUE
+
- $(P)$(R)KurtosisX_RBV
+ $(P)$(R)KurtosisX_RBV
+
- ai
+ ai
+
NDPluginStats
- KurtosisY
+ KurtosisY
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Excess Kurtosis Y (flatness) of the distribution above the centroid threshold.
- KURTOSISY_VALUE
+ KURTOSISY_VALUE
+
- $(P)$(R)KurtosisY_RBV
+ $(P)$(R)KurtosisY_RBV
+
- ai
+ ai
+
NDPluginStats
- Eccentricity
+ Eccentricity
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Eccentricity, can take values from 0 to 1. 0 means a perfectly round object and
- 1 mean a line shaped object.
+ 1 mean a line shaped object.
+
- ECCENTRICITY_VALUE
+ ECCENTRICITY_VALUE
+
- $(P)$(R)Eccentricity_RBV
+ $(P)$(R)Eccentricity_RBV
+
- ai
+ ai
+
NDPluginStats
- Orientation
+ Orientation
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Orientation of the object, orientation of the "long" direction with respect to horizontal
- (x axis).
+ (x axis).
+
- ORIENTATION_VALUE
+ ORIENTATION_VALUE
+
- $(P)$(R)Orientation_RBV
+ $(P)$(R)Orientation_RBV
+
- ai
+ ai
+
- Time-Series data
-
-
-
- NDPluginStats
- TSControl
-
- asynInt32
-
- r/w
-
- Controls time-series data collection. The enum choices are:
-
- Erase/Start: Clears all time-series arrays, sets TS_CURRENT_POINT=0, and starts
- time-series data collection.
- Start: Starts time-series data collection without clearing arrays or modifying
- TS_CURRENT_POINT. Used to restart collection after a Stop operation.
- Stop: Stops times-series data collection. Performs callbacks on all time-series
- waveform records.
- Read: Performs callbacks on all time-series waveform records, updating the values.
-
+ Time-Series data
-
- TS_CONTROL
-
- $(P)$(R)TSControl
-
- mbbo
-
- N.A.
-
- N.A.
-
- r/w
-
- Sends the "Read" command to the TSControl record above. This record can be periodically
- processed to update the time-series waveform records. It is scan disabled if TSAcquiring=Done,
- so that updates are only performed when time-series acquisition is in progress.
+
+ The time series is implemented by loading an instance of the
+ NDPluginTimeSeries for each NDPluginStats plugin, and the time series control
+ uses records in NDTimeSeries.template. That documentation should be consulted for
+ an explanation of these records. The prefix and record name macro for the time-series
+ plugin records from NDTimeSeries.template is $(P)$(R)TS:.
+ NOTE: The time-series plugin is often used with drivers which sample at a
+ fixed well-defined time interval. This cannot be guaranteed with the statistics
+ plugin, so the averaging time records and time axis waveform record from NDPluginTimeSeries
+ are typically not used, and the statistics data are plotted against time point #,
+ rather than actual time.
+
+ The time-series waveform records for each statistic are defined in NDStats.template.
-
- N.A.
-
- $(P)$(R)TSRead
-
- longout
- NDPluginStats
- TSNumPoints
-
- asynInt32
-
- r/w
-
- Controls the number of time-series points to collect. There is no maximum value,
- the time-series arrays in the plugin are freed and reallocated each time this value
- is changed. However, the size of the waveform records is fixed when the IOC is started,
- so NELM in those records must be large enough for the largest time-series needed.
+ NDPluginTimeSeries
+ TSTimeSeries
- TS_NUM_POINTS
-
- $(P)$(R)TSNumPoints
-
- longout
-
-
-
- NDPluginStats
- TSCurrentPoint
-
- asynInt32
-
- r/o
-
- The current time-series point. If TSCurrentPoint reaches TSNumPoints then time-series
- acquisition is automatically stopped, and callbacks are done on all time-series
- waveform records, updating the values. This means that even if TSRead has SCAN=Passive
- that the waveform records will update when time-series acquisition is complete.
+ asynFloat64Array
- TS_CURRENT_POINT
-
- $(P)$(R)TSCurrentPoint
-
- longin
-
-
-
- NDPluginStats
- TSAcquiring
-
- asynInt32
-
- r/o
-
- Indicates status of time-series data acquisition. Values are 0=Done and 1=Acquiring.
+ r/o
- TS_ACQUIRING
-
- $(P)$(R)TSAcquiring
-
- bi
-
-
-
- NDPluginStats
- TSXXX
-
- asynFloat64Array
-
- r/o
+ The time series data arrays of the basic statistics and centroid and sigma statistics
+ described above.
+
- The time series data arrays. XXX is one of the following, corresponding to each
- of the basic statistics and centroid and sigma statistics described above:
-
- MinValue
- MinX
- MinY
- MaxValue
- MaxX
- MaxY
- MeanValue
- Sigma
- Total
- Net
- CentroidX
- CentroidY
- SigmaX
- SigmaY
- SigmaXY
-
+ TS_TIME_SERIES
+ $(P)$(R)XXX, where XXX is:
- TS_MIN_VALUE
- TS_MIN_X
- TS_MIN_Y
- TS_MAX_VALUE
- TS_MAX_X
- TS_MAX_Y
- TS_MEAN_VALUE
- TS_SIGMA_VALUE
- TS_TOTAL
- TS_NET
- TS_CENTROIDTOTAL_VALUE
- TS_CENTROIDX_VALUE
- TS_CENTROIDY_VALUE
- TS_SIGMAX_VALUE
- TS_SIGMAY_VALUE
- TS_SIGMAXY_VALUE
- TS_SKEWX_VALUE
- TS_SKEWY_VALUE
- TS_KURTOSISX_VALUE
- TS_KURTOSISY_VALUE
- TS_ECCENTRICITY_VALUE
- TS_ORIENTATION_VALUE
+ TSMinValue
+ TSMinX
+ TSMinY
+ TSMaxValue
+ TSMaxX
+ TSMaxY
+ TSMeanValue
+ TSSigma
+ TSTotal
+ TSNet
+ TSCentroidX
+ TSCentroidY
+ TSSigmaX
+ TSSigmaY
+ TSSigmaXY
+ TSSkewX
+ TSSkewY
+ TSKurtosisX
+ TSKurtosisY
+ TSEccenticity
+ TSOrientation
+ TSTimestamp
- $(P)$(R)TSXXX
-
- waveform
+ waveform
+
- X and Y Profiles
+ X and Y Profiles
+
NDPluginStats
- ComputeProfiles
+ ComputeProfiles
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- Flag to control whether to compute the profiles for this array (0=No, 1=Yes).
+ Flag to control whether to compute the profiles for this array (0=No, 1=Yes).
+
- COMPUTE_PROFILES
+ COMPUTE_PROFILES
+
$(P)$(R)ComputeProfiles
- $(P)$(R)ComputeProfiles_RBV
+ $(P)$(R)ComputeProfiles_RBV
+
bo
- bi
+ bi
+
NDPluginStats
- ProfileSizeX
+ ProfileSizeX
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- Number of array elements in the X profiles.
+ Number of array elements in the X profiles.
+
- PROFILE_SIZE_X
+ PROFILE_SIZE_X
+
- $(P)$(R)ProfileSizeX_RBV
+ $(P)$(R)ProfileSizeX_RBV
+
- longin
+ longin
+
NDPluginStats
- ProfileSizeY
+ ProfileSizeY
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- Number of array elements in the Y profiles.
+ Number of array elements in the Y profiles.
+
- PROFILE_SIZE_Y
+ PROFILE_SIZE_Y
+
- $(P)$(R)ProfileSizeY_RBV
+ $(P)$(R)ProfileSizeY_RBV
+
- longin
+ longin
+
NDPluginStats
- CursorX
+ CursorX
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- X position of a user-defined cursor for profiles.
+ X position of a user-defined cursor for profiles.
+
- CURSOR_X
+ CURSOR_X
+
$(P)$(R)CursorX
- $(P)$(R)CursorX_RBV
+ $(P)$(R)CursorX_RBV
+
longout
- longin
+ longin
+
NDPluginStats
- CursorY
+ CursorY
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- Y position of a user-defined cursor for profiles.
+ Y position of a user-defined cursor for profiles.
+
- CURSOR_Y
+ CURSOR_Y
+
$(P)$(R)CursorY
- $(P)$(R)CursorY_RBV
+ $(P)$(R)CursorY_RBV
+
longout
- longin
+ longin
+
NDPluginStats
- ProfileAverageX
+ ProfileAverageX
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
Profile of the average row in the array, i.e. the sum of all rows in the array divided
- by the number of rows.
+ by the number of rows.
+
- PROFILE_AVERAGE_X
+ PROFILE_AVERAGE_X
+
- $(P)$(R)ProfileAverageX_RBV
+ $(P)$(R)ProfileAverageX_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileAverageY
+ ProfileAverageY
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
Profile of the average column in the array, i.e. the sum of all columns in the array
- divided by the number of columns.
+ divided by the number of columns.
+
- PROFILE_AVERAGE_Y
+ PROFILE_AVERAGE_Y
+
- $(P)$(R)ProfileAverageY_RBV
+ $(P)$(R)ProfileAverageY_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileThresholdX
+ ProfileThresholdX
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
Same as ProfileAverageX except that all array elements less than CentroidThreshold
- are set to zero when computing the average.
+ are set to zero when computing the average.
+
- PROFILE_THRESHOLD_X
+ PROFILE_THRESHOLD_X
+
- $(P)$(R)ProfileThresholdX_RBV
+ $(P)$(R)ProfileThresholdX_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileThresholdY
+ ProfileThresholdY
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
Same as ProfileAverageY except that all array elements less than CentroidThreshold
- are set to zero when computing the average.
+ are set to zero when computing the average.
+
- PROFILE_THRESHOLD_Y
+ PROFILE_THRESHOLD_Y
+
- $(P)$(R)ProfileThresholdY_RBV
+ $(P)$(R)ProfileThresholdY_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileCentroidX
+ ProfileCentroidX
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- X profile through the array in the row defined by CentroidY.
+ X profile through the array in the row defined by CentroidY.
+
- PROFILE_CENTROID_X
+ PROFILE_CENTROID_X
+
- $(P)$(R)ProfileCentroidX_RBV
+ $(P)$(R)ProfileCentroidX_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileCentroidY
+ ProfileCentroidY
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- Y profile through the array in the column defined by CentroidX.
+ Y profile through the array in the column defined by CentroidX.
+
- PROFILE_CENTROID_Y
+ PROFILE_CENTROID_Y
+
- $(P)$(R)ProfileCentroidY_RBV
+ $(P)$(R)ProfileCentroidY_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileCursorX
+ ProfileCursorX
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- X profile through the array in the row defined by CursorY.
+ X profile through the array in the row defined by CursorY.
+
- PROFILE_CURSOR_X
+ PROFILE_CURSOR_X
+
- $(P)$(R)ProfileCursorX_RBV
+ $(P)$(R)ProfileCursorX_RBV
+
- waveform
+ waveform
+
NDPluginStats
- ProfileCursorY
+ ProfileCursorY
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- Y profile through the array in the row defined by CursorX.
+ Y profile through the array in the row defined by CursorX.
+
- PROFILE_CURSOR_Y
+ PROFILE_CURSOR_Y
+
- $(P)$(R)ProfileCursorY_RBV
+ $(P)$(R)ProfileCursorY_RBV
+
- waveform
+ waveform
+
- Array histogram
+ Array histogram
+
NDPluginStats
- ComputeHistogram
+ ComputeHistogram
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
Flag to control whether to compute the histogram for this array (0=No, 1=Yes). Not
- computing the histogram reduces CPU load.
+ computing the histogram reduces CPU load.
+
- COMPUTE_HISTOGRAM
+ COMPUTE_HISTOGRAM
+
$(P)$(R)ComputeHistogram
- $(P)$(R)ComputeHistogram_RBV
+ $(P)$(R)ComputeHistogram_RBV
+
bo
- bi
+ bi
+
NDPluginStats
- HistSize
+ HistSize
+
- asynInt32
+ asynInt32
+
- r/w
+ r/w
+
- Number of elements (bins) in the histogram
+ Number of elements (bins) in the histogram
+
- HIST_SIZE
+ HIST_SIZE
+
$(P)$(R)HistSize
- $(P)$(R)HistSize_RBV
+ $(P)$(R)HistSize_RBV
+
longout
- longin
+ longin
+
NDPluginStats
- HistMin
+ HistMin
+
- asynFloat64
+ asynFloat64
+
- r/w
+ r/w
+
Minimum value for the histogram. All values less than this will be counted in HistBelow.
- HIST_MIN
+ HIST_MIN
+
$(P)$(R)HistMin
- $(P)$(R)HistMin_RBV
+ $(P)$(R)HistMin_RBV
+
ao
- ai
+ ai
+
NDPluginStats
- HistMax
+ HistMax
+
- asynFloat64
+ asynFloat64
+
- r/w
+ r/w
+
Maximum value for the histogram. All values greater than this will be counted in
- HistAbove.
+ HistAbove.
+
- HIST_MAX
+ HIST_MAX
+
$(P)$(R)HistMax
- $(P)$(R)HistMax_RBV
+ $(P)$(R)HistMax_RBV
+
ao
- ai
+ ai
+
NDPluginStats
- HistBelow
+ HistBelow
+
- asynInt32
+ asynInt32
+
- r/o
+ r/o
+
- Count of all values less than HistMin.
+ Count of all values less than HistMin.
+
- HIST_BELOW
+ HIST_BELOW
+
- $(P)$(R)HistBelow_RBV
+ $(P)$(R)HistBelow_RBV
+
- longin
+ longin
+
NDPluginStats
- HistAbove
+ HistAbove
+
- asynInt32
+ asynInt32
+
- r/o
+ r/o
+
- Count of all values greater than HistMax.
+ Count of all values greater than HistMax.
+
- HIST_ABOVE
+ HIST_ABOVE
+
- $(P)$(R)HistAbove_RBV
+ $(P)$(R)HistAbove_RBV
+
- longin
+ longin
+
NDPluginStats
- HistEntropy
+ HistEntropy
+
- asynFloat64
+ asynFloat64
+
- r/o
+ r/o
+
Entropy of the image. This is a measure of the sharpness of the histogram, and is
often a useful figure of merit for determining sharpness of focus, etc. It is defined
as -SUM(BIN[i]*log(BIN[i]), where the sum is over the number of bins in the histogram
- and BIN[i] is the number of elements in bin i.
+ and BIN[i] is the number of elements in bin i.
+
- HIST_ENTROPY
+ HIST_ENTROPY
+
- $(P)$(R)HistEntropy_RBV
+ $(P)$(R)HistEntropy_RBV
+
- ai
+ ai
+
NDPluginStats
- HistArray
+ HistArray
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- Histogram array, i.e. counts in each histogram bin.
+ Histogram array, i.e. counts in each histogram bin.
+
- HIST_ARRAY
+ HIST_ARRAY
+
- $(P)$(R)Histogram_RBV
+ $(P)$(R)Histogram_RBV
+
- waveform
+ waveform
+
NDPluginStats
- HistXArray
+ HistXArray
+
- asynFloat64Array
+ asynFloat64Array
+
- r/o
+ r/o
+
- Histogram X-axis array, i.e. minimum intensity in each histogram bin.
+ Histogram X-axis array, i.e. minimum intensity in each histogram bin.
+
- HIST_X_ARRAY
+ HIST_X_ARRAY
+
- $(P)$(R)HistogramX_RBV
+ $(P)$(R)HistogramX_RBV
+
- waveform
+ waveform
+
@@ -1252,26 +1496,26 @@
- The following MEDM screen shows the the total counts from the Stats5 plugin. This
+ The following MEDM screen shows the the total counts from the Stats1 plugin. This
is the total counts as a function of time.
NDTimeSeries.adl
-
+
- The following MEDM screen shows the Y centroid as a function of time from the Stats5
+ The following MEDM screen shows the Y centroid as a function of time from the Stats1
plugin.
NDTimeSeries.adl
-
+
The following MEDM screen shows all of the basic statistics as a function of time
- from the Stats5 plugin.
+ from the Stats1 plugin.
@@ -1280,7 +1524,7 @@
The following MEDM screen shows all of the centroid statistics as a function of
- time from the Stats5 plugin.
+ time from the Stats1 plugin.