Fetching data works..

This commit is contained in:
2024-03-04 17:13:23 +01:00
parent 760c2d786b
commit 9b1987eaf0
3 changed files with 30 additions and 38 deletions

View File

@@ -48,7 +48,7 @@ void ecmcDAQDataChannel::connectToDataSources() {
(*pDataItem)->connectToSource();
dataElementCount_ = dataElementCount_ + (*pDataItem)->getDataElementCount();
}
printf("ecmcDAQDataChannel::connectToDataSources()::dataElementCount_=%d\n",dataElementCount_);
printf("ecmcDAQDataChannel::connectToDataSources()::dataElementCount_=%zu\n",dataElementCount_);
dataSourcesLinked_ = 1;
}
@@ -63,27 +63,33 @@ double ecmcDAQDataChannel::getType() {
double ecmcDAQDataChannel::getData(int first){
if(first) {
currItemIndex_ = 0;
} else {
first = false;
returnedDataCounter_= 0;;
}
if(dataItems_[currItemIndex_]->empty() && currItemIndex_+1 < itemCounter_) {
// get first index of next dataItem
first = true;
currItemIndex_++;
// Get data from the first index
dataItems_[currItemIndex_]->resetIndex(first);
if(dataItems_[currItemIndex_]->empty()){
if(currItemIndex_ < itemCounter_ - 1) {
first = true;
currItemIndex_++;
dataItems_[currItemIndex_]->resetIndex(first);
} else {
printf("ecmcDAQDataChannel::ERROR: No more data item in list but array still requires data (items %zu)\n",itemCounter_);
return -1;
}
}
if(currItemIndex_ >= itemCounter_) {
printf("No more data here!!!\n");
printf("ecmcDAQDataChannel::ERROR: item counter out of range (items %zu)\n",itemCounter_);
return 0;
//throw std::runtime_error( "Item index out of range");
}
returnedDataCounter_++;
return dataItems_[currItemIndex_]->getData(first);
return dataItems_[currItemIndex_]->getData();
}
bool ecmcDAQDataChannel::empty(){
return 1;
return dataElementCount_>=returnedDataCounter_;
bool ecmcDAQDataChannel::empty(){
return returnedDataCounter_>=dataElementCount_;
}