From b163fcab9869aedb988bebdc48ac559cfe136350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Tue, 10 Nov 2020 14:00:23 +0100 Subject: [PATCH] Remove special case for ec-emtry. Handle in ecmc instead. --- .../ecmcPlugin_FFTApp/src/ecmcFFT.cpp | 38 ++----------------- .../ecmcPlugin_FFTApp/src/ecmcFFT.h | 3 -- 2 files changed, 4 insertions(+), 37 deletions(-) diff --git a/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.cpp b/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.cpp index 8f365e7..df27ee1 100644 --- a/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.cpp +++ b/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.cpp @@ -106,7 +106,6 @@ ecmcFFT::ecmcFFT(int fftIndex, // index of this object (if several is cr cycleCounter_ = 0; ignoreCycles_ = 0; dataSourceLinked_ = 0; - isEcEntry_ = 0; // Asyn asynEnableId_ = -1; // Enable/disable acq./calcs @@ -302,7 +301,7 @@ void ecmcFFT::connectToDataSource() { if( dataSourceLinked_ ) { return; } - isEcEntry_ = sourceIsEcEntry(); + // Get dataItem dataItem_ = (ecmcDataItem*) getEcmcDataItem(cfgDataSourceStr_); if(!dataItem_) { @@ -373,13 +372,9 @@ void ecmcFFT::dataUpdatedCallback(uint8_t* data, size_t dataElementSize = getEcDataTypeByteSize(dt); - // Special case for ec data 8byte but might only be a single 2 byte value.. - if(isEcEntry_) { - size = dataElementSize; // Only one loop below - } - uint8_t *pData = data; - for(unsigned int i = 0; i < size / dataElementSize; ++i) { + for(unsigned int i = 0; i < size / dataElementSize; ++i) { + //printf("dataElementSize=%d, size=%d\n",dataElementSize,size); switch(dt) { case ECMC_EC_U8: addDataToBuffer((double)getUint8(pData)); @@ -475,12 +470,7 @@ void ecmcFFT::calcFFTXAxis() { double freq = 0; size_t size = dataItemInfo_->dataSize; - - // Specail case for ecdata.. always 8byte but might only accupy a 1 byte element - if(isEcEntry_) { - size = dataItemInfo_->dataElementSize; //Only one element per sample.. - } - + double deltaFreq = ecmcSampleRateHz_* ((double)size / (double)dataItemInfo_->dataElementSize) / ((double)(cfgNfft_)); for(unsigned int i = 0; i < (cfgNfft_ / 2 + 1); ++i) { @@ -1041,23 +1031,3 @@ int ecmcFFT::leastSquare(int n, const double y[], double* k, double* m){ *m = (sumy * sumx2 - sumx * sumxy) / denom; return 0; } - -/*Ec data is always 8byte but still is just 1 element need specail treatment!!!!!*/ -int ecmcFFT::sourceIsEcEntry() { - int master=-1; - int slave =-1; - int bit = -1; - char buffer[ECMC_MAX_FIELD_CHAR_LENGTH]; - - int errorCode = parseEcPath(cfgDataSourceStr_, - &master, - &slave, - &buffer[0], - &bit); - - if(errorCode) { - return 0; //is _not_ ec entry - } - - return 1; //is ec entry -} diff --git a/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.h b/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.h index f730066..37f4dad 100644 --- a/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.h +++ b/ecmcPlugin_FFT-loc/ecmcPlugin_FFTApp/src/ecmcFFT.h @@ -68,7 +68,6 @@ class ecmcFFT : public asynPortDriver { void initAsyn(); void updateStatus(FFT_STATUS status); // Also updates asynparam static int dataTypeSupported(ecmcEcDataType dt); - int sourceIsEcEntry(); ecmcDataItem *dataItem_; ecmcDataItemInfo *dataItemInfo_; @@ -105,8 +104,6 @@ class ecmcFFT : public asynPortDriver { FFT_MODE cfgMode_; // Config: Mode continous or triggered. double cfgFFTSampleRateHz_; // Config: Sample rate (defaukts to ecmc rate) double cfgScale_; - - bool isEcEntry_; // Asyn int asynEnableId_; // Enable/disable acq./calcs