mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
removing warnings, hdfmutexlib moved from class member in dataprocessor to just arguments when required in dataprocessor (setupfilewriter and createvirtualfile)
This commit is contained in:
@ -34,15 +34,14 @@ DataProcessor::DataProcessor(int index, detectorType detectorType, Fifo *fifo,
|
|||||||
uint32_t *streamingTimerInMs,
|
uint32_t *streamingTimerInMs,
|
||||||
uint32_t *streamingStartFnum, bool *framePadding,
|
uint32_t *streamingStartFnum, bool *framePadding,
|
||||||
std::vector<int> *ctbDbitList, int *ctbDbitOffset,
|
std::vector<int> *ctbDbitList, int *ctbDbitOffset,
|
||||||
int *ctbAnalogDataBytes, std::mutex *hdf5Lib)
|
int *ctbAnalogDataBytes)
|
||||||
: ThreadObject(index, typeName_), fifo_(fifo), detectorType_(detectorType),
|
: ThreadObject(index, typeName_), fifo_(fifo), detectorType_(detectorType),
|
||||||
dataStreamEnable_(dataStreamEnable), activated_(activated),
|
dataStreamEnable_(dataStreamEnable), activated_(activated),
|
||||||
streamingFrequency_(streamingFrequency),
|
streamingFrequency_(streamingFrequency),
|
||||||
streamingTimerInMs_(streamingTimerInMs),
|
streamingTimerInMs_(streamingTimerInMs),
|
||||||
streamingStartFnum_(streamingStartFnum), framePadding_(framePadding),
|
streamingStartFnum_(streamingStartFnum), framePadding_(framePadding),
|
||||||
ctbDbitList_(ctbDbitList), ctbDbitOffset_(ctbDbitOffset),
|
ctbDbitList_(ctbDbitList), ctbDbitOffset_(ctbDbitOffset),
|
||||||
ctbAnalogDataBytes_(ctbAnalogDataBytes), firstStreamerFrame_(false),
|
ctbAnalogDataBytes_(ctbAnalogDataBytes), firstStreamerFrame_(false) {
|
||||||
hdf5Lib_(hdf5Lib) {
|
|
||||||
|
|
||||||
LOG(logDEBUG) << "DataProcessor " << index << " created";
|
LOG(logDEBUG) << "DataProcessor " << index << " created";
|
||||||
|
|
||||||
@ -124,16 +123,16 @@ void DataProcessor::DeleteFiles() {
|
|||||||
void DataProcessor::SetupFileWriter(const bool filewriteEnable,
|
void DataProcessor::SetupFileWriter(const bool filewriteEnable,
|
||||||
const bool masterFilewriteEnable,
|
const bool masterFilewriteEnable,
|
||||||
const fileFormat fileFormatType,
|
const fileFormat fileFormatType,
|
||||||
const int modulePos) {
|
const int modulePos, std::mutex *hdf5Lib) {
|
||||||
DeleteFiles();
|
DeleteFiles();
|
||||||
if (filewriteEnable) {
|
if (filewriteEnable) {
|
||||||
switch (fileFormatType) {
|
switch (fileFormatType) {
|
||||||
#ifdef HDF5C
|
#ifdef HDF5C
|
||||||
case HDF5:
|
case HDF5:
|
||||||
dataFile_ = new HDF5DataFile(index, hdf5Lib_);
|
dataFile_ = new HDF5DataFile(index, hdf5Lib);
|
||||||
if (modulePos == 0 && index == 0) {
|
if (modulePos == 0 && index == 0) {
|
||||||
if (masterFilewriteEnable) {
|
if (masterFilewriteEnable) {
|
||||||
masterFile_ = new HDF5MasterFile(hdf5Lib_);
|
masterFile_ = new HDF5MasterFile(hdf5Lib);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -208,12 +207,13 @@ void DataProcessor::CreateVirtualFile(
|
|||||||
const uint64_t fileIndex, const bool overWriteEnable, const bool silentMode,
|
const uint64_t fileIndex, const bool overWriteEnable, const bool silentMode,
|
||||||
const int modulePos, const int numUnitsPerReadout,
|
const int modulePos, const int numUnitsPerReadout,
|
||||||
const uint32_t maxFramesPerFile, const uint64_t numImages,
|
const uint32_t maxFramesPerFile, const uint64_t numImages,
|
||||||
const uint32_t dynamicRange, const int numModX, const int numModY) {
|
const uint32_t dynamicRange, const int numModX, const int numModY,
|
||||||
|
std::mutex *hdf5Lib) {
|
||||||
|
|
||||||
if (virtualFile_) {
|
if (virtualFile_) {
|
||||||
delete virtualFile_;
|
delete virtualFile_;
|
||||||
}
|
}
|
||||||
virtualFile_ = new HDF5VirtualFile(hdf5Lib_);
|
virtualFile_ = new HDF5VirtualFile(hdf5Lib);
|
||||||
|
|
||||||
uint64_t numImagesProcessed = GetProcessedIndex() + 1;
|
uint64_t numImagesProcessed = GetProcessedIndex() + 1;
|
||||||
// maxframesperfile = 0 for infinite files
|
// maxframesperfile = 0 for infinite files
|
||||||
|
@ -32,7 +32,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
|||||||
uint32_t *streamingFrequency, uint32_t *streamingTimerInMs,
|
uint32_t *streamingFrequency, uint32_t *streamingTimerInMs,
|
||||||
uint32_t *streamingStartFnum, bool *framePadding,
|
uint32_t *streamingStartFnum, bool *framePadding,
|
||||||
std::vector<int> *ctbDbitList, int *ctbDbitOffset,
|
std::vector<int> *ctbDbitList, int *ctbDbitOffset,
|
||||||
int *ctbAnalogDataBytes, std::mutex *hdf5Lib);
|
int *ctbAnalogDataBytes);
|
||||||
|
|
||||||
~DataProcessor() override;
|
~DataProcessor() override;
|
||||||
|
|
||||||
@ -52,7 +52,8 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
|||||||
void DeleteFiles();
|
void DeleteFiles();
|
||||||
void SetupFileWriter(const bool filewriteEnable,
|
void SetupFileWriter(const bool filewriteEnable,
|
||||||
const bool masterFilewriteEnable,
|
const bool masterFilewriteEnable,
|
||||||
const fileFormat fileFormatType, const int modulePos);
|
const fileFormat fileFormatType, const int modulePos,
|
||||||
|
std::mutex *hdf5Lib);
|
||||||
|
|
||||||
void CreateFirstFiles(MasterAttributes *attr, const std::string filePath,
|
void CreateFirstFiles(MasterAttributes *attr, const std::string filePath,
|
||||||
const std::string fileNamePrefix,
|
const std::string fileNamePrefix,
|
||||||
@ -73,7 +74,7 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
|||||||
const uint32_t maxFramesPerFile,
|
const uint32_t maxFramesPerFile,
|
||||||
const uint64_t numImages,
|
const uint64_t numImages,
|
||||||
const uint32_t dynamicRange, const int numModX,
|
const uint32_t dynamicRange, const int numModX,
|
||||||
const int numModY);
|
const int numModY, std::mutex *hdf5Lib);
|
||||||
void LinkDataInMasterFile(const bool silentMode);
|
void LinkDataInMasterFile(const bool silentMode);
|
||||||
#endif
|
#endif
|
||||||
void UpdateMasterFile(bool silentMode);
|
void UpdateMasterFile(bool silentMode);
|
||||||
@ -188,7 +189,6 @@ class DataProcessor : private virtual slsDetectorDefs, public ThreadObject {
|
|||||||
|
|
||||||
File *dataFile_{nullptr};
|
File *dataFile_{nullptr};
|
||||||
File *masterFile_{nullptr};
|
File *masterFile_{nullptr};
|
||||||
std::mutex *hdf5Lib_;
|
|
||||||
#ifdef HDF5C
|
#ifdef HDF5C
|
||||||
File *virtualFile_{nullptr};
|
File *virtualFile_{nullptr};
|
||||||
#endif
|
#endif
|
||||||
|
@ -174,7 +174,7 @@ void Implementation::setDetectorType(const detectorType d) {
|
|||||||
i, detType, fifo_ptr, &activated, &dataStreamEnable,
|
i, detType, fifo_ptr, &activated, &dataStreamEnable,
|
||||||
&streamingFrequency, &streamingTimerInMs, &streamingStartFnum,
|
&streamingFrequency, &streamingTimerInMs, &streamingStartFnum,
|
||||||
&framePadding, &ctbDbitList, &ctbDbitOffset,
|
&framePadding, &ctbDbitList, &ctbDbitOffset,
|
||||||
&ctbAnalogDataBytes, &hdf5Lib));
|
&ctbAnalogDataBytes));
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
listener.clear();
|
listener.clear();
|
||||||
dataProcessor.clear();
|
dataProcessor.clear();
|
||||||
@ -237,7 +237,7 @@ void Implementation::setModulePositionId(const int id) {
|
|||||||
|
|
||||||
for (const auto &it : dataProcessor)
|
for (const auto &it : dataProcessor)
|
||||||
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
||||||
fileFormatType, modulePos);
|
fileFormatType, modulePos, &hdf5Lib);
|
||||||
assert(numMods[1] != 0);
|
assert(numMods[1] != 0);
|
||||||
for (unsigned int i = 0; i < listener.size(); ++i) {
|
for (unsigned int i = 0; i < listener.size(); ++i) {
|
||||||
uint16_t row = 0, col = 0;
|
uint16_t row = 0, col = 0;
|
||||||
@ -345,7 +345,7 @@ void Implementation::setFileFormat(const fileFormat f) {
|
|||||||
}
|
}
|
||||||
for (const auto &it : dataProcessor)
|
for (const auto &it : dataProcessor)
|
||||||
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
||||||
fileFormatType, modulePos);
|
fileFormatType, modulePos, &hdf5Lib);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG(logINFO) << "File Format: " << sls::ToString(fileFormatType);
|
LOG(logINFO) << "File Format: " << sls::ToString(fileFormatType);
|
||||||
@ -382,7 +382,7 @@ void Implementation::setFileWriteEnable(const bool b) {
|
|||||||
fileWriteEnable = b;
|
fileWriteEnable = b;
|
||||||
for (const auto &it : dataProcessor)
|
for (const auto &it : dataProcessor)
|
||||||
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
||||||
fileFormatType, modulePos);
|
fileFormatType, modulePos, &hdf5Lib);
|
||||||
}
|
}
|
||||||
LOG(logINFO) << "File Write Enable: "
|
LOG(logINFO) << "File Write Enable: "
|
||||||
<< (fileWriteEnable ? "enabled" : "disabled");
|
<< (fileWriteEnable ? "enabled" : "disabled");
|
||||||
@ -397,7 +397,7 @@ void Implementation::setMasterFileWriteEnable(const bool b) {
|
|||||||
masterFileWriteEnable = b;
|
masterFileWriteEnable = b;
|
||||||
for (const auto &it : dataProcessor)
|
for (const auto &it : dataProcessor)
|
||||||
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
it->SetupFileWriter(fileWriteEnable, masterFileWriteEnable,
|
||||||
fileFormatType, modulePos);
|
fileFormatType, modulePos, &hdf5Lib);
|
||||||
}
|
}
|
||||||
LOG(logINFO) << "Master File Write Enable: "
|
LOG(logINFO) << "Master File Write Enable: "
|
||||||
<< (masterFileWriteEnable ? "enabled" : "disabled");
|
<< (masterFileWriteEnable ? "enabled" : "disabled");
|
||||||
@ -566,7 +566,7 @@ void Implementation::stopReceiver() {
|
|||||||
dataProcessor[0]->CreateVirtualFile(
|
dataProcessor[0]->CreateVirtualFile(
|
||||||
filePath, fileName, fileIndex, overwriteEnable, silentMode,
|
filePath, fileName, fileIndex, overwriteEnable, silentMode,
|
||||||
modulePos, numThreads, framesPerFile, numberOfTotalFrames,
|
modulePos, numThreads, framesPerFile, numberOfTotalFrames,
|
||||||
dynamicRange, numMods[X], numMods[Y]);
|
dynamicRange, numMods[X], numMods[Y], &hdf5Lib);
|
||||||
}
|
}
|
||||||
// link file in master
|
// link file in master
|
||||||
dataProcessor[0]->LinkDataInMasterFile(silentMode);
|
dataProcessor[0]->LinkDataInMasterFile(silentMode);
|
||||||
@ -895,7 +895,7 @@ void Implementation::setNumberofUDPInterfaces(const int n) {
|
|||||||
i, detType, fifo_ptr, &activated, &dataStreamEnable,
|
i, detType, fifo_ptr, &activated, &dataStreamEnable,
|
||||||
&streamingFrequency, &streamingTimerInMs,
|
&streamingFrequency, &streamingTimerInMs,
|
||||||
&streamingStartFnum, &framePadding, &ctbDbitList,
|
&streamingStartFnum, &framePadding, &ctbDbitList,
|
||||||
&ctbDbitOffset, &ctbAnalogDataBytes, &hdf5Lib));
|
&ctbDbitOffset, &ctbAnalogDataBytes));
|
||||||
dataProcessor[i]->SetGeneralData(generalData);
|
dataProcessor[i]->SetGeneralData(generalData);
|
||||||
} catch (...) {
|
} catch (...) {
|
||||||
listener.clear();
|
listener.clear();
|
||||||
|
Reference in New Issue
Block a user