From 760c2d786b142faca60444aad8ed6b0db99a984d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anders=20Sandstr=C3=B6m?= Date: Mon, 4 Mar 2024 13:58:13 +0100 Subject: [PATCH] WIP --- src/ecmcDAQChannelItem.h | 9 ++++----- src/ecmcDAQDataArray.cpp | 8 ++++---- src/ecmcDAQDataChannel.cpp | 5 +++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/ecmcDAQChannelItem.h b/src/ecmcDAQChannelItem.h index 768dcb9..8ae4bdd 100644 --- a/src/ecmcDAQChannelItem.h +++ b/src/ecmcDAQChannelItem.h @@ -60,6 +60,7 @@ class ecmcDAQChannelItem { float32Ptr_ = NULL; float64Ptr_ = NULL; dataType_ = ECMC_EC_NONE; + printf("ecmcDAQChannelItem: Created new item %s, format %d\n",name,(int)format); } ~ecmcDAQChannelItem() { @@ -123,14 +124,12 @@ class ecmcDAQChannelItem { if(first) { dataIndexToReturn_ = 0; } - dataIndexToReturn_++; - return 0.0; - + if(dataIndexToReturn_ >= dataElementCount_) { printf("ERROR: Try to read outside data buffer for data item %s\n", name_.c_str()); return -1; } - + printf("DATATYPE = %d\n",(int) dataType_); switch (dataType_) { case ECMC_EC_B1: uint8Ptr_ = (uint8_t *)&dataItemInfo_->data[dataIndexToReturn_ * bytesPerElement_]; @@ -215,7 +214,6 @@ class ecmcDAQChannelItem { break; } dataIndexToReturn_++; - return formatData(data,time); } @@ -240,6 +238,7 @@ class ecmcDAQChannelItem { ; break; } + printf("DATA = %lf\n",data); return data; } diff --git a/src/ecmcDAQDataArray.cpp b/src/ecmcDAQDataArray.cpp index e63c980..da483ea 100644 --- a/src/ecmcDAQDataArray.cpp +++ b/src/ecmcDAQDataArray.cpp @@ -158,10 +158,10 @@ void ecmcDAQDataArray::execute() { size_t index = firstDataElementIndex_ ; for(std::vector::iterator pDataCh = dataChannels_.begin(); pDataCh != dataChannels_.end(); ++pDataCh) { //always atleast one data item in a channel. Set "first" bit in call to getData() - buffer_[index]=(*pDataCh)->getData(1); - index++; - while(!(*pDataCh)->empty()) { - buffer_[index]=(*pDataCh)->getData(0); + int first = 1; + for(int i = 0 ; i < (*pDataCh)->getDataElementCount(); i++) { + buffer_[index]=(*pDataCh)->getData(first); + first = 0; } } updateAsyn(); diff --git a/src/ecmcDAQDataChannel.cpp b/src/ecmcDAQDataChannel.cpp index cc328e9..0e73cbc 100644 --- a/src/ecmcDAQDataChannel.cpp +++ b/src/ecmcDAQDataChannel.cpp @@ -48,7 +48,7 @@ void ecmcDAQDataChannel::connectToDataSources() { (*pDataItem)->connectToSource(); dataElementCount_ = dataElementCount_ + (*pDataItem)->getDataElementCount(); } - + printf("ecmcDAQDataChannel::connectToDataSources()::dataElementCount_=%d\n",dataElementCount_); dataSourcesLinked_ = 1; } @@ -67,7 +67,7 @@ double ecmcDAQDataChannel::getData(int first){ first = false; } - if(dataItems_[currItemIndex_]->empty() && currItemIndex_+1empty() && currItemIndex_+1 < itemCounter_) { // get first index of next dataItem first = true; currItemIndex_++; @@ -84,5 +84,6 @@ double ecmcDAQDataChannel::getData(int first){ } bool ecmcDAQDataChannel::empty(){ + return 1; return dataElementCount_>=returnedDataCounter_; }