* Enhancements for XFEL
* Enhancements for EIGER * Writer is more flexible and capable of handling DECTRIS data
This commit is contained in:
+13
-1
@@ -23,6 +23,8 @@ void StreamWriter::CollectImages(std::vector<HDF5DataFileStatistics> &v) {
|
||||
StartMessage start_message = image_puller.GetStartMessage();
|
||||
logger.Info("Starting writing for dataset {} of {} images", start_message.file_prefix, start_message.number_of_images);
|
||||
state = StreamWriterState::Started;
|
||||
uint64_t max_image_number = 0;
|
||||
|
||||
processed_images = 0;
|
||||
processed_image_size = 0;
|
||||
file_prefix = start_message.file_prefix;
|
||||
@@ -41,6 +43,12 @@ void StreamWriter::CollectImages(std::vector<HDF5DataFileStatistics> &v) {
|
||||
}
|
||||
auto image_array = image_puller.GetDataMessage();
|
||||
writer.Write(image_array);
|
||||
if (max_image_number < image_array.number + 1)
|
||||
max_image_number = image_array.number + 1;
|
||||
|
||||
if (start_message.pixel_bit_depth == 0)
|
||||
start_message.pixel_bit_depth = image_array.image.pixel_depth_bytes * 8;
|
||||
|
||||
processed_images++;
|
||||
processed_image_size += image_array.image.size;
|
||||
run = image_puller.WaitForImage();
|
||||
@@ -49,7 +57,11 @@ void StreamWriter::CollectImages(std::vector<HDF5DataFileStatistics> &v) {
|
||||
if (image_puller.GetFrameType() == CBORStream2Deserializer::Type::END) {
|
||||
EndMessage end_message = image_puller.GetEndMessage();
|
||||
end_time = std::chrono::system_clock::now();
|
||||
if (end_message.write_master_file)
|
||||
|
||||
if ((end_message.max_image_number == 0) && (max_image_number > 0))
|
||||
end_message.max_image_number = max_image_number;
|
||||
|
||||
if (!end_message.write_master_file || end_message.write_master_file.value())
|
||||
HDF5Metadata::NXmx(start_message, end_message);
|
||||
state = StreamWriterState::Idle;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user