diff --git a/writer/HDF5NXmx.cpp b/writer/HDF5NXmx.cpp index 86ab79b0..605ffdae 100644 --- a/writer/HDF5NXmx.cpp +++ b/writer/HDF5NXmx.cpp @@ -371,6 +371,21 @@ void NXmx::Detector(const StartMessage &start) { } void NXmx::Detector(const StartMessage &start, const EndMessage &end) { + hsize_t total_images = end.max_image_number; + hsize_t width = start.image_size_x; + hsize_t height = start.image_size_y; + + if (start.file_format == FileWriterFormat::NXmxLegacy) { + auto data_dataset = VDS(start, + "/entry/instrument/detector/data", + {total_images, height, width}, + HDF5DataType(start.bit_depth_image / 8, start.pixel_signed)); + data_dataset->Attr("image_nr_low", (int32_t) 1) + .Attr("image_nr_high",(int32_t) total_images); + } else { + hdf5_file->HardLink("/entry/data/data", "/entry/instrument/detector/data"); + } + if (start.images_per_trigger.has_value() && start.images_per_trigger.value() > 0) { SaveScalar(*hdf5_file, "/entry/instrument/detector/detectorSpecific/nimages", start.images_per_trigger.value()); SaveScalar(*hdf5_file, "/entry/instrument/detector/detectorSpecific/ntrigger", (end.max_image_number + start.images_per_trigger.value() - 1)/ start.images_per_trigger.value());