Fixes after MAX IV experiment

This commit is contained in:
2024-02-05 17:18:16 +01:00
parent 91a0960303
commit babb1a5c8d
151 changed files with 4395 additions and 1477 deletions
+46
View File
@@ -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;
}