From 2d33f31ec022b783273772436430d9822a6759b7 Mon Sep 17 00:00:00 2001 From: Alice Date: Mon, 27 Jul 2026 18:45:23 +0200 Subject: [PATCH] enabled data processor should write to master file --- slsReceiverSoftware/src/DataProcessor.cpp | 3 +++ slsReceiverSoftware/src/DataProcessor.h | 1 + slsReceiverSoftware/src/Implementation.cpp | 14 ++++++++++---- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/slsReceiverSoftware/src/DataProcessor.cpp b/slsReceiverSoftware/src/DataProcessor.cpp index f6359274c..56369cbdc 100644 --- a/slsReceiverSoftware/src/DataProcessor.cpp +++ b/slsReceiverSoftware/src/DataProcessor.cpp @@ -63,6 +63,8 @@ void DataProcessor::SetDataStreamEnable(bool enable) { dataStreamEnable = enable; } +bool DataProcessor::GetDataStreamEnable() const { return dataStreamEnable; } + void DataProcessor::SetStreamingFrequency(uint32_t value) { streamingFrequency = value; } @@ -329,6 +331,7 @@ void DataProcessor::ProcessAnImage(sls_receiver_header &header, size_t &size, uint64_t fnum = header.detHeader.frameNumber; LOG(logDEBUG1) << "DataProcessing " << index << ": fnum:" << fnum; currentFrameIndex = fnum; + LOG(logDEBUG) << "numFramesCaught:" << numFramesCaught; numFramesCaught++; uint32_t nump = header.detHeader.packetNumber; diff --git a/slsReceiverSoftware/src/DataProcessor.h b/slsReceiverSoftware/src/DataProcessor.h index 0f9dadaef..da7788af5 100644 --- a/slsReceiverSoftware/src/DataProcessor.h +++ b/slsReceiverSoftware/src/DataProcessor.h @@ -43,6 +43,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject { void SetPortROI(const ROI arg); void setMultiROIMetadata(const std::vector &args); void SetDataStreamEnable(bool enable); + bool GetDataStreamEnable() const; void SetStreamingFrequency(uint32_t value); void SetStreamingTimerInMs(uint32_t value); void SetStreamingStartFnum(uint32_t value); diff --git a/slsReceiverSoftware/src/Implementation.cpp b/slsReceiverSoftware/src/Implementation.cpp index 6a78b764e..f5f15e93e 100644 --- a/slsReceiverSoftware/src/Implementation.cpp +++ b/slsReceiverSoftware/src/Implementation.cpp @@ -203,7 +203,9 @@ void Implementation::SetupDataProcessor(int i) { dataProcessor[i]->SetActivate(activated); dataProcessor[i]->SetPortROI(portRois[i]); if (i == 0) - dataProcessor[0]->setMultiROIMetadata(multiRoiMetadata); + dataProcessor[0]->setMultiROIMetadata( + multiRoiMetadata); // TODO: Info should also be in all but doesnt + // make sense to disable one port and have ROI dataProcessor[i]->SetDataStreamEnable(dataStreamEnable); dataProcessor[i]->SetStreamingFrequency(streamingFrequency); dataProcessor[i]->SetStreamingTimerInMs(streamingTimerInMs); @@ -1013,9 +1015,13 @@ void Implementation::StartMasterWriter() { masterAttributes.udpPortsDisabled = udpPortsDisabledMetadata; // create master file - masterFileName = dataProcessor[0]->CreateMasterFile( - filePath, fileName, fileIndex, overwriteEnable, silentMode, - fileFormatType, &masterAttributes, &hdf5LibMutex); + size_t dataprocessor_index = + dataProcessor[0]->GetDataStreamEnable() ? 0 : 1; + + masterFileName = + dataProcessor[dataprocessor_index]->CreateMasterFile( + filePath, fileName, fileIndex, overwriteEnable, silentMode, + fileFormatType, &masterAttributes, &hdf5LibMutex); } #ifdef HDF5C // create virtual and master file