From f5176b56a91c2010fb1af6639728662789b665b2 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Fri, 8 May 2026 17:45:42 +0200 Subject: [PATCH] DiffractionExperiment: Max image number is 2 million + 1; it is unsafe to collect more --- common/Definitions.h | 2 ++ common/DiffractionExperiment.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/common/Definitions.h b/common/Definitions.h index 7ab85585..8fd9eb83 100644 --- a/common/Definitions.h +++ b/common/Definitions.h @@ -17,6 +17,8 @@ constexpr size_t CONVERTED_MODULE_COLS = 1030; constexpr size_t CONVERTED_MODULE_SIZE = CONVERTED_MODULE_LINES * CONVERTED_MODULE_COLS; constexpr size_t JUNGFRAU_PACKET_SIZE_BYTES = 8192; +constexpr int MAX_IMAGE_NUMBER = 2*1024*1024; + constexpr std::chrono::nanoseconds MIN_COUNT_TIME = std::chrono::microseconds(3); constexpr std::chrono::nanoseconds MIN_STORAGE_CELL_DELAY = std::chrono::nanoseconds(2100); constexpr std::chrono::nanoseconds MIN_FRAME_TIME_JUNGFRAU_HALF_SPEED = std::chrono::microseconds(1000); diff --git a/common/DiffractionExperiment.cpp b/common/DiffractionExperiment.cpp index d9cf91be..e3b6cd5b 100644 --- a/common/DiffractionExperiment.cpp +++ b/common/DiffractionExperiment.cpp @@ -1060,6 +1060,12 @@ DiffractionExperiment &DiffractionExperiment::ImportDatasetSettings(const Datase + std::to_string(MAX_FRAMES)); } + if (GetImageNum() > MAX_IMAGE_NUMBER) { + dataset = tmp; + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, + "Number of images cannot exceed " + std::to_string(MAX_IMAGE_NUMBER)); + } + return *this; }