Minor modifications to jfjoch_writer and OpenAPI

This commit is contained in:
2024-06-28 20:44:51 +02:00
parent 81df571961
commit 30a92d8eb9
84 changed files with 430 additions and 650 deletions
+22 -4
View File
@@ -67,6 +67,8 @@ DiffractionExperiment::DiffractionExperiment(const DetectorSetup& det_setup)
mode = DetectorMode::Conversion;
max_spot_count = MAX_SPOT_COUNT;
summation = 1;
}
// setter functions
@@ -751,8 +753,8 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const {
message.rotation_axis[2] = GetRotationAxis().z;
}
message.series_id = GetRunNumber();
message.series_unique_id = GetRunName();
message.run_number = GetRunNumber();
message.run_name = GetRunName();
message.gain_file_names = detector.GetGainFileNames();
@@ -762,6 +764,7 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const {
message.data_reduction_factor_serialmx = GetDataReductionFactorSerialMX();
message.experiment_group = dataset.GetExperimentGroup();
message.jfjoch_release = jfjoch_version();
message.detector_serial_number = detector.GetSerialNumber();
}
float DiffractionExperiment::GetPixelSize_mm() const {
@@ -882,7 +885,9 @@ std::chrono::nanoseconds DiffractionExperiment::GetStorageCellDelay() const {
}
DiffractionExperiment &DiffractionExperiment::Summation(int64_t input) {
dataset.Summation(input);
check_min("Summation factor", input, 1);
check_max("Summation factor", input, MAX_FPGA_SUMMATION);
summation = input;
return *this;
}
@@ -898,7 +903,7 @@ int64_t DiffractionExperiment::GetSummation() const {
if (GetStorageCellNumber() > 1)
return 1;
else
return dataset.GetSummation();
return summation;
}
}
@@ -1138,6 +1143,19 @@ int64_t DiffractionExperiment::GetInternalPacketGeneratorImages() const {
DiffractionExperiment &DiffractionExperiment::ImportDatasetSettings(const DatasetSettings &input) {
auto tmp = dataset;
dataset = input;
auto image_time = input.GetImageTime();
if (image_time) {
if (image_time->count() % GetFrameTime().count() != 0)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Image time must be multiple of frame time");
if (GetFrameTime().count() == 0)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Frame time cannot be zero");
this->Summation(image_time.value() / GetFrameTime());
} else
summation = 1;
if (GetFrameNum() >= MAX_FRAMES) {
dataset = tmp;
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,