Remove special case for ec-emtry. Handle in ecmc instead.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user