Fixes after MAX IV experiment
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
// Copyright (2019-2024) Paul Scherrer Institute
|
||||
|
||||
#include "HDF5ImagePusher.h"
|
||||
#include "MakeDirectory.h"
|
||||
#include "HDF5NXmx.h"
|
||||
|
||||
void HDF5ImagePusher::StartDataCollection(const StartMessage &message) {
|
||||
std::unique_lock<std::mutex> ul(m);
|
||||
start_message = message;
|
||||
for (auto &i: start_message.pixel_mask)
|
||||
i.Save();
|
||||
for (auto &i: start_message.calibration)
|
||||
i.Save();
|
||||
CheckPath(start_message.file_prefix);
|
||||
MakeDirectory(start_message.file_prefix);
|
||||
writer = std::make_unique<HDF5Writer>(start_message);
|
||||
}
|
||||
|
||||
bool HDF5ImagePusher::EndDataCollection(const EndMessage &message) {
|
||||
std::unique_lock<std::mutex> ul(m);
|
||||
if (!writer)
|
||||
return false;
|
||||
else {
|
||||
writer.reset();
|
||||
try {
|
||||
if (message.write_master_file)
|
||||
HDF5Metadata::NXmx(start_message, message);
|
||||
} catch (...) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
bool HDF5ImagePusher::SendImage(const DataMessage &message) {
|
||||
std::unique_lock<std::mutex> ul(m);
|
||||
if (writer) {
|
||||
try {
|
||||
writer->Write(message);
|
||||
} catch (...) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user