diff --git a/ADApp/pluginSrc/NDPluginProcess.cpp b/ADApp/pluginSrc/NDPluginProcess.cpp index 4e900cfbf..6c2031e90 100644 --- a/ADApp/pluginSrc/NDPluginProcess.cpp +++ b/ADApp/pluginSrc/NDPluginProcess.cpp @@ -92,6 +92,7 @@ void NDPluginProcess::processCallbacks(NDArray *pArray) } if (enableFilter) { getIntegerParam(NDPluginProcessNumFilter, &numFilter); + if (numFilter < 1) numFilter = 1; getDoubleParam (NDPluginProcessOOffset, &oOffset); getDoubleParam (NDPluginProcessOScale, &oScale); getDoubleParam (NDPluginProcessOC1, &oc1); @@ -235,7 +236,7 @@ void NDPluginProcess::processCallbacks(NDArray *pArray) this->pNDArrayPool->convert(pScratch, &pArrayOut, (NDDataType_t)dataType); } - if (autoOffsetScale && (NULL != pArrayOut)) { + if (autoOffsetScale && (NULL != pArrayOut) && (maxValue > minValue)) { pArrayOut->getInfo(&arrayInfo); double maxScale = pow(2., arrayInfo.bytesPerElement*8) - 1; scale = maxScale /(maxValue-minValue); diff --git a/ADApp/pluginSrc/NDPluginStats.cpp b/ADApp/pluginSrc/NDPluginStats.cpp index ce04be707..7cd0d8359 100644 --- a/ADApp/pluginSrc/NDPluginStats.cpp +++ b/ADApp/pluginSrc/NDPluginStats.cpp @@ -39,6 +39,7 @@ asynStatus NDPluginStats::doComputeHistogramT(NDArray *pArray, NDStats_t *pStats pArray->getInfo(&arrayInfo); nElements = arrayInfo.nElements; + if (pStats->histMax <= pStats->histMin) pStats->histMax = pStats->histMin + 1; scale = (pStats->histSize - 1) / (pStats->histMax - pStats->histMin); pStats->histBelow = 0;