From f6a0b784d5aeeddafe01581d508a2ac93d5beda8 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:10:33 +0200 Subject: [PATCH 01/68] Regression: Better guard for not-finite values --- image_analysis/bragg_integration/Regression.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/image_analysis/bragg_integration/Regression.h b/image_analysis/bragg_integration/Regression.h index 5405804d..67a0af21 100644 --- a/image_analysis/bragg_integration/Regression.h +++ b/image_analysis/bragg_integration/Regression.h @@ -33,7 +33,7 @@ RegressionResult regression(std::vector &x, std::vector &y, const int64_t nelem = 0; for (int i = 0; i < N; i++) { - if (std::isfinite(y[i])) { + if (std::isfinite(y[i]) && std::isfinite(x[i])) { x_sum += x[i]; y_sum += y[i]; x2_sum += x[i] * x[i]; @@ -58,9 +58,11 @@ RegressionResult regression(std::vector &x, std::vector &y, const fptype ss_reg = 0.0; for (int i = 0; i < nelem; i++) { - fptype pred = slope * x[i] + intercept; - ss_tot += (y[i] - y_mean) * (y[i] - y_mean); - ss_reg += (pred - y_mean) * (pred - y_mean); + if (std::isfinite(y[i]) && std::isfinite(x[i])) { + fptype pred = slope * x[i] + intercept; + ss_tot += (y[i] - y_mean) * (y[i] - y_mean); + ss_reg += (pred - y_mean) * (pred - y_mean); + } } fptype r_square = 0.0; -- 2.52.0 From c6c4bac83c6e97205f68fd42052e9a0b46d5e936 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:20:20 +0200 Subject: [PATCH 02/68] ROIMap: Error in input validation --- common/ROIMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/ROIMap.cpp b/common/ROIMap.cpp index 5c9cd0d0..97b0f1e0 100644 --- a/common/ROIMap.cpp +++ b/common/ROIMap.cpp @@ -59,7 +59,7 @@ std::map ROIMap::GetROINameMap() const { } void ROIMap::SetROI(const ROIDefinition &input) { - if (rois.boxes.size() + rois.circles.size() + rois.azimuthal.size() > roi_limit) + if (input.boxes.size() + input.circles.size() + input.azimuthal.size() > roi_limit) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Limit of box ROIs exceeded"); rois = input; -- 2.52.0 From abb37a90131a9304b26845140962818f4b3fe686 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:21:04 +0200 Subject: [PATCH 03/68] CheckPath: Handle empty path explictly --- common/CheckPath.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/common/CheckPath.h b/common/CheckPath.h index ba2f48ac..ebbb7c4c 100644 --- a/common/CheckPath.h +++ b/common/CheckPath.h @@ -8,6 +8,9 @@ #include "JFJochException.h" inline void CheckPath(const std::string &s) { + if (s.empty()) + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, + "Path cannot be empty"); if (s.front() == '/') throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with slash"); -- 2.52.0 From 343c0031a8b20f1630bec1e47ef582a28acd6e1f Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:23:06 +0200 Subject: [PATCH 04/68] ThreadSafeFIFO: Size() runs under mutex --- common/ThreadSafeFIFO.h | 1 + 1 file changed, 1 insertion(+) diff --git a/common/ThreadSafeFIFO.h b/common/ThreadSafeFIFO.h index 89ca3ea2..0b0923ca 100644 --- a/common/ThreadSafeFIFO.h +++ b/common/ThreadSafeFIFO.h @@ -158,6 +158,7 @@ public: }; size_t Size() const { + std::unique_lock ul(m); return set.size(); } }; -- 2.52.0 From 3548c03b533c3de6bca388947a83d456d5a2ff4e Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:24:24 +0200 Subject: [PATCH 05/68] StatusVector: Improve thread-safety --- common/StatusVector.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/StatusVector.cpp b/common/StatusVector.cpp index 112d60d5..fb68a0cd 100644 --- a/common/StatusVector.cpp +++ b/common/StatusVector.cpp @@ -52,10 +52,12 @@ std::optional StatusVector::GetElement(uint32_t id) const { } size_t StatusVector::GetImageNumber() const { + std::unique_lock ul(m); return content.size(); } bool StatusVector::empty() const { + std::unique_lock ul(m); return count == 0; } -- 2.52.0 From 362d3dfbc686d201abd74447a01cb537cc353581 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:24:47 +0200 Subject: [PATCH 06/68] Logger: remove unnecessary mutex --- common/Logger.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/common/Logger.h b/common/Logger.h index d75661ec..548505d9 100644 --- a/common/Logger.h +++ b/common/Logger.h @@ -18,8 +18,6 @@ namespace spdlog { } class Logger { - mutable std::mutex m; - std::shared_ptr spdlog_logger; std::string service; -- 2.52.0 From cab566acc59cba6595c3eb6c3c307eb4a2169b15 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:26:37 +0200 Subject: [PATCH 07/68] DiffractionGeometry: Fix function name --- common/DiffractionGeometry.cpp | 6 +++--- common/DiffractionGeometry.h | 2 +- tests/CalcBraggPredictionTest.cpp | 10 +++++----- tests/DiffractionGeometryTest.cpp | 8 ++++---- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/common/DiffractionGeometry.cpp b/common/DiffractionGeometry.cpp index 2fc01047..51163a59 100644 --- a/common/DiffractionGeometry.cpp +++ b/common/DiffractionGeometry.cpp @@ -14,7 +14,7 @@ Coord DiffractionGeometry::LabCoord(float x, float y) const { } std::pair DiffractionGeometry::GetDirectBeam_pxl() const { - return RecipToDector({0,0,0}); + return RecipToDetector({0,0,0}); } Coord DiffractionGeometry::GetScatteringVector() const { @@ -25,7 +25,7 @@ Coord DiffractionGeometry::DetectorToRecip(float x, float y) const { return LabCoord(x, y).Normalize() / wavelength_A - GetScatteringVector(); } -std::pair DiffractionGeometry::RecipToDector(const Coord &recip) const { +std::pair DiffractionGeometry::RecipToDetector(const Coord &recip) const { auto S_unrotated = recip + GetScatteringVector(); auto S = poni_rot.transpose() * S_unrotated; if (S.z <= 0) @@ -231,7 +231,7 @@ std::pair DiffractionGeometry::ResPhiToPxl(float d_A, float phi_ra float cphi = cosf(phi_rad); float sphi = sinf(phi_rad); - return RecipToDector(Coord{ k * s2t * cphi,k * s2t * sphi,k * (c2t - 1.0f)}); + return RecipToDetector(Coord{ k * s2t * cphi,k * s2t * sphi,k * (c2t - 1.0f)}); } Coord DiffractionGeometry::ProjectToEwaldSphere(const Coord &p0) const { diff --git a/common/DiffractionGeometry.h b/common/DiffractionGeometry.h index f03c7a42..c56eaf3b 100644 --- a/common/DiffractionGeometry.h +++ b/common/DiffractionGeometry.h @@ -46,7 +46,7 @@ public: [[nodiscard]] Coord LabCoord(float x, float y) const; [[nodiscard]] Coord DetectorToRecip(float x, float y) const; - [[nodiscard]] std::pair RecipToDector(const Coord &recip) const; + [[nodiscard]] std::pair RecipToDetector(const Coord &recip) const; [[nodiscard]] float TwoTheta_rad(float x, float y) const; [[nodiscard]] float Phi_rad(float x, float y) const; [[nodiscard]] float PxlToRes(float x, float y) const; diff --git a/tests/CalcBraggPredictionTest.cpp b/tests/CalcBraggPredictionTest.cpp index 0a49cb25..50b609fd 100644 --- a/tests/CalcBraggPredictionTest.cpp +++ b/tests/CalcBraggPredictionTest.cpp @@ -36,7 +36,7 @@ TEST_CASE("BraggPrediction_11keV") { REQUIRE(r.d >= settings.high_res_A); REQUIRE(r.d == Catch::Approx(1/std::sqrt(recip * recip)).margin(0.01f)); REQUIRE(r.dist_ewald == Catch::Approx(std::abs(geom.DistFromEwaldSphere(recip))).epsilon(1e-5)); - auto [x,y] = geom.RecipToDector(recip); + auto [x,y] = geom.RecipToDetector(recip); REQUIRE(r.predicted_x == Catch::Approx(x).margin(0.01)); REQUIRE(r.predicted_y == Catch::Approx(y).margin(0.01)); } @@ -72,7 +72,7 @@ TEST_CASE("BraggPrediction_15keV") { REQUIRE(r.d >= settings.high_res_A); REQUIRE(r.d == Catch::Approx(1/std::sqrt(recip * recip)).margin(0.01f)); REQUIRE(r.dist_ewald == Catch::Approx(std::abs(geom.DistFromEwaldSphere(recip))).epsilon(1e-5)); - auto [x,y] = geom.RecipToDector(recip); + auto [x,y] = geom.RecipToDetector(recip); REQUIRE(r.predicted_x == Catch::Approx(x).margin(0.01)); REQUIRE(r.predicted_y == Catch::Approx(y).margin(0.01)); } @@ -109,7 +109,7 @@ TEST_CASE("BraggPrediction_Rot1_Rot2") { REQUIRE(r.d >= settings.high_res_A); REQUIRE(r.d == Catch::Approx(1/std::sqrt(recip * recip)).margin(0.01f)); REQUIRE(r.dist_ewald == Catch::Approx(std::abs(geom.DistFromEwaldSphere(recip))).epsilon(1e-5)); - auto [x,y] = geom.RecipToDector(recip); + auto [x,y] = geom.RecipToDetector(recip); REQUIRE(r.predicted_x == Catch::Approx(x).margin(0.01)); REQUIRE(r.predicted_y == Catch::Approx(y).margin(0.01)); } @@ -236,7 +236,7 @@ TEST_CASE("BraggPredictionGPU") { REQUIRE(r.d >= settings.high_res_A); REQUIRE(r.d == Catch::Approx(1/std::sqrt(recip * recip)).margin(0.01f)); REQUIRE(r.dist_ewald == Catch::Approx(std::abs(geom.DistFromEwaldSphere(recip))).epsilon(2e-2)); - auto [x,y] = geom.RecipToDector(recip); + auto [x,y] = geom.RecipToDetector(recip); REQUIRE(r.predicted_x == Catch::Approx(x).margin(0.05)); REQUIRE(r.predicted_y == Catch::Approx(y).margin(0.05)); } @@ -273,7 +273,7 @@ TEST_CASE("BraggPredictionGPU_Rot1_Rot2") { REQUIRE(r.d >= settings.high_res_A); REQUIRE(r.d == Catch::Approx(1/std::sqrt(recip * recip)).margin(0.01f)); REQUIRE(r.dist_ewald == Catch::Approx(std::abs(geom.DistFromEwaldSphere(recip))).epsilon(1e-3)); - auto [x,y] = geom.RecipToDector(recip); + auto [x,y] = geom.RecipToDetector(recip); REQUIRE(r.predicted_x == Catch::Approx(x).margin(0.05)); REQUIRE(r.predicted_y == Catch::Approx(y).margin(0.05)); } diff --git a/tests/DiffractionGeometryTest.cpp b/tests/DiffractionGeometryTest.cpp index ef307613..8b60f95f 100644 --- a/tests/DiffractionGeometryTest.cpp +++ b/tests/DiffractionGeometryTest.cpp @@ -15,7 +15,7 @@ TEST_CASE("RecipToDetector_1", "[LinearAlgebra][Coord]") { float pos_x = 512, pos_y = 512; auto recip = geom.DetectorToRecip(pos_x, pos_y); - auto [proj_x, proj_y] = geom.RecipToDector(recip); + auto [proj_x, proj_y] = geom.RecipToDetector(recip); REQUIRE(proj_x == Catch::Approx(pos_x)); REQUIRE(proj_y == Catch::Approx(pos_y)); REQUIRE((recip - geom.DetectorToRecip(proj_x, proj_y)).Length() < 0.00000001f); @@ -29,7 +29,7 @@ TEST_CASE("RecipToDetector_2", "[LinearAlgebra][Coord]") { DiffractionGeometry geom = x.GetDiffractionGeometry(); auto recip = geom.DetectorToRecip(pos_x, pos_y); - auto [proj_x, proj_y] = geom.RecipToDector(recip); + auto [proj_x, proj_y] = geom.RecipToDetector(recip); REQUIRE(proj_x == Catch::Approx(pos_x)); REQUIRE(proj_y == Catch::Approx(pos_y)); REQUIRE((recip - geom.DetectorToRecip(proj_x, proj_y)).Length() < 0.00000001f); @@ -43,7 +43,7 @@ TEST_CASE("RecipToDetector_3", "[LinearAlgebra][Coord]") { DiffractionGeometry geom = x.GetDiffractionGeometry(); auto recip = geom.DetectorToRecip(pos_x, pos_y); - auto [proj_x, proj_y] = geom.RecipToDector(recip); + auto [proj_x, proj_y] = geom.RecipToDetector(recip); REQUIRE(proj_x == Catch::Approx(pos_x)); REQUIRE(proj_y == Catch::Approx(pos_y)); REQUIRE((recip - geom.DetectorToRecip(proj_x, proj_y)).Length() < 0.00000001f); @@ -488,7 +488,7 @@ TEST_CASE("DiffractionGeometry_DetectorToRecip_RecipToDetector_tilted") { for (const auto& [x, y] : test_points) { Coord recip = geom.DetectorToRecip(x, y); - auto [proj_x, proj_y] = geom.RecipToDector(recip); + auto [proj_x, proj_y] = geom.RecipToDetector(recip); CHECK(proj_x == Catch::Approx(x).margin(0.001)); CHECK(proj_y == Catch::Approx(y).margin(0.001)); -- 2.52.0 From 779a1d161e5a0867524fa98594885b32a93d0d05 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:27:33 +0200 Subject: [PATCH 08/68] CrystalLattice: Name fix --- common/CrystalLattice.cpp | 14 +++++++------- common/CrystalLattice.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/common/CrystalLattice.cpp b/common/CrystalLattice.cpp index 6159f93b..32ce9350 100644 --- a/common/CrystalLattice.cpp +++ b/common/CrystalLattice.cpp @@ -19,7 +19,7 @@ CrystalLattice::CrystalLattice(const UnitCell &cell) { / sinf(cell.gamma * DEG_TO_RAD); vec[2] = {cx, cy, sqrtf(cell.c*cell.c-cx*cx-cy*cy)}; - FixHandeness(); + FixHandedness(); } CrystalLattice::CrystalLattice(const Coord &a, const Coord &b, const Coord &c) { @@ -27,7 +27,7 @@ CrystalLattice::CrystalLattice(const Coord &a, const Coord &b, const Coord &c) { vec[1] = b; vec[2] = c; - FixHandeness(); + FixHandedness(); } const Coord &CrystalLattice::Vec0() const { @@ -79,7 +79,7 @@ void CrystalLattice::Sort() { std::swap(vec[0], vec[1]); } -void CrystalLattice::FixHandeness() { +void CrystalLattice::FixHandedness() { if (CalcVolume() < 0) vec[2] *= -1; } @@ -135,7 +135,7 @@ void CrystalLattice::ReorderABEqual() { vec[2] = b; } // else a≈b → keep [a, b, c] - FixHandeness(); + FixHandedness(); } void CrystalLattice::ReorderMonoclinic() { @@ -155,7 +155,7 @@ CrystalLattice CrystalLattice::Multiply(const RotMatrix &input) const { l.vec[0] = input * vec[0]; l.vec[1] = input * vec[1]; l.vec[2] = input * vec[2]; - l.FixHandeness(); + l.FixHandedness(); return l; } @@ -166,7 +166,7 @@ CrystalLattice CrystalLattice::Multiply(const gemmi::Mat33 &c2p) const { l.vec[i][j] = c2p[i][0] * vec[0][j] + c2p[i][1] * vec[1][j] + c2p[i][2] * vec[2][j]; } } - l.FixHandeness(); + l.FixHandedness(); return l; } @@ -195,7 +195,7 @@ void CrystalLattice::Regularize(const gemmi::CrystalSystem &input) { break; default: Sort(); - FixHandeness(); + FixHandedness(); break; } } diff --git a/common/CrystalLattice.h b/common/CrystalLattice.h index 0dd0e3b5..c5cce66a 100644 --- a/common/CrystalLattice.h +++ b/common/CrystalLattice.h @@ -13,7 +13,7 @@ class CrystalLattice { Coord vec[3]; - void FixHandeness(); + void FixHandedness(); public: void ReorderABEqual(); void ReorderMonoclinic(); -- 2.52.0 From 7e090b022a0ed90b6e37154254a19a70a40e88cf Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:28:56 +0200 Subject: [PATCH 09/68] FileWriterSettings: Fix name of function --- broker/OpenAPIConvert.cpp | 4 ++-- common/DiffractionExperiment.cpp | 8 ++++---- common/FileWriterSettings.cpp | 4 ++-- common/FileWriterSettings.h | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/broker/OpenAPIConvert.cpp b/broker/OpenAPIConvert.cpp index cb620533..0bf1349c 100644 --- a/broker/OpenAPIConvert.cpp +++ b/broker/OpenAPIConvert.cpp @@ -779,7 +779,7 @@ ImageBufferStatus Convert(const org::openapitools::server::model::Image_buffer_s org::openapitools::server::model::File_writer_settings Convert(const FileWriterSettings& input) { org::openapitools::server::model::File_writer_settings ret; - ret.setFormat(Convert(input.GetHDF5MasterFormatVersion())); + ret.setFormat(Convert(input.GetFileFormat())); ret.setOverwrite(input.IsOverwriteExistingFiles()); return ret; } @@ -787,7 +787,7 @@ org::openapitools::server::model::File_writer_settings Convert(const FileWriterS FileWriterSettings Convert(const org::openapitools::server::model::File_writer_settings &input) { FileWriterSettings ret; ret.OverwriteExistingFiles(input.isOverwrite()); - ret.HDF5MasterFormatVersion(Convert(input.getFormat())); + ret.FileFormat(Convert(input.getFormat())); return ret; } diff --git a/common/DiffractionExperiment.cpp b/common/DiffractionExperiment.cpp index 392509d9..29acfb97 100644 --- a/common/DiffractionExperiment.cpp +++ b/common/DiffractionExperiment.cpp @@ -698,7 +698,7 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const { message.detector_serial_number = detector.GetSerialNumber(); message.write_master_file = dataset.IsWriteNXmxHDF5Master(); message.overwrite = file_writer.IsOverwriteExistingFiles(); - message.file_format = file_writer.GetHDF5MasterFormatVersion(); + message.file_format = file_writer.GetFileFormat(); message.ring_current_mA = dataset.GetRingCurrent_mA(); message.sample_temperature_K = dataset.GetSampleTemperature_K(); message.fluorescence_spectrum = dataset.GetFluorescenceSpectrum(); @@ -1084,7 +1084,7 @@ int64_t DiffractionExperiment::GetImagesPerFile() const { auto tmp = dataset.GetImagesPerFile(); if (tmp == 0 - || file_writer.GetHDF5MasterFormatVersion() == FileWriterFormat::NXmxIntegrated) + || file_writer.GetFileFormat() == FileWriterFormat::NXmxIntegrated) return GetImageNum(); else return tmp; @@ -1404,12 +1404,12 @@ bool DiffractionExperiment::IsElectronSource() const { } DiffractionExperiment &DiffractionExperiment::SetFileWriterFormat(FileWriterFormat input) { - file_writer.HDF5MasterFormatVersion(input); + file_writer.FileFormat(input); return *this; } FileWriterFormat DiffractionExperiment::GetFileWriterFormat() const { - return file_writer.GetHDF5MasterFormatVersion(); + return file_writer.GetFileFormat(); } DiffractionGeometry DiffractionExperiment::GetDiffractionGeometry() const { diff --git a/common/FileWriterSettings.cpp b/common/FileWriterSettings.cpp index 46afddf0..d62cfd32 100644 --- a/common/FileWriterSettings.cpp +++ b/common/FileWriterSettings.cpp @@ -9,7 +9,7 @@ FileWriterSettings &FileWriterSettings::OverwriteExistingFiles(bool input) { return *this; } -FileWriterSettings &FileWriterSettings::HDF5MasterFormatVersion(FileWriterFormat input) { +FileWriterSettings &FileWriterSettings::FileFormat(FileWriterFormat input) { switch (input) { case FileWriterFormat::DataOnly: case FileWriterFormat::NXmxLegacy: @@ -26,7 +26,7 @@ FileWriterSettings &FileWriterSettings::HDF5MasterFormatVersion(FileWriterFormat } } -FileWriterFormat FileWriterSettings::GetHDF5MasterFormatVersion() const { +FileWriterFormat FileWriterSettings::GetFileFormat() const { return hdf5_master_format_version; } diff --git a/common/FileWriterSettings.h b/common/FileWriterSettings.h index 232e27c2..be2cfeaf 100644 --- a/common/FileWriterSettings.h +++ b/common/FileWriterSettings.h @@ -11,9 +11,9 @@ class FileWriterSettings { bool overwrite_files = false; public: FileWriterSettings &OverwriteExistingFiles(bool input); - FileWriterSettings &HDF5MasterFormatVersion(FileWriterFormat input); + FileWriterSettings &FileFormat(FileWriterFormat input); - FileWriterFormat GetHDF5MasterFormatVersion() const; + FileWriterFormat GetFileFormat() const; bool IsOverwriteExistingFiles() const; }; -- 2.52.0 From c2b59145f63c68b130b6a70aa53a09f05cd17b86 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:43:51 +0200 Subject: [PATCH 10/68] Fixes for thread-safety and logic issues --- acquisition_device/AcquisitionCounters.cpp | 18 ++---------------- acquisition_device/AcquisitionCounters.h | 4 ---- acquisition_device/AcquisitionDevice.cpp | 4 ++-- acquisition_device/FPGAAcquisitionDevice.cpp | 2 +- 4 files changed, 5 insertions(+), 23 deletions(-) diff --git a/acquisition_device/AcquisitionCounters.cpp b/acquisition_device/AcquisitionCounters.cpp index 1ef54d1c..96675170 100644 --- a/acquisition_device/AcquisitionCounters.cpp +++ b/acquisition_device/AcquisitionCounters.cpp @@ -31,9 +31,7 @@ void AcquisitionCounters::Reset(const DiffractionExperiment &experiment, uint16_ curr_frame_number[i] = 0; handle_for_frame = std::vector(expected_frames * nmodules, HandleNotFound); - handle_for_pedestal = std::vector(nmodules * 16, HandleNotFound); // 16 = storage cells packets_collected = std::vector(expected_frames * nmodules); - saved_completions = std::vector(expected_frames * nmodules); packets_per_module = std::vector(nmodules); total_packets = 0; expected_packets_per_module = 512 * experiment.GetFPGASummation(); @@ -76,7 +74,6 @@ void AcquisitionCounters::UpdateCounters(const Completion *c) { packets_collected.at(c->frame_number * nmodules + c->module_number) = c->packet_count; handle_for_frame.at(c->frame_number * nmodules + c->module_number) = c->handle; - saved_completions.at(c->frame_number * nmodules + c->module_number) = *c; total_packets += c->packet_count; packets_per_module[c->module_number] += c->packet_count; @@ -91,6 +88,7 @@ void AcquisitionCounters::SetAcquisitionFinished() { } uint64_t AcquisitionCounters::GetBufferHandle(size_t frame, uint16_t module_number) const { + std::shared_lock sl(m); if (frame >= expected_frames) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "GetBufferHandle Wrong frame number: " + std::to_string(frame)); @@ -115,18 +113,6 @@ uint64_t AcquisitionCounters::GetBufferHandleAndClear(size_t frame, uint16_t mod return ret_val; } -uint64_t AcquisitionCounters::GetPedestalBufferHandle(size_t storage_cell, uint16_t module_number) const { - std::unique_lock ul(m); - if (storage_cell >= 16) - throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, - "GetBufferHandleAndClear Wrong frame number: " + std::to_string(storage_cell)); - if (module_number >= nmodules) - throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, - "GetBufferHandleAndClear Wrong module number: " + std::to_string(module_number) - + " for SC " + std::to_string(storage_cell)); - return handle_for_pedestal.at(storage_cell * nmodules + module_number); -} - uint64_t AcquisitionCounters::GetCurrFrameNumber(uint16_t module_number) const { if (module_number >= max_modules) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, @@ -207,7 +193,7 @@ uint64_t AcquisitionCounters::GetTotalPackets() const { } uint64_t AcquisitionCounters::GetTotalPackets(uint16_t module_number) const { - std::unique_lock ul(m); + std::shared_lock sl(m); if (module_number >= nmodules) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, diff --git a/acquisition_device/AcquisitionCounters.h b/acquisition_device/AcquisitionCounters.h index 622f2a06..4222d328 100644 --- a/acquisition_device/AcquisitionCounters.h +++ b/acquisition_device/AcquisitionCounters.h @@ -22,11 +22,8 @@ class AcquisitionCounters { mutable std::condition_variable_any data_updated; std::vector handle_for_frame; - std::vector handle_for_pedestal; std::vector packets_collected; - std::vector saved_completions; - uint64_t total_packets; std::vector packets_per_module; @@ -56,7 +53,6 @@ public: void WaitForFrame(size_t curr_frame, uint16_t module_number = UINT16_MAX) const; int64_t CalculateDelay(size_t curr_frame, uint16_t module_number = UINT16_MAX) const; // mutex acquired indirectly uint64_t GetBufferHandle(size_t frame, uint16_t module_number) const; - uint64_t GetPedestalBufferHandle(size_t storage_cell, uint16_t module_number) const; bool IsFullModuleCollected(size_t frame, uint16_t module_number) const; bool IsAnyPacketCollected(size_t frame, uint16_t module_number) const; bool IsAcquisitionFinished() const; diff --git a/acquisition_device/AcquisitionDevice.cpp b/acquisition_device/AcquisitionDevice.cpp index a087b2aa..c252376d 100644 --- a/acquisition_device/AcquisitionDevice.cpp +++ b/acquisition_device/AcquisitionDevice.cpp @@ -294,8 +294,8 @@ DeviceStatus AcquisitionDevice::GetDeviceStatus() const { AcquisitionDeviceStatistics AcquisitionDevice::GetStatistics() const { AcquisitionDeviceStatistics ret{}; ret.bytes_received = GetBytesReceived(); - ret.start_timestamp = start_time.time_since_epoch().count(); - ret.end_timestamp = end_time.time_since_epoch().count(); + ret.start_timestamp = std::chrono::system_clock::to_time_t(start_time); + ret.end_timestamp = std::chrono::system_clock::to_time_t(end_time); ret.packets_expected = counters.GetTotalExpectedPackets(); ret.good_packets = counters.GetTotalPackets(); diff --git a/acquisition_device/FPGAAcquisitionDevice.cpp b/acquisition_device/FPGAAcquisitionDevice.cpp index 72f8687a..87bda00b 100644 --- a/acquisition_device/FPGAAcquisitionDevice.cpp +++ b/acquisition_device/FPGAAcquisitionDevice.cpp @@ -123,7 +123,7 @@ void FPGAAcquisitionDevice::InitializeIntegrationMap(const uint16_t *map, const } void FPGAAcquisitionDevice::SetInternalGeneratorFrame(const uint16_t *input, size_t module_number) { - memcpy(buffer_device[0], input, RAW_MODULE_SIZE * sizeof(uint16_t)); + memcpy(buffer_device[0]->pixels, input, RAW_MODULE_SIZE * sizeof(uint16_t)); buffer_device[0]->module_statistics.module_number = module_number; buffer_device[0]->module_statistics.load_calibration_destination = LOAD_CALIBRATION_DEST_FRAME_GEN; LoadCalibration(0); -- 2.52.0 From 09a458a43b5b84cb80a4d8a9072f4b6083e8950d Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:44:08 +0200 Subject: [PATCH 11/68] JFJochServices: Fix return XFEL event code --- broker/JFJochServices.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/broker/JFJochServices.cpp b/broker/JFJochServices.cpp index 46173239..23607d95 100644 --- a/broker/JFJochServices.cpp +++ b/broker/JFJochServices.cpp @@ -228,7 +228,7 @@ void JFJochServices::GetXFELPulseID(std::vector &v) const { void JFJochServices::GetXFELEventCode(std::vector &v) const { if (receiver) - receiver->GetXFELPulseID(v); + receiver->GetXFELEventCode(v); } std::vector JFJochServices::GetDeviceStatus() const { -- 2.52.0 From 839c1ddbc5a2a1d4f9969d663adf2fea32ed79b0 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:50:04 +0200 Subject: [PATCH 12/68] DiffractionSpot: Remove unused functions --- common/DiffractionSpot.cpp | 4 ---- common/DiffractionSpot.h | 3 --- 2 files changed, 7 deletions(-) diff --git a/common/DiffractionSpot.cpp b/common/DiffractionSpot.cpp index 90ac1181..75660907 100644 --- a/common/DiffractionSpot.cpp +++ b/common/DiffractionSpot.cpp @@ -47,10 +47,6 @@ int64_t DiffractionSpot::PixelCount() const { return pixel_count; } -double DiffractionSpot::GetResolution(const DiffractionGeometry &geom) const { - return geom.PxlToRes(x / (float)photons, y / (float)photons); -} - void DiffractionSpot::AddPixel(uint32_t col, uint32_t line, int64_t photons) { this->x += col * (float) photons; this->y += line * (float) photons; diff --git a/common/DiffractionSpot.h b/common/DiffractionSpot.h index f45ca71f..433710e0 100644 --- a/common/DiffractionSpot.h +++ b/common/DiffractionSpot.h @@ -16,9 +16,6 @@ class DiffractionSpot { int64_t pixel_count = 0; int64_t photons = 0; // total photon count int64_t max_photons = INT64_MIN; // maximum number of counts per pixel in the spot - - double GetResolution(const DiffractionGeometry &experiment) const; - static bool IsIceRing(float d_A); public: DiffractionSpot() = default; DiffractionSpot(uint32_t col, uint32_t line, int64_t photons); -- 2.52.0 From 8f9e4b3e9c5d95fab6c3a0a6a1d3e37840dd74e1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 15:52:47 +0200 Subject: [PATCH 13/68] DiffractionSpot: Handle zero-photon spots --- common/DiffractionSpot.cpp | 9 +++++++-- common/DiffractionSpot.h | 2 +- image_analysis/spot_finding/SpotUtils.cpp | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/common/DiffractionSpot.cpp b/common/DiffractionSpot.cpp index 75660907..a3e7789c 100644 --- a/common/DiffractionSpot.cpp +++ b/common/DiffractionSpot.cpp @@ -40,6 +40,8 @@ int64_t DiffractionSpot::MaxCount() const { } Coord DiffractionSpot::RawCoord() const { + if (photons == 0) + return {0, 0, 0}; return {x / (float)photons, y / (float)photons, 0}; } @@ -61,7 +63,10 @@ void DiffractionSpot::ConvertToImageCoordinates(const DiffractionExperiment &exp this->y = c_out.y * (float) photons; } -SpotToSave DiffractionSpot::Export(const DiffractionGeometry &geometry, int64_t image_num) const { +std::optional DiffractionSpot::Export(const DiffractionGeometry &geometry, int64_t image_num) const { + if (photons == 0) + return std::nullopt; + auto d = geometry.PxlToRes(x / (float) photons, y / (float) photons); float phi = 0.0f; @@ -71,7 +76,7 @@ SpotToSave DiffractionSpot::Export(const DiffractionGeometry &geometry, int64_t phi = geometry.GetRotation()->GetAngle_deg(image_num) + geometry.GetRotation()->GetWedge_deg() / 2.0f; } - return { + return SpotToSave{ .x = x / static_cast(photons), .y = y / static_cast(photons), .phi = phi, diff --git a/common/DiffractionSpot.h b/common/DiffractionSpot.h index 433710e0..7600a280 100644 --- a/common/DiffractionSpot.h +++ b/common/DiffractionSpot.h @@ -26,7 +26,7 @@ public: int64_t MaxCount() const; Coord RawCoord() const; void ConvertToImageCoordinates(const DiffractionExperiment& experiment, uint16_t module_number); - SpotToSave Export(const DiffractionGeometry &geometry, int64_t image_num = 0) const; + std::optional Export(const DiffractionGeometry &geometry, int64_t image_num = 0) const; void AddPixel(uint32_t col, uint32_t line, int64_t photons); }; diff --git a/image_analysis/spot_finding/SpotUtils.cpp b/image_analysis/spot_finding/SpotUtils.cpp index c5bac9f2..1605b0f1 100644 --- a/image_analysis/spot_finding/SpotUtils.cpp +++ b/image_analysis/spot_finding/SpotUtils.cpp @@ -134,8 +134,11 @@ void SpotAnalyze(const DiffractionExperiment &experiment, std::vector spots_out; - for (const auto &spot: spots) - spots_out.push_back(spot.Export(geom, output.number)); + for (const auto &spot: spots) { + if (auto s = spot.Export(geom, output.number); s.has_value()) + spots_out.push_back(s.value()); + } + if (spot_finding_settings.high_res_gap_Q_recipA.has_value()) FilterSpuriousHighResolutionSpots(spots_out, spot_finding_settings.high_res_gap_Q_recipA.value()); -- 2.52.0 From aa6f5f001783e0c85f78cd7b282ddefb3482b434 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 14 Apr 2026 16:04:53 +0200 Subject: [PATCH 14/68] Minor fixes to viewer/reader logic --- reader/JFJochHDF5Reader.cpp | 13 +++++-------- viewer/widgets/JFJochViewerROIResult.cpp | 9 +++++++-- viewer/widgets/JFJochViewerSidePanelChart.cpp | 9 +++++---- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/reader/JFJochHDF5Reader.cpp b/reader/JFJochHDF5Reader.cpp index ebf1c542..937320bc 100644 --- a/reader/JFJochHDF5Reader.cpp +++ b/reader/JFJochHDF5Reader.cpp @@ -80,9 +80,9 @@ void JFJochHDF5Reader::ReadVector(std::vector &v, std::string removeSuffix(const std::string& s, const std::string& suffix) { - if (s.rfind(suffix) == s.size() - suffix.size()) { + if (s.ends_with(suffix)) return s.substr(0, s.size() - suffix.size()); - } + return s; } @@ -106,7 +106,6 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) { dataset->arm_date = master_file->GetString("/entry/start_time"); - std::filesystem::path fsPath(filename); dataset->experiment.FilePrefix(dataset_name(filename)); // JFJochReader is always using int32_t @@ -130,8 +129,11 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) { images_per_file = number_of_images; + if (master_file->Exists("/entry/instrument/detector/detectorSpecific/data_collection_efficiency_image")) dataset->efficiency = master_file->ReadVector( "/entry/instrument/detector/detectorSpecific/data_collection_efficiency_image"); + else + dataset->efficiency = std::vector(number_of_images, 1.0); if (master_file->Exists("/entry/roi")) dataset->roi = master_file->FindLeafs("/entry/roi"); @@ -322,8 +324,6 @@ void JFJochHDF5Reader::ReadFile(const std::string& filename) { dataset->experiment.PoniRot1_rad(master_file->GetOptFloat("/entry/instrument/detector/transformations/rot1").value_or(0.0)); dataset->experiment.PoniRot2_rad(master_file->GetOptFloat("/entry/instrument/detector/transformations/rot2").value_or(0.0)); dataset->experiment.PoniRot3_rad(master_file->GetOptFloat("/entry/instrument/detector/transformations/rot3").value_or(0.0)); - if (master_file->Exists("/entry/instrument/source")) - dataset->experiment.RingCurrent_mA(master_file->GetOptFloat("/entry/instrument/source/current")); dataset->experiment.SampleTemperature_K(master_file->GetOptFloat("/entry/sample/temperature")); dataset->experiment.BeamX_pxl(master_file->GetFloat("/entry/instrument/detector/beam_center_x")); @@ -765,9 +765,6 @@ std::optional JFJochHDF5Reader::ReadAxis(HDF5Object *file, const double start = angle[0]; double incr = angle[1] - angle[0]; - HDF5DataSet dataset_end(*file, dname + "_end"); - std::vector angle_end; - if (dataset.ReadAttrStr("transformation_type") != "rotation") return {}; diff --git a/viewer/widgets/JFJochViewerROIResult.cpp b/viewer/widgets/JFJochViewerROIResult.cpp index 9c91297d..d5f766e4 100644 --- a/viewer/widgets/JFJochViewerROIResult.cpp +++ b/viewer/widgets/JFJochViewerROIResult.cpp @@ -47,8 +47,13 @@ void JFJochViewerROIResult::SetROIResult(ROIMessage roi) { roi_max->setText(QString("Max %1").arg(roi.max_count)); roi_npixel->setText(QString("Valid %1").arg(roi.pixels)); roi_masked->setText(QString("Masked %1").arg(roi.pixels_masked)); - roi_x->setText(QString("x: %1").arg(static_cast(roi.x_weighted) / roi.sum)); - roi_y->setText(QString("y: %1").arg(static_cast(roi.y_weighted) / roi.sum)); + if (roi.sum == 0) { + roi_x->setText(QString("x: N/A")); + roi_y->setText(QString("y: N/A")); + } else { + roi_x->setText(QString("x: %1").arg(static_cast(roi.x_weighted) / roi.sum)); + roi_y->setText(QString("y: %1").arg(static_cast(roi.y_weighted) / roi.sum)); + } label_1->setText(QString("Pixel count")); label_2->setText(QString("Center of mass")); } else { diff --git a/viewer/widgets/JFJochViewerSidePanelChart.cpp b/viewer/widgets/JFJochViewerSidePanelChart.cpp index 6e1ccb36..ed3cea47 100644 --- a/viewer/widgets/JFJochViewerSidePanelChart.cpp +++ b/viewer/widgets/JFJochViewerSidePanelChart.cpp @@ -24,6 +24,10 @@ JFJochViewerSidePanelChart::JFJochViewerSidePanelChart(QWidget *parent) : QWidge layout->addWidget(azint_plot); // index 0 setLayout(layout); + connect(azint_plot, &JFJochSimpleChartView::writeStatusBar, + [&](QString string, int timeout_ms) { + emit writeStatusBar(string, timeout_ms); + }); } void JFJochViewerSidePanelChart::comboBoxSelected(int val) { @@ -73,10 +77,7 @@ void JFJochViewerSidePanelChart::redrawPlot() { break; } } - connect(azint_plot, &JFJochSimpleChartView::writeStatusBar, - [&](QString string, int timeout_ms) { - emit writeStatusBar(string, timeout_ms); - }); + } void JFJochViewerSidePanelChart::loadImage(std::shared_ptr in_image) { -- 2.52.0 From 7f3d28b11b8da68ffdaf94fea8d2cf2031c54fdb Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 08:59:49 +0200 Subject: [PATCH 15/68] CheckPath: Fix to handle current logic --- common/CheckPath.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/common/CheckPath.h b/common/CheckPath.h index ebbb7c4c..e685b526 100644 --- a/common/CheckPath.h +++ b/common/CheckPath.h @@ -8,13 +8,10 @@ #include "JFJochException.h" inline void CheckPath(const std::string &s) { - if (s.empty()) - throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, - "Path cannot be empty"); - if (s.front() == '/') + if (!s.empty() && s.front() == '/') throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with slash"); - if (s.substr(0,3) == "../") + if (s.size() >= 3 && s.substr(0,3) == "../") throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with ../"); if (s.find("/../") != std::string::npos) -- 2.52.0 From a1f24a03e80004e85cad37f7347247cc737ce156 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 09:22:18 +0200 Subject: [PATCH 16/68] jfjoch_viewer: improve performance of image rendering --- viewer/image_viewer/JFJochAzIntImage.cpp | 3 +- .../image_viewer/JFJochDiffractionImage.cpp | 43 +++++++---- viewer/image_viewer/JFJochGridScanImage.cpp | 9 ++- viewer/image_viewer/JFJochImage.cpp | 72 ++++++++++++------- viewer/image_viewer/JFJochImage.h | 14 +++- viewer/image_viewer/JFJochSimpleImage.cpp | 5 +- 6 files changed, 99 insertions(+), 47 deletions(-) diff --git a/viewer/image_viewer/JFJochAzIntImage.cpp b/viewer/image_viewer/JFJochAzIntImage.cpp index 9b4073fa..e055f729 100644 --- a/viewer/image_viewer/JFJochAzIntImage.cpp +++ b/viewer/image_viewer/JFJochAzIntImage.cpp @@ -16,6 +16,7 @@ void JFJochAzIntImage::Clear() { image_fp.clear(); if (scene()) scene()->clear(); + resetScenePointers(); } void JFJochAzIntImage::imageLoaded(std::shared_ptr in_image) { @@ -111,4 +112,4 @@ void JFJochAzIntImage::mouseDoubleClickEvent(QMouseEvent *event) { auto coord = geom.ResPhiToPxl(2 * M_PI / q, phi / 180.0 * M_PI); emit zoomOnBin(QPointF(coord.first, coord.second)); } -} +} \ No newline at end of file diff --git a/viewer/image_viewer/JFJochDiffractionImage.cpp b/viewer/image_viewer/JFJochDiffractionImage.cpp index cf3e0b2b..b204a624 100644 --- a/viewer/image_viewer/JFJochDiffractionImage.cpp +++ b/viewer/image_viewer/JFJochDiffractionImage.cpp @@ -5,6 +5,7 @@ #include "../../common/DiffractionGeometry.h" #include +#include #include #include #include @@ -104,11 +105,12 @@ void JFJochDiffractionImage::DrawSpots() { QPen pen(pen_color, 3); pen.setCosmetic(true); - auto rect = scene()->addRect(s.x - spot_size + 0.5, + auto *rect = scene()->addRect(s.x - spot_size + 0.5, s.y - spot_size + 0.5, 2 * spot_size, 2 * spot_size, pen); + addOverlayItem(rect); } } @@ -132,11 +134,12 @@ void JFJochDiffractionImage::DrawPredictions() { if (!visibleRect.contains(QPointF{s.predicted_x, s.predicted_y})) continue; - auto rect = scene()->addEllipse(s.predicted_x - spot_size + 0.5f, + auto *ellipse = scene()->addEllipse(s.predicted_x - spot_size + 0.5f, s.predicted_y - spot_size + 0.5f, 2.0f * spot_size, 2.0f * spot_size, pen); + addOverlayItem(ellipse); // When zoomed in enough, draw "h k l" above the box if (scale_factor >= 10.0) { @@ -147,11 +150,13 @@ void JFJochDiffractionImage::DrawPredictions() { const qreal text_x = s.predicted_x - 5.5f; const qreal text_y = s.predicted_y - 10.0f; - // Add or update text in the scene - QGraphicsTextItem *textItem = scene()->addText(label, font); - textItem->setDefaultTextColor(pen_color); - textItem->setPos(text_x, text_y); // Position the text over the pixel - // textItem->setScale(1.0); // Scale down to 10% of the original size + // Use QGraphicsSimpleTextItem for much better performance + auto *textItem = new QGraphicsSimpleTextItem(label); + textItem->setFont(font); + textItem->setBrush(pen_color); + textItem->setPos(text_x, text_y); + scene()->addItem(textItem); + addOverlayItem(textItem); } } } @@ -244,7 +249,7 @@ void JFJochDiffractionImage::DrawResolutionRings() { auto y_max = std::max({y1, y2, y3, y4}); QRectF boundingRect(x_min, y_min, x_max - x_min, y_max - y_min); - scene()->addEllipse(boundingRect, pen); + addOverlayItem(scene()->addEllipse(boundingRect, pen)); auto [x5,y5] = geom.ResPhiToPxl(d, phi_offset + 0); auto [x6,y6] = geom.ResPhiToPxl(d, phi_offset + M_PI_2); @@ -272,10 +277,13 @@ void JFJochDiffractionImage::DrawResolutionRings() { const qreal f = std::clamp(scale_factor, 0.5, 50.0); font.setPointSizeF(16.0 / sqrt(f)); // base 12pt around scale_factor ~10 - QGraphicsTextItem *textItem = scene()->addText( - QString("%1 Å").arg(QString::number(d, 'f', 2)), font); - textItem->setDefaultTextColor(ring_color); + auto *textItem = new QGraphicsSimpleTextItem( + QString("%1 Å").arg(QString::number(d, 'f', 2))); + textItem->setFont(font); + textItem->setBrush(ring_color); textItem->setPos(point.value()); + scene()->addItem(textItem); + addOverlayItem(textItem); } phi_offset += 4.0 / 180.0 * M_PI; } @@ -351,6 +359,7 @@ void JFJochDiffractionImage::loadImage(std::shared_ptr W = 0; H = 0; if (scene()) scene()->clear(); + resetScenePointers(); hover_resolution = NAN; hover_resolution_item = nullptr; @@ -415,6 +424,9 @@ void JFJochDiffractionImage::DrawCross(float x, float y, float size, float width horizontalLine->setZValue(z); // Ensure it appears above other items verticalLine->setZValue(z); // Ensure it appears above other items + + addOverlayItem(horizontalLine); + addOverlayItem(verticalLine); } void JFJochDiffractionImage::showSaturation(bool input) { @@ -457,6 +469,7 @@ void JFJochDiffractionImage::DrawResolutionText() { QString("d = %1 Å").arg(QString::number(hover_resolution, 'f', 2)); // Create the item if it does not exist yet; otherwise reuse it + // NOTE: hover_resolution_item is NOT tracked in overlay_items_ — it is persistent if (!hover_resolution_item) { hover_resolution_item = scn->addText(label, font); hover_resolution_item->setZValue(10.0); @@ -480,9 +493,9 @@ void JFJochDiffractionImage::DrawResolutionText() { } void JFJochDiffractionImage::beforeOverlayCleared() { - // The scene is about to clear (and delete) all its items. - // Drop our non-owning pointer so we never touch a deleted item. - hover_resolution_item = nullptr; + // hover_resolution_item is NOT in overlay_items_, so the selective clear won't touch it. + // However, if scene()->clear() is ever called (e.g. on loadImage(nullptr)), + // the caller must also set hover_resolution_item = nullptr separately. } void JFJochDiffractionImage::leaveEvent(QEvent *event) { @@ -492,4 +505,4 @@ void JFJochDiffractionImage::leaveEvent(QEvent *event) { DrawResolutionText(); } JFJochImage::leaveEvent(event); -} +} \ No newline at end of file diff --git a/viewer/image_viewer/JFJochGridScanImage.cpp b/viewer/image_viewer/JFJochGridScanImage.cpp index 10e9b97c..a20b0ca8 100644 --- a/viewer/image_viewer/JFJochGridScanImage.cpp +++ b/viewer/image_viewer/JFJochGridScanImage.cpp @@ -3,6 +3,8 @@ #include "JFJochGridScanImage.h" +#include + JFJochGridScanImage::JFJochGridScanImage(QWidget *parent) : JFJochImage(parent) {} void JFJochGridScanImage::clear() { @@ -11,6 +13,7 @@ void JFJochGridScanImage::clear() { this->settings = std::nullopt; if (scene()) scene()->clear(); + resetScenePointers(); CalcROI(); } @@ -170,6 +173,6 @@ void JFJochGridScanImage::addCustomOverlay() { QPen pen(feature_color, 3); pen.setCosmetic(true); - auto rect = scene()->addRect(current_image_W, current_image_H, 1, 1, pen); -} - + auto *rect = scene()->addRect(current_image_W, current_image_H, 1, 1, pen); + addOverlayItem(rect); +} \ No newline at end of file diff --git a/viewer/image_viewer/JFJochImage.cpp b/viewer/image_viewer/JFJochImage.cpp index 4efa71aa..3a1a6948 100644 --- a/viewer/image_viewer/JFJochImage.cpp +++ b/viewer/image_viewer/JFJochImage.cpp @@ -4,6 +4,7 @@ #include "JFJochImage.h" #include +#include #include #include #include @@ -469,6 +470,10 @@ void JFJochImage::updateROI() { updateOverlay(); } +void JFJochImage::addOverlayItem(QGraphicsItem *item) { + overlay_items_.append(item); +} + void JFJochImage::DrawROI() { if (roiBox.isNull() || roiBox.width() <= 0 || roiBox.height() <= 0) return; @@ -485,14 +490,14 @@ void JFJochImage::DrawROI() { if (roi_type == RoiType::RoiCircle) { // Draw circle - scn->addEllipse(roiBox, pen); + addOverlayItem(scn->addEllipse(roiBox, pen)); // A single handle on the circle at the rightmost point const QPointF c = roiBox.center(); const qreal rad = 0.5 * (roiBox.width() + roiBox.height()) * 0.5; // average, should be equal QPointF hpos = QPointF(roiBox.right(), c.y()); - scn->addRect(QRectF(hpos.x() - handleSize, hpos.y() - handleSize, 2 * handleSize, 2 * handleSize), - QPen(feature_color, 1), QBrush(feature_color)); + addOverlayItem(scn->addRect(QRectF(hpos.x() - handleSize, hpos.y() - handleSize, 2 * handleSize, 2 * handleSize), + QPen(feature_color, 1), QBrush(feature_color))); // On hover near perimeter: draw in/out arrows along radius at handle if (hover_handle_ != ResizeHandle::None && hover_handle_ != ResizeHandle::Inside) { @@ -500,18 +505,18 @@ void JFJochImage::DrawROI() { apen.setCosmetic(true); const qreal arrowLen = 8.0 / std::sqrt(std::max(1e-4, f)); // Outward arrow - scn->addLine(QLineF(c, c + QPointF(rad + arrowLen, 0)), apen); + addOverlayItem(scn->addLine(QLineF(c, c + QPointF(rad + arrowLen, 0)), apen)); // Inward arrow - scn->addLine(QLineF(c, c + QPointF(rad - arrowLen, 0)), apen); + addOverlayItem(scn->addLine(QLineF(c, c + QPointF(rad - arrowLen, 0)), apen)); } } else { // Box - scn->addRect(roiBox, pen); + addOverlayItem(scn->addRect(roiBox, pen)); // Corner handles auto addHandle = [&](const QPointF& p) { - scn->addRect(QRectF(p.x() - handleSize, p.y() - handleSize, 2 * handleSize, 2 * handleSize), - QPen(feature_color, 1), QBrush(feature_color)); + addOverlayItem(scn->addRect(QRectF(p.x() - handleSize, p.y() - handleSize, 2 * handleSize, 2 * handleSize), + QPen(feature_color, 1), QBrush(feature_color))); }; addHandle(roiBox.topLeft()); addHandle(roiBox.topRight()); @@ -525,7 +530,7 @@ void JFJochImage::DrawROI() { const qreal arrowLen = 6.0 / std::sqrt(std::max(1e-4, f)); const qreal off = 10.0 / std::sqrt(std::max(1e-4, f)); auto drawArrow = [&](const QPointF& a, const QPointF& b) { - scn->addLine(QLineF(a, b), apen); + addOverlayItem(scn->addLine(QLineF(a, b), apen)); }; const QRectF r = roiBox; switch (hover_handle_) { @@ -566,9 +571,6 @@ void JFJochImage::Redraw() { if (W*H <= 0) return; - // Save the current transformation (zoom state) - QTransform currentTransform = this->transform(); - QGraphicsScene *currentScene = scene(); if (!currentScene) { // First time - create a new scene @@ -576,11 +578,9 @@ void JFJochImage::Redraw() { setScene(currentScene); // Reset initial-fit state for a new scene initial_fit_done_ = false; + pixmap_item_ = nullptr; // new scene, old pointer invalid } - // Restore the zoom level - this->setTransform(currentTransform, false); // "false" prevents resetting the view - // Perform initial fit only once per image size fitToViewShorterSideOnce(); @@ -588,7 +588,10 @@ void JFJochImage::Redraw() { } void JFJochImage::GeneratePixmap() { - QImage qimg(int(W), int(H), QImage::Format_RGB32); + // Reuse buffer if size matches, otherwise reallocate + if (qimg_buffer_.width() != int(W) || qimg_buffer_.height() != int(H)) + qimg_buffer_ = QImage(int(W), int(H), QImage::Format_RGB32); + image_rgb.resize(W * H); // Bad pixel color @@ -621,7 +624,7 @@ void JFJochImage::GeneratePixmap() { for (int y = 0; y < H; ++y) rows.push_back(y); QtConcurrent::blockingMap(rows, [&](int y) { - QRgb *scanLine = reinterpret_cast(qimg.scanLine(y)); + QRgb *scanLine = reinterpret_cast(qimg_buffer_.scanLine(y)); const float *row = &image_fp[y * W]; rgb *out = &image_rgb[y * W]; @@ -662,7 +665,7 @@ void JFJochImage::GeneratePixmap() { } }); - pixmap = QPixmap::fromImage(qimg); + pixmap = QPixmap::fromImage(qimg_buffer_); pixmap.setDevicePixelRatio(1.0); } @@ -693,7 +696,7 @@ void JFJochImage::writePixelLabels() { const int visW = std::max(0, endX - startX); const int visH = std::max(0, endY - startY); - int maxLabels = 1000; + int maxLabels = 5000; // Choose thresholds that fit your UI width constexpr float kMinFixed = 1e-3; @@ -731,26 +734,45 @@ void JFJochImage::writePixelLabels() { pText = &numBuf; } - QGraphicsTextItem* textItem = scene()->addText(*pText, font); + auto *textItem = new QGraphicsSimpleTextItem(*pText); + textItem->setFont(font); if (luminance(image_rgb[idx]) > 128.0) - textItem->setDefaultTextColor(Qt::black); + textItem->setBrush(Qt::black); else - textItem->setDefaultTextColor(Qt::white); + textItem->setBrush(Qt::white); textItem->setPos(x - 0.7, y - 0.8); - textItem->setScale(0.2); + textItem->setTransform(QTransform::fromScale(0.2, 0.2)); + scene()->addItem(textItem); + addOverlayItem(textItem); } } } } +void JFJochImage::resetScenePointers() { + pixmap_item_ = nullptr; + overlay_items_.clear(); +} + void JFJochImage::updateOverlay() { if (!scene() || W * H <= 0) return; beforeOverlayCleared(); - scene()->clear(); - scene()->addItem(new QGraphicsPixmapItem(pixmap)); + // Remove only overlay items, keep the pixmap item persistent + for (auto *item : overlay_items_) + scene()->removeItem(item); + qDeleteAll(overlay_items_); + overlay_items_.clear(); + + // Ensure pixmap item exists and is up-to-date + if (!pixmap_item_) { + pixmap_item_ = scene()->addPixmap(pixmap); + pixmap_item_->setZValue(0); + } else { + pixmap_item_->setPixmap(pixmap); + } if (scale_factor > 30.0) writePixelLabels(); diff --git a/viewer/image_viewer/JFJochImage.h b/viewer/image_viewer/JFJochImage.h index 9e136b89..4e8b1ad8 100644 --- a/viewer/image_viewer/JFJochImage.h +++ b/viewer/image_viewer/JFJochImage.h @@ -53,6 +53,15 @@ protected: std::vector image_rgb; std::vector image_fp; QPixmap pixmap; + QImage qimg_buffer_; // reusable image buffer — avoids 64MB alloc per frame + + // Persistent pixmap item — never destroyed/recreated on overlay update + QGraphicsPixmapItem *pixmap_item_ = nullptr; + // Overlay items managed separately + QList overlay_items_; + + // Helper: add an overlay item to the scene and track it for selective removal + void addOverlayItem(QGraphicsItem *item); enum class MouseEventType {None, Panning, DrawingROI, MovingROI, ResizingROI}; MouseEventType mouse_event_type = MouseEventType::None; @@ -79,6 +88,9 @@ protected: void Redraw(); void CalcROI(); + // Invalidate pixmap_item_ and overlay tracking after scene()->clear() + void resetScenePointers(); + // Perform initial fit-to-view (shorter direction), once per image size void fitToViewShorterSideOnce(); QSize last_fit_viewport_ = {}; @@ -112,4 +124,4 @@ public slots: public: explicit JFJochImage(QWidget *parent = nullptr); -}; +}; \ No newline at end of file diff --git a/viewer/image_viewer/JFJochSimpleImage.cpp b/viewer/image_viewer/JFJochSimpleImage.cpp index 24101ef1..700537f8 100644 --- a/viewer/image_viewer/JFJochSimpleImage.cpp +++ b/viewer/image_viewer/JFJochSimpleImage.cpp @@ -32,6 +32,7 @@ void JFJochSimpleImage::setImage(std::shared_ptr img) { W = 0; H = 0; if (scene()) scene()->clear(); + resetScenePointers(); CalcROI(); } } @@ -64,7 +65,7 @@ void JFJochSimpleImage::loadImageInternal(const uint8_t *input) { const size_t H = image_->image.GetHeight(); auto ptr = reinterpret_cast(input); - + for (int i = 0; i < W * H; i++) image_fp[i] = static_cast(ptr[i]); } @@ -110,4 +111,4 @@ void JFJochSimpleImage::loadImageInternal() { default: throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Image format not supported"); } -} +} \ No newline at end of file -- 2.52.0 From 9acbff064481708d96e393953128ab9d0b420015 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 09:35:40 +0200 Subject: [PATCH 17/68] jfjoch_viewer: fix bug when panning doesn't work after restart --- viewer/image_viewer/JFJochImage.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/viewer/image_viewer/JFJochImage.cpp b/viewer/image_viewer/JFJochImage.cpp index 3a1a6948..463421bd 100644 --- a/viewer/image_viewer/JFJochImage.cpp +++ b/viewer/image_viewer/JFJochImage.cpp @@ -124,6 +124,10 @@ void JFJochImage::wheelEvent(QWheelEvent *event) { void JFJochImage::resizeEvent(QResizeEvent *event) { QGraphicsView::resizeEvent(event); + + if (scene()) + scene()->setSceneRect(QRectF(0, 0, static_cast(W), static_cast(H))); + updateOverlay(); } @@ -187,12 +191,16 @@ void JFJochImage::mouseMoveEvent(QMouseEvent *event) { QPointF delta; switch (mouse_event_type) { - case MouseEventType::Panning: - delta = mapToScene(event->pos()) - mapToScene(lastMousePos); + case MouseEventType::Panning: { + const QPoint viewDelta = event->pos() - lastMousePos; lastMousePos = event->pos(); - translate(delta.x(), delta.y()); + + horizontalScrollBar()->setValue(horizontalScrollBar()->value() - viewDelta.x()); + verticalScrollBar()->setValue(verticalScrollBar()->value() - viewDelta.y()); + updateOverlay(); break; + } case MouseEventType::DrawingROI: roiEndPos = RoundPoint(scenePos); updateROI(); -- 2.52.0 From ae0c4a7d01acc7dbe965704af8d29f7f7bd3f6a3 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:32:57 +0200 Subject: [PATCH 18/68] jfjoch_viewer: fix error in updating the pixmap --- viewer/image_viewer/JFJochImage.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/viewer/image_viewer/JFJochImage.cpp b/viewer/image_viewer/JFJochImage.cpp index 463421bd..d2fb126c 100644 --- a/viewer/image_viewer/JFJochImage.cpp +++ b/viewer/image_viewer/JFJochImage.cpp @@ -596,9 +596,7 @@ void JFJochImage::Redraw() { } void JFJochImage::GeneratePixmap() { - // Reuse buffer if size matches, otherwise reallocate - if (qimg_buffer_.width() != int(W) || qimg_buffer_.height() != int(H)) - qimg_buffer_ = QImage(int(W), int(H), QImage::Format_RGB32); + QImage qimg(int(W), int(H), QImage::Format_RGB32); image_rgb.resize(W * H); @@ -632,7 +630,7 @@ void JFJochImage::GeneratePixmap() { for (int y = 0; y < H; ++y) rows.push_back(y); QtConcurrent::blockingMap(rows, [&](int y) { - QRgb *scanLine = reinterpret_cast(qimg_buffer_.scanLine(y)); + QRgb *scanLine = reinterpret_cast(qimg.scanLine(y)); const float *row = &image_fp[y * W]; rgb *out = &image_rgb[y * W]; @@ -673,7 +671,7 @@ void JFJochImage::GeneratePixmap() { } }); - pixmap = QPixmap::fromImage(qimg_buffer_); + pixmap = QPixmap::fromImage(qimg); pixmap.setDevicePixelRatio(1.0); } -- 2.52.0 From d32a56c25469d84087e3278b727d652a55fd5cf5 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:37:12 +0200 Subject: [PATCH 19/68] NUMAHWPolicy: Allow binding to GPU zero --- common/NUMAHWPolicy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/NUMAHWPolicy.cpp b/common/NUMAHWPolicy.cpp index ffe4b8f0..ac6621ae 100644 --- a/common/NUMAHWPolicy.cpp +++ b/common/NUMAHWPolicy.cpp @@ -100,7 +100,7 @@ void NUMAHWPolicy::MemOnNode(int32_t mem_node) { void NUMAHWPolicy::SelectGPU(int32_t gpu) { auto gpu_count = get_gpu_count(); - if ((gpu_count > 0) && (gpu > 0)) { + if ((gpu_count > 0) && (gpu >= 0)) { if (gpu < gpu_count) set_gpu(gpu); else -- 2.52.0 From e01366a75cb33cb484ac0d19b11e85d487214fd4 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:39:38 +0200 Subject: [PATCH 20/68] JFJochCompressor: Excessive allocation --- compression/JFJochCompressor.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compression/JFJochCompressor.h b/compression/JFJochCompressor.h index c6ce2ab1..826b804b 100644 --- a/compression/JFJochCompressor.h +++ b/compression/JFJochCompressor.h @@ -41,7 +41,7 @@ private: }; template std::vector bitshuffle(const std::vector &input, size_t block_size) { - std::vector ret(input.size() * sizeof(T)); + std::vector ret(input.size()); bshuf_bitshuffle(input.data(), ret.data(), input.size(), sizeof(T), block_size); return ret; } -- 2.52.0 From 2b13bfaa1d8f9b3f5aa8e463a2a03e846c78d84e Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:43:23 +0200 Subject: [PATCH 21/68] DetectorSettings: Properly handle optional input --- common/DetectorSettings.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/DetectorSettings.cpp b/common/DetectorSettings.cpp index a0a7e536..24aae992 100644 --- a/common/DetectorSettings.cpp +++ b/common/DetectorSettings.cpp @@ -163,8 +163,10 @@ std::optional DetectorSettings::GetEigerThreshold_keV() const { } DetectorSettings &DetectorSettings::EigerThreshold_keV(const std::optional &input) { - check_min("EIGER Threshold (keV)", input, 1.0); - check_max("EIGER Threshold (keV)", input, 100.0); + if (input.has_value()) { + check_min("EIGER Threshold (keV)", input.value(), 1.0); + check_max("EIGER Threshold (keV)", input.value(), 100.0); + } eiger_threshold_keV = input; return *this; } -- 2.52.0 From 7dad178d867b06f285a8e37284e436f087d2db0d Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:43:53 +0200 Subject: [PATCH 22/68] ResolutionShells: Don't allow zero resolution (calculating 1/d^2 gives NaN) --- common/ResolutionShells.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/common/ResolutionShells.cpp b/common/ResolutionShells.cpp index 9a9643fa..828a64c7 100644 --- a/common/ResolutionShells.cpp +++ b/common/ResolutionShells.cpp @@ -12,8 +12,10 @@ ResolutionShells::ResolutionShells(float d_min, float d_max, int32_t nshells) one_over_dmin2(1 / (d_min * d_min)), one_over_dmax2(1 / (d_max * d_max)), nshells(nshells) { - if (d_min >= d_max || d_min < 0) - throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Wrong resolution range"); + if (d_min <= 0) + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Resolution must be above zero"); + if (d_min >= d_max) + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Reversed resolution bounds"); if (nshells <= 0) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, -- 2.52.0 From bf619e492be33fa6e9614142de1efde991812a60 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 10:47:42 +0200 Subject: [PATCH 23/68] AzimuthalIntegrationProfile: Handle properly GetResult1D --- common/AzimuthalIntegrationProfile.cpp | 17 ++++++--- tests/AzimuthalIntegrationTest.cpp | 50 ++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 4 deletions(-) diff --git a/common/AzimuthalIntegrationProfile.cpp b/common/AzimuthalIntegrationProfile.cpp index a74728d8..b76102a4 100644 --- a/common/AzimuthalIntegrationProfile.cpp +++ b/common/AzimuthalIntegrationProfile.cpp @@ -69,12 +69,21 @@ std::vector AzimuthalIntegrationProfile::GetResult() const { std::vector AzimuthalIntegrationProfile::GetResult1D() const { std::unique_lock ul(m); - std::vector rad_int_profile(q_bins, 0); - for (int i = 0; i < sum.size(); i++) - rad_int_profile[i % q_bins] = sum_to_count(sum[i], count[i]); + std::vector sum_q(q_bins, 0.0f); + std::vector count_q(q_bins, 0); + + for (int i = 0; i < sum.size(); i++) { + const int q_bin = i % q_bins; + sum_q[q_bin] += sum[i]; + count_q[q_bin] += count[i]; + } + + std::vector rad_int_profile(q_bins, 0.0f); + for (int q = 0; q < q_bins; q++) + rad_int_profile[q] = sum_to_count(sum_q[q], count_q[q]); + return rad_int_profile; } - void AzimuthalIntegrationProfile::SetTitle(const std::string &input) { title = input; } diff --git a/tests/AzimuthalIntegrationTest.cpp b/tests/AzimuthalIntegrationTest.cpp index caa10f5a..0023254a 100644 --- a/tests/AzimuthalIntegrationTest.cpp +++ b/tests/AzimuthalIntegrationTest.cpp @@ -258,3 +258,53 @@ TEST_CASE("AzimuthalIntegrationProfile_GetMeanValueOfBins","[AzimuthalIntegratio x.BkgEstimateQRange_recipA(0.01, 0.345); REQUIRE(profile.GetBkgEstimate(x.GetAzimuthalIntegrationSettings()) == Catch::Approx((sum[0] + sum[1] + sum[2]) / double(count[0] + count[1] + count[2]))); } + +TEST_CASE("AzimuthalIntegrationProfile_GetResult1D","[AzimuthalIntegration]") { + DiffractionExperiment x(DetJF4M()); + x.DetectorDistance_mm(50).BeamX_pxl(1000).BeamY_pxl(1000); + + AzimuthalIntegrationSettings settings; + settings.QSpacing_recipA(0.1f).QRange_recipA(0.1f, 0.4f).AzimuthalBinCount(3); + x.ImportAzimuthalIntegrationSettings(settings); + + PixelMask pixel_mask(x); + AzimuthalIntegration mapping(x, pixel_mask); + AzimuthalIntegrationProfile profile(mapping); + + REQUIRE(mapping.GetQBinCount() == 3); + REQUIRE(mapping.GetAzimuthalBinCount() == 3); + REQUIRE(mapping.GetBinNumber() == 9); + + std::vector sum(mapping.GetBinNumber(), 0.0f); + std::vector count(mapping.GetBinNumber(), 0); + + // Layout is [azimuth][q], flattened: + // az0: q0 q1 q2 + // az1: q0 q1 q2 + // az2: q0 q1 q2 + // + // Choose values so the correct collapsed result is easy to verify: + // q0 -> (10 + 20 + 30) / 3 = 20 + // q1 -> (11 + 21 + 31) / 3 = 21 + // q2 -> (12 + 22 + 32) / 3 = 22 + sum[0] = 10; count[0] = 1; // az0 q0 + sum[1] = 11; count[1] = 1; // az0 q1 + sum[2] = 12; count[2] = 1; // az0 q2 + + sum[3] = 20; count[3] = 1; // az1 q0 + sum[4] = 21; count[4] = 1; // az1 q1 + sum[5] = 22; count[5] = 1; // az1 q2 + + sum[6] = 30; count[6] = 1; // az2 q0 + sum[7] = 31; count[7] = 1; // az2 q1 + sum[8] = 32; count[8] = 1; // az2 q2 + + REQUIRE_NOTHROW(profile.Add(sum, count)); + + auto result_1d = profile.GetResult1D(); + + REQUIRE(result_1d.size() == 3); + CHECK(result_1d[0] == Catch::Approx(20.0f)); + CHECK(result_1d[1] == Catch::Approx(21.0f)); + CHECK(result_1d[2] == Catch::Approx(22.0f)); +} -- 2.52.0 From df9ebdc4a8a5c3d448ca1a6e05022c6211e51012 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:14:33 +0200 Subject: [PATCH 24/68] DatasetSettings: Fix empty PolarizationFactor --- common/DatasetSettings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/DatasetSettings.cpp b/common/DatasetSettings.cpp index df7763ba..aed1e68a 100644 --- a/common/DatasetSettings.cpp +++ b/common/DatasetSettings.cpp @@ -421,7 +421,7 @@ DatasetSettings &DatasetSettings::PolarizationFactor(const std::optional check_min("Polarization factor", input.value(), -1.0); check_max("Polarization factor", input.value(), 1.0); } - polarization_factor = input.value(); + polarization_factor = input; return *this; } -- 2.52.0 From 06c4b8fdf23d433abb240de5db45c85573169337 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:17:07 +0200 Subject: [PATCH 25/68] DetectorGeometry: Remove IsModularDetector() as it is not used and actually designed wrong --- common/DetectorGeometry.h | 1 - common/DetectorGeometryFixed.cpp | 3 --- common/DetectorGeometryFixed.h | 1 - common/DetectorGeometryModular.cpp | 4 ---- common/DetectorGeometryModular.h | 1 - 5 files changed, 10 deletions(-) diff --git a/common/DetectorGeometry.h b/common/DetectorGeometry.h index e3c7c3bf..d62245bf 100644 --- a/common/DetectorGeometry.h +++ b/common/DetectorGeometry.h @@ -21,7 +21,6 @@ public: [[nodiscard]] virtual int64_t GetSlowDirectionStep(int64_t module_number) const = 0; [[nodiscard]] virtual Coord GetFastDirection(int64_t module_number) const = 0; [[nodiscard]] virtual Coord GetSlowDirection(int64_t module_number) const = 0; - [[nodiscard]] virtual bool IsModularDetector() const = 0; }; #endif //JUNGFRAUJOCH_DETECTORGEOMETRY_H diff --git a/common/DetectorGeometryFixed.cpp b/common/DetectorGeometryFixed.cpp index 19226b9b..2ba6996d 100644 --- a/common/DetectorGeometryFixed.cpp +++ b/common/DetectorGeometryFixed.cpp @@ -78,6 +78,3 @@ void DetectorGeometryFixed::VerticalFlip() { // Nothing; } -bool DetectorGeometryFixed::IsModularDetector() const { - return true; -} diff --git a/common/DetectorGeometryFixed.h b/common/DetectorGeometryFixed.h index 2d35ec0d..b932fa91 100644 --- a/common/DetectorGeometryFixed.h +++ b/common/DetectorGeometryFixed.h @@ -22,7 +22,6 @@ public: Coord GetFastDirection(int64_t module_number) const override; Coord GetSlowDirection(int64_t module_number) const override; void VerticalFlip(); - bool IsModularDetector() const override; }; diff --git a/common/DetectorGeometryModular.cpp b/common/DetectorGeometryModular.cpp index 1e475afe..57e18dba 100644 --- a/common/DetectorGeometryModular.cpp +++ b/common/DetectorGeometryModular.cpp @@ -141,10 +141,6 @@ void DetectorGeometryModular::VerticalFlip() { m.VerticalFlip(height); } -bool DetectorGeometryModular::IsModularDetector() const { - return false; -} - int64_t DetectorGeometryModular::GetDirectionStep(DetectorModuleGeometry::Direction direction) const { switch (direction) { case DetectorModuleGeometry::Direction::Xneg: diff --git a/common/DetectorGeometryModular.h b/common/DetectorGeometryModular.h index 8dc38063..b3762f43 100644 --- a/common/DetectorGeometryModular.h +++ b/common/DetectorGeometryModular.h @@ -30,7 +30,6 @@ public: Coord GetFastDirection(int64_t module_number) const override; Coord GetSlowDirection(int64_t module_number) const override; void VerticalFlip(); - bool IsModularDetector() const override; }; -- 2.52.0 From 694c250b3ef33c490be7042e843ba4688f88ebf4 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:17:19 +0200 Subject: [PATCH 26/68] MovingAverage: nelems of zero is not allowed --- common/MovingAverage.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/MovingAverage.cpp b/common/MovingAverage.cpp index 3ab60805..70c2cd5c 100644 --- a/common/MovingAverage.cpp +++ b/common/MovingAverage.cpp @@ -4,7 +4,13 @@ #include #include "MovingAverage.h" -MovingAverage::MovingAverage(size_t elems) : elems(elems) {} +#include "JFJochException.h" + +MovingAverage::MovingAverage(size_t elems) : elems(elems) { + if (elems == 0) + throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Moving average size must be positive"); + +} void MovingAverage::Add(float val) { std::unique_lock ul(m); -- 2.52.0 From de5b113273d17fcbf58e47347e63f8265384543f Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:17:56 +0200 Subject: [PATCH 27/68] ROIBox: Correct size, given x_min <= x <= x_max and y_min <= y <= y_max is allowed --- common/ROIBox.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/ROIBox.cpp b/common/ROIBox.cpp index 156cc841..88bfb1e1 100644 --- a/common/ROIBox.cpp +++ b/common/ROIBox.cpp @@ -44,11 +44,11 @@ int64_t ROIBox::GetYMax() const { } int64_t ROIBox::GetWidth() const { - return x_max - x_min; + return x_max - x_min + 1; } int64_t ROIBox::GetHeight() const { - return y_max - y_min; + return y_max - y_min + 1; } int64_t ROIBox::GetArea() const { -- 2.52.0 From ad34e1460016a75fc4475c648c451f369a0985a3 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:18:42 +0200 Subject: [PATCH 28/68] ThreadSafeFIFO: Add lock to Size() function --- common/ThreadSafeFIFO.h | 1 + 1 file changed, 1 insertion(+) diff --git a/common/ThreadSafeFIFO.h b/common/ThreadSafeFIFO.h index 0b0923ca..54285dba 100644 --- a/common/ThreadSafeFIFO.h +++ b/common/ThreadSafeFIFO.h @@ -102,6 +102,7 @@ public: } [[nodiscard]] size_t Size() const { + std::unique_lock ul(m); return queue.size(); } -- 2.52.0 From 64adafc3a43e34f79792051032a20e202d4834b2 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:20:53 +0200 Subject: [PATCH 29/68] ADUHistogram: Make GetHistogram() thread safe, it is executed only on ending data collection, so no big deal anyway --- common/ADUHistogram.cpp | 3 ++- common/ADUHistogram.h | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/common/ADUHistogram.cpp b/common/ADUHistogram.cpp index ff56fbe0..e74d1493 100644 --- a/common/ADUHistogram.cpp +++ b/common/ADUHistogram.cpp @@ -21,7 +21,8 @@ void ADUHistogram::Add(const DeviceOutput &output) { histogram[i] += output.adu_histogram[i]; } -const std::vector &ADUHistogram::GetHistogram() const { +std::vector ADUHistogram::GetHistogram() const { + std::unique_lock ul(m); return histogram; } diff --git a/common/ADUHistogram.h b/common/ADUHistogram.h index 28a10368..d3940cc2 100644 --- a/common/ADUHistogram.h +++ b/common/ADUHistogram.h @@ -15,7 +15,7 @@ public: explicit ADUHistogram(); void Add(const std::vector& input); void Add(const DeviceOutput &output); - const std::vector& GetHistogram() const; + std::vector GetHistogram() const; MultiLinePlot GetPlot() const; void Restart(); }; -- 2.52.0 From a74efcd83080c7f9aeb2884cfbea00246bb08077 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:22:14 +0200 Subject: [PATCH 30/68] ModuleSummation: Make synchronization tighter --- common/ModuleSummation.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/ModuleSummation.cpp b/common/ModuleSummation.cpp index 134b3ac9..50866ae7 100644 --- a/common/ModuleSummation.cpp +++ b/common/ModuleSummation.cpp @@ -116,9 +116,11 @@ void ModuleSummation::AddFPGAOutput(const DeviceOutput &input, const std::option } void ModuleSummation::AddEmptyOutput() { + std::unique_lock ul(module_summation_mutex); is_empty = true; } bool ModuleSummation::empty() const { + std::unique_lock ul(module_summation_mutex); return is_empty; } -- 2.52.0 From 54d741611a51117de7ed5d7fc05190b42706b820 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:24:02 +0200 Subject: [PATCH 31/68] ThreadSafeSet: Remove unused class --- common/ThreadSafeFIFO.h | 50 ++------------------------------- tests/ThreadSafeFIFOSetTest.cpp | 20 ------------- 2 files changed, 3 insertions(+), 67 deletions(-) diff --git a/common/ThreadSafeFIFO.h b/common/ThreadSafeFIFO.h index 54285dba..c1cbba8e 100644 --- a/common/ThreadSafeFIFO.h +++ b/common/ThreadSafeFIFO.h @@ -1,15 +1,15 @@ // SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#ifndef JUNGFRAUJOCH_THREADSAFEFIFO_H -#define JUNGFRAUJOCH_THREADSAFEFIFO_H +#pragma once #include #include #include #include -template class ThreadSafeFIFO { +template +class ThreadSafeFIFO { std::queue queue; std::condition_variable c_empty, c_full; mutable std::mutex m; @@ -121,47 +121,3 @@ public: return utilization; } }; - -template class ThreadSafeSet { - std::set set; - std::condition_variable c; - std::mutex m; -public: - void Clear() { - std::unique_lock ul(m); - set = {}; - } - void Put(T val) { - std::unique_lock ul(m); - set.insert(val); - c.notify_one(); - }; - - int Get(T &val) { - std::unique_lock ul(m); - - if (set.empty()) return 0; - else { - auto iter = set.begin(); - val = *iter; - set.erase(iter); - return 1; - } - } - - T GetBlocking() { - std::unique_lock ul(m); - c.wait(ul, [&]{return !set.empty();}); - auto iter = set.begin(); - T tmp = *iter; - set.erase(iter); - return tmp; - }; - - size_t Size() const { - std::unique_lock ul(m); - return set.size(); - } -}; - -#endif //JUNGFRAUJOCH_THREADSAFEFIFO_H diff --git a/tests/ThreadSafeFIFOSetTest.cpp b/tests/ThreadSafeFIFOSetTest.cpp index 07627ce1..d0909d6f 100644 --- a/tests/ThreadSafeFIFOSetTest.cpp +++ b/tests/ThreadSafeFIFOSetTest.cpp @@ -97,26 +97,6 @@ TEST_CASE("ThreadSafeFIFO_GetTimeout_no_timeout","[ThreadSafeFIFO]") { std::cout << std::chrono::duration_cast(end - start).count() << std::endl; } -TEST_CASE("ThreadSafeSet","[ThreadSafeFIFO]") { - ThreadSafeSet set; - uint32_t tmp; - set.Put(0); - set.Put(1); - - REQUIRE(set.Get(tmp) == 1); - CHECK (tmp == 0); - - set.Put(0); - - REQUIRE(set.Get(tmp) == 1); - CHECK (tmp == 0); - - REQUIRE(set.Get(tmp) == 1); - CHECK (tmp == 1); - - REQUIRE(set.Get(tmp) == 0); -} - TEST_CASE("ThreadSafeFIFO_Utilization","[ThreadSafeFIFO]") { ThreadSafeFIFO fifo; uint32_t tmp; -- 2.52.0 From c3c917922e623aec1aff1bf7546513fc13ec1ed4 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:28:42 +0200 Subject: [PATCH 32/68] ROIBox: Handle trimming when x_min < 0 and x_max >= 0, but zero-box when x_max < 0 --- common/ROIBox.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/common/ROIBox.cpp b/common/ROIBox.cpp index 88bfb1e1..0d8cbc7e 100644 --- a/common/ROIBox.cpp +++ b/common/ROIBox.cpp @@ -5,6 +5,7 @@ ROIBox::ROIBox(const std::string &in_name, int64_t in_x_min, int64_t in_x_max, int64_t in_y_min, int64_t in_y_max) : ROIElement(in_name) { + if (in_x_max < in_x_min) { x_min = in_x_max; x_max = in_x_min; @@ -21,10 +22,19 @@ ROIBox::ROIBox(const std::string &in_name, int64_t in_x_min, int64_t in_x_max, i y_max = in_y_max; } - if (x_min < 0) + if (x_max < 0) { x_min = 0; - if (y_min < 0) + x_max = -1; + } else if (x_min < 0) { + x_min = 0; + } + + if (y_max < 0) { y_min = 0; + y_max = -1; + } else if (y_min < 0) { + y_min = 0; + } } int64_t ROIBox::GetXMin() const { -- 2.52.0 From 192a95a1884b4751cac8c61d9d340af8902980b7 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:29:55 +0200 Subject: [PATCH 33/68] DiffractionExperiment: Handle frame count time auto logic properly --- common/DiffractionExperiment.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/DiffractionExperiment.cpp b/common/DiffractionExperiment.cpp index 29acfb97..50112b29 100644 --- a/common/DiffractionExperiment.cpp +++ b/common/DiffractionExperiment.cpp @@ -311,7 +311,7 @@ std::chrono::microseconds DiffractionExperiment::GetFrameCountTime() const { } bool DiffractionExperiment::GetFrameCountTimeAuto() const { - return detector_settings.GetCountTime().has_value(); + return !detector_settings.GetCountTime().has_value(); } std::chrono::microseconds DiffractionExperiment::GetImageCountTime() const { -- 2.52.0 From c004a6c7a968081859aa007087c83188392f17a7 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:31:45 +0200 Subject: [PATCH 34/68] jfjoch_tests: Update ROIBox tests --- tests/ROIMapTest.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/ROIMapTest.cpp b/tests/ROIMapTest.cpp index 10fb7af7..ca4291c6 100644 --- a/tests/ROIMapTest.cpp +++ b/tests/ROIMapTest.cpp @@ -64,9 +64,22 @@ TEST_CASE("ROIBox_NegativeBounds", "[ROIMap]") { REQUIRE_NOTHROW(rectangle = std::make_unique("roi1", -200,220,220, 221)); REQUIRE(rectangle->GetXMin() == 0); REQUIRE(rectangle->GetXMax() == 220); + REQUIRE_NOTHROW(rectangle = std::make_unique("roi1", 200,-220,220, 221)); REQUIRE(rectangle->GetXMin() == 0); REQUIRE(rectangle->GetXMax() == 200); + + REQUIRE_NOTHROW(rectangle = std::make_unique("roi1", -200,-20,220, 221)); + REQUIRE(rectangle->GetXMin() == 0); + REQUIRE(rectangle->GetXMax() == -1); + REQUIRE(rectangle->GetWidth() == 0); + REQUIRE(rectangle->GetArea() == 0); + + REQUIRE_NOTHROW(rectangle = std::make_unique("roi1", 220,221,-200, -20)); + REQUIRE(rectangle->GetYMin() == 0); + REQUIRE(rectangle->GetYMax() == -1); + REQUIRE(rectangle->GetHeight() == 0); + REQUIRE(rectangle->GetArea() == 0); } TEST_CASE("ROIBox_MarkROI", "[ROIMap]") { @@ -120,9 +133,9 @@ TEST_CASE("ROIBox", "[ROIMap]") { REQUIRE(rectangle->GetXMax() == 202); REQUIRE(rectangle->GetYMin() == 218); REQUIRE(rectangle->GetYMax() == 222); - REQUIRE(rectangle->GetWidth() == 4); - REQUIRE(rectangle->GetHeight() == 4); - REQUIRE(rectangle->GetArea() == 16); + REQUIRE(rectangle->GetWidth() == 5); + REQUIRE(rectangle->GetHeight() == 5); + REQUIRE(rectangle->GetArea() == 25); } TEST_CASE("ROIAzimuthal", "[ROIMap]") { -- 2.52.0 From e481e5b1fb4773e0cfb1c643a505b34b1cd5314b Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:36:27 +0200 Subject: [PATCH 35/68] JFJochReceiverCurrentStatus: Check for empty status, before dereferencing --- receiver/JFJochReceiverCurrentStatus.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/receiver/JFJochReceiverCurrentStatus.cpp b/receiver/JFJochReceiverCurrentStatus.cpp index e0c1d637..1ec646f2 100644 --- a/receiver/JFJochReceiverCurrentStatus.cpp +++ b/receiver/JFJochReceiverCurrentStatus.cpp @@ -21,7 +21,8 @@ void JFJochReceiverCurrentStatus::SetStatus(const JFJochReceiverStatus &in_statu void JFJochReceiverCurrentStatus::SetEfficiency(const std::optional &e) { std::unique_lock ul(m); - status->efficiency = e; + if (status.has_value()) + status->efficiency = e; } std::optional JFJochReceiverCurrentStatus::GetProgress() const { -- 2.52.0 From 09ed5dac8f84b0b262729d44cd16fb0cbaed1b32 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:39:40 +0200 Subject: [PATCH 36/68] DatasetSettings: More thorough validation for UnitCell --- common/DatasetSettings.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/common/DatasetSettings.cpp b/common/DatasetSettings.cpp index aed1e68a..c6665018 100644 --- a/common/DatasetSettings.cpp +++ b/common/DatasetSettings.cpp @@ -103,7 +103,13 @@ DatasetSettings &DatasetSettings::Compression(CompressionAlgorithm input) { } DatasetSettings &DatasetSettings::SetUnitCell(const std::optional &cell) { - if (cell && (cell->a * cell->b * cell->c * cell->alpha * cell->beta * cell->gamma != 0.0)) { + if (cell + && (cell->a > 0.0) && std::isfinite(cell->a) + && (cell->b > 0.0) && std::isfinite(cell->b) + && (cell->c > 0.0) && std::isfinite(cell->c) + && (cell->alpha > 0.0) && std::isfinite(cell->alpha) + && (cell->beta > 0.0) && std::isfinite(cell->beta) + && (cell->gamma > 0.0) && std::isfinite(cell->gamma)) { check_min("Angle alpha", cell->alpha, 0); check_min("Angle beta", cell->beta, 0); -- 2.52.0 From f82222ec5e6082c931738abd48f9feddaf144ddd Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:41:48 +0200 Subject: [PATCH 37/68] ROI: Error reporting fixes --- common/ROICircle.cpp | 2 +- common/ROIElement.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/common/ROICircle.cpp b/common/ROICircle.cpp index 845bc30f..f237e93a 100644 --- a/common/ROICircle.cpp +++ b/common/ROICircle.cpp @@ -8,7 +8,7 @@ ROICircle::ROICircle(const std::string &name, float in_x, float in_y, float in_r : ROIElement(name), center_x(in_x), center_y(in_y), r_pxl(in_r_pxl), r_pxl_2(in_r_pxl * in_r_pxl) { if (r_pxl <= 0.0) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, - "ROIRectangle::MarkROI mismatch in input array size"); + "ROICircle: radius must be positive number"); } float ROICircle::GetX() const { diff --git a/common/ROIElement.cpp b/common/ROIElement.cpp index 44fece09..deb4f9dd 100644 --- a/common/ROIElement.cpp +++ b/common/ROIElement.cpp @@ -24,7 +24,7 @@ void ROIElement::MarkROI(std::vector &v, uint16_t value_to_mark, int64 if (value_to_mark >= 16) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, - "ROICircle: Only 16-bit available for ROI"); + "ROICircle: Only 16 selections available for ROI"); for (int64_t y = 0; y < ypixel; y++) { for (int64_t x = 0; x < xpixel; x++) { -- 2.52.0 From a66cf7e8fe5d22a088ab2541190ef50886e0b5be Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:48:22 +0200 Subject: [PATCH 38/68] TCPStreamPusher: Fix calibration behavior --- image_pusher/TCPStreamPusher.cpp | 74 ++++++++++++++++++++++++++++++-- image_pusher/TCPStreamPusher.h | 1 + 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/image_pusher/TCPStreamPusher.cpp b/image_pusher/TCPStreamPusher.cpp index 62e8835d..0f777b68 100644 --- a/image_pusher/TCPStreamPusher.cpp +++ b/image_pusher/TCPStreamPusher.cpp @@ -150,6 +150,7 @@ TCPStreamPusher::~TCPStreamPusher() { local_connections = std::move(connections); connections.clear(); session_connections.clear(); + calibration_connection.reset(); } for (auto& c : local_connections) { @@ -923,6 +924,7 @@ void TCPStreamPusher::StartDataCollection(StartMessage& message) { throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "No writers connected to " + endpoint); session_connections = connections; + calibration_connection = session_connections[0]; local_connections = session_connections; } @@ -953,6 +955,7 @@ void TCPStreamPusher::StartDataCollection(StartMessage& message) { { std::lock_guard lg(connections_mutex); session_connections.clear(); + calibration_connection.reset(); } data_collection_active = false; }; @@ -1085,6 +1088,7 @@ bool TCPStreamPusher::EndDataCollection(const EndMessage& message) { { std::lock_guard lg(connections_mutex); session_connections.clear(); + calibration_connection.reset(); } data_collection_active = false; @@ -1094,20 +1098,82 @@ bool TCPStreamPusher::EndDataCollection(const EndMessage& message) { bool TCPStreamPusher::SendCalibration(const CompressedImage& message) { std::shared_ptr target; + { std::lock_guard lg(connections_mutex); - if (connections.empty()) + + if (!data_collection_active) { + logger.Error("Refusing to send TCP calibration: no active run"); return false; - target = connections[0]; + } + + if (!calibration_connection) { + logger.Error("Refusing to send TCP calibration: calibration target is not set"); + return false; + } + + target = calibration_connection; } - if (!target || target->broken) + if (!target) { + logger.Error("Refusing to send TCP calibration: calibration target is null"); return false; + } + + if (target->broken) { + logger.Error("Refusing to send TCP calibration: target socket {} is marked broken", target->socket_number); + return false; + } + + if (!target->connected) { + logger.Error("Refusing to send TCP calibration: target socket {} is not connected", target->socket_number); + return false; + } + + if (!target->active) { + logger.Error("Refusing to send TCP calibration: target socket {} is not active in current session", target->socket_number); + return false; + } serializer.SerializeCalibration(message); std::unique_lock ul(target->send_mutex); - return SendFrame(*target, serialization_buffer.data(), serializer.GetBufferSize(), TCPFrameType::CALIBRATION, -1, nullptr); + + if (target->broken) { + logger.Error("Refusing to send TCP calibration: target socket {} became broken before send", target->socket_number); + return false; + } + + if (!target->connected) { + logger.Error("Refusing to send TCP calibration: target socket {} disconnected before send", target->socket_number); + return false; + } + + if (!target->active) { + logger.Error("Refusing to send TCP calibration: target socket {} became inactive before send", target->socket_number); + return false; + } + + if (!IsConnectionAlive(*target)) { + logger.Error("Refusing to send TCP calibration: target socket {} is not alive", target->socket_number); + target->broken = true; + return false; + } + + const bool ok = SendFrame(*target, + serialization_buffer.data(), + serializer.GetBufferSize(), + TCPFrameType::CALIBRATION, + -1, + nullptr); + + if (!ok) { + logger.Error("Failed to send TCP calibration on socket {}", target->socket_number); + target->broken = true; + return false; + } + + return true; } std::string TCPStreamPusher::Finalize() { diff --git a/image_pusher/TCPStreamPusher.h b/image_pusher/TCPStreamPusher.h index 5c6a5d05..69b4d59c 100644 --- a/image_pusher/TCPStreamPusher.h +++ b/image_pusher/TCPStreamPusher.h @@ -110,6 +110,7 @@ class TCPStreamPusher : public ImagePusher { mutable std::mutex connections_mutex; std::vector> connections; std::vector> session_connections; + std::shared_ptr calibration_connection; // Acceptor thread state std::atomic listen_fd{-1}; -- 2.52.0 From 5ac6e49959f0b36b24d8c99801f2d359b0cb391c Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:48:35 +0200 Subject: [PATCH 39/68] time_utc: Use thread-safe routines to get local time --- common/time_utc.h | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/common/time_utc.h b/common/time_utc.h index b6f1488f..4d925929 100644 --- a/common/time_utc.h +++ b/common/time_utc.h @@ -1,9 +1,12 @@ // SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only -#ifndef JUNGFRAUJOCH_TIME_UTC_H -#define JUNGFRAUJOCH_TIME_UTC_H +#pragma once +#include +#include +#include +#include #include #include #include @@ -14,8 +17,13 @@ inline std::string time_UTC(const std::chrono::time_point 3) { - // Truncate beyond milliseconds frac = frac.substr(0, 3); } else if (frac.size() < 3) { - // Pad with zeros if less than 3 digits while (frac.size() < 3) frac.push_back('0'); } @@ -58,8 +62,6 @@ inline uint64_t parse_UTC_to_ms(const std::string& utc_string) { return static_cast(t) * 1000ULL + milliseconds; } - -// -- new function that reuses parse_UTC_to_ms() -- inline std::string utc_to_local_human_readable(const std::string& utc_string) { using namespace std::chrono; @@ -68,8 +70,9 @@ inline std::string utc_to_local_human_readable(const std::string& utc_string) { auto tp = system_clock::time_point(milliseconds(ms_since_epoch)); time_t t = system_clock::to_time_t(tp); - // Convert to local time - std::tm tm_local = *std::localtime(&t); + std::tm tm_local{}; + if (localtime_r(&t, &tm_local) == nullptr) + return ""; static const char* months[] = { "January", "February", "March", "April", "May", "June", @@ -88,5 +91,3 @@ inline std::string utc_to_local_human_readable(const std::string& utc_string) { return ""; } } - -#endif //JUNGFRAUJOCH_TIME_UTC_H -- 2.52.0 From 4a10001b1622c8d725dc2cc859f7f9de12c06806 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:54:47 +0200 Subject: [PATCH 40/68] HDF5Objects: Error in HDF5Id copy constructor. --- writer/HDF5Objects.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/writer/HDF5Objects.cpp b/writer/HDF5Objects.cpp index b95425a5..f5048ae1 100644 --- a/writer/HDF5Objects.cpp +++ b/writer/HDF5Objects.cpp @@ -19,11 +19,11 @@ HDF5Id::HDF5Id(HDF5Id &&other) noexcept { } HDF5Id::HDF5Id(const HDF5Id &other) { + id = other.id; if (H5Iis_valid(id)) { if (H5Iinc_ref(id) < 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Cannot increment HDF5 Counter"); } - id = other.id; } HDF5DataSpace::HDF5DataSpace(const std::vector &dims, const std::vector &max_dims) : HDF5Id() { -- 2.52.0 From d25fa4f0a854ae083c80954f388764aadf3d09b1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:58:25 +0200 Subject: [PATCH 41/68] StreamWriter: If state is Finalized, use end_time for statistics --- writer/StreamWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/writer/StreamWriter.cpp b/writer/StreamWriter.cpp index 4a2cbc0d..0c152554 100644 --- a/writer/StreamWriter.cpp +++ b/writer/StreamWriter.cpp @@ -277,7 +277,7 @@ StreamWriterStatistics StreamWriter::GetStatistics() const { if ((state != StreamWriterState::Started) && (processed_images > 0)) { int64_t time_us; - if (state == StreamWriterState::Idle) + if (state == StreamWriterState::Idle || state == StreamWriterState::Finalized) time_us = std::chrono::duration_cast(end_time - start_time).count(); else time_us = std::chrono::duration_cast(std::chrono::system_clock::now() - start_time).count(); -- 2.52.0 From be714f4da176409a07b258683f26ef8d73fb42c4 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:58:38 +0200 Subject: [PATCH 42/68] ImagePuller: Remove duplicate include --- image_puller/ImagePuller.h | 1 - 1 file changed, 1 deletion(-) diff --git a/image_puller/ImagePuller.h b/image_puller/ImagePuller.h index 66f0b545..462f0736 100644 --- a/image_puller/ImagePuller.h +++ b/image_puller/ImagePuller.h @@ -11,7 +11,6 @@ #include "../frame_serialize/CBORStream2Deserializer.h" #include "../common/ThreadSafeFIFO.h" #include "../common/JfjochTCP.h" -#include "../common/JfjochTCP.h" struct PullerAckMessage { TCPFrameType ack_for = TCPFrameType::DATA; -- 2.52.0 From 23d4c085aaaa6ee03b56cb72626628428872befd Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:58:50 +0200 Subject: [PATCH 43/68] HDF5Objects: Fix transformation generation --- writer/HDF5Objects.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/writer/HDF5Objects.cpp b/writer/HDF5Objects.cpp index f5048ae1..9446e0d9 100644 --- a/writer/HDF5Objects.cpp +++ b/writer/HDF5Objects.cpp @@ -602,7 +602,7 @@ HDF5Object& HDF5Object::Transformation(const std::string& units, const std::stri if (!units.empty()) Attr("units", units); if (!depends_on.empty()) Attr("depends_on", depends_on); if (!equipment.empty()) Attr("equipment", equipment); - if (!equipment_component.empty()) Attr("equipment_component", equipment); + if (!equipment_component.empty()) Attr("equipment_component", equipment_component); if (!transformation_type.empty()) Attr("transformation_type", transformation_type); Attr("vector", vector); return *this; -- 2.52.0 From b9e7a795414ba475f4cfbb663cb1bbaf5f792bf1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 11:59:10 +0200 Subject: [PATCH 44/68] CBORStream2Deserializer: Fix out of memory write --- frame_serialize/CBORStream2Deserializer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frame_serialize/CBORStream2Deserializer.cpp b/frame_serialize/CBORStream2Deserializer.cpp index 90ddedb2..23817913 100644 --- a/frame_serialize/CBORStream2Deserializer.cpp +++ b/frame_serialize/CBORStream2Deserializer.cpp @@ -15,7 +15,7 @@ namespace { std::vector s(16384); size_t len = s.size() - 1; cborErr(cbor_value_copy_text_string(&value, s.data(), &len, nullptr)); - s[len + 1] = 0; + s[len] = 0; cborErr(cbor_value_advance(&value)); return {s.data()}; } -- 2.52.0 From 1ea5de347d2e01f9d840510a2187573a89210bd8 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 12:01:05 +0200 Subject: [PATCH 45/68] StreamWriter: Fix sendint proper ACK at the end of data colection --- writer/StreamWriter.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/writer/StreamWriter.cpp b/writer/StreamWriter.cpp index 0c152554..247aab01 100644 --- a/writer/StreamWriter.cpp +++ b/writer/StreamWriter.cpp @@ -164,12 +164,11 @@ void StreamWriter::ProcessEndMessage() { err = e.what(); } } - bool error_state = (state == StreamWriterState::Error); FinalizeDataCollection(); - // Notifications happen only when handling END message - // No end message ==> no need to ACK + const bool error_state = (state == StreamWriterState::Error); + NotifyReceiverOnFinalizedWrite(writer_notification_zmq_addr); NotifyTcpAck(TCPFrameType::END, !error_state, error_state, error_state ? TCPAckCode::EndFailed : TCPAckCode::None, -- 2.52.0 From d696d1298a176bb0ce4843c2133b8a57c5a5d5df Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 15:46:10 +0200 Subject: [PATCH 46/68] DatasetSettings: Clarify logic for unit cell verification prior to assignment --- common/DatasetSettings.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/common/DatasetSettings.cpp b/common/DatasetSettings.cpp index c6665018..3d7cc769 100644 --- a/common/DatasetSettings.cpp +++ b/common/DatasetSettings.cpp @@ -103,20 +103,18 @@ DatasetSettings &DatasetSettings::Compression(CompressionAlgorithm input) { } DatasetSettings &DatasetSettings::SetUnitCell(const std::optional &cell) { - if (cell - && (cell->a > 0.0) && std::isfinite(cell->a) - && (cell->b > 0.0) && std::isfinite(cell->b) - && (cell->c > 0.0) && std::isfinite(cell->c) - && (cell->alpha > 0.0) && std::isfinite(cell->alpha) - && (cell->beta > 0.0) && std::isfinite(cell->beta) - && (cell->gamma > 0.0) && std::isfinite(cell->gamma)) { - - check_min("Angle alpha", cell->alpha, 0); - check_min("Angle beta", cell->beta, 0); - check_min("Angle gamma", cell->gamma, 0); - - check_max("Angle alpha", cell->alpha, 360); - check_max("Angle beta", cell->beta, 360); + // If one or more cell parameters are zero - assume cell is not provided + // But if all parameters non-zero - throw exception for non-sense values + if (cell && (cell->a != 0) && (cell->b != 0) && (cell->c != 0) + && (cell->alpha != 0) && (cell->beta != 0) && (cell->gamma != 0)) { + check_min("Unit cell a", cell->a, 0.1); + check_min("Unit cell b", cell->b, 0.1); + check_min("Unit cell c", cell->c, 0.1); + check_min("Angle alpha", cell->alpha, 5.0); + check_min("Angle beta", cell->beta, 5.0); + check_min("Angle gamma", cell->gamma, 5.0); + check_max("Angle alpha", cell->alpha, 355.0); + check_max("Angle beta", cell->beta, 355.0); check_max("Angle gamma", cell->gamma, 360); unit_cell = cell; } else -- 2.52.0 From b5eb24d4e888c6576f5c47cc901558f7c8acbef1 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Wed, 15 Apr 2026 15:48:19 +0200 Subject: [PATCH 47/68] IndexerThreadPool: Only GPU pinning, no CPU pinning --- image_analysis/indexing/IndexerThreadPool.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/image_analysis/indexing/IndexerThreadPool.cpp b/image_analysis/indexing/IndexerThreadPool.cpp index ee6ff3ff..1a845497 100644 --- a/image_analysis/indexing/IndexerThreadPool.cpp +++ b/image_analysis/indexing/IndexerThreadPool.cpp @@ -69,14 +69,11 @@ std::future IndexerThreadPool::Run(const DiffractionExperiment &e void IndexerThreadPool::Worker(int32_t threadIndex, const NUMAHWPolicy &numa_policy, const IndexingSettings &settings) { try { + // IndexerThreadPool is bound to GPU, but not to CPU choice #ifdef JFJOCH_USE_CUDA auto gpu_count = get_gpu_count(); if (gpu_count > 0) - NUMAHWPolicy::SelectGPUAndItsNUMA(threadIndex % gpu_count); - else - numa_policy.Bind(threadIndex); -#else - numa_policy.Bind(threadIndex); + set_gpu(threadIndex % gpu_count); #endif } catch (...) { // NUMA policy errors are not critical and should be ignored for the time being. -- 2.52.0 From 5a8e4a7ad5d692cd7327eb549961b0c4132150d7 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Wed, 15 Apr 2026 20:52:25 +0200 Subject: [PATCH 48/68] CMake: Make sure SZIP is not needed for HDF5, but ZLIB is present --- CMakeLists.txt | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2fbf219..35d03d0a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,16 +76,12 @@ CHECK_INCLUDE_FILE(numa.h HAS_NUMA_H) include(FetchContent) -SET(PISTACHE_USE_CONTENT_ENCODING_DEFLATE ON) -SET(PISTACHE_BUILD_TESTS OFF) -SET(PISTACHE_USE_SSL ON) - -SET(HDF5_ENABLE_SZIP_SUPPORT OFF) -SET(HDF5_ENABLE_SZIP_ENCODING OFF) -SET(HDF5_BUILD_EXAMPLES OFF) -SET(HDF5_BUILD_CPP_LIB OFF) -SET(HDF5_ENABLE_Z_LIB_SUPPORT ON) -SET(HDF5_EXTERNALLY_CONFIGURED 1) +SET(HDF5_ENABLE_SZIP_SUPPORT OFF CACHE BOOL "" FORCE) +SET(HDF5_ENABLE_SZIP_ENCODING OFF CACHE BOOL "" FORCE) +SET(HDF5_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) +SET(HDF5_BUILD_CPP_LIB OFF CACHE BOOL "" FORCE) +SET(HDF5_ENABLE_ZLIB_SUPPORT ON CACHE BOOL "" FORCE) +SET(HDF5_EXTERNALLY_CONFIGURED 1 CACHE BOOL "" FORCE) SET(SPDLOG_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) SET(SPDLOG_BUILD_TESTS OFF CACHE BOOL "" FORCE) -- 2.52.0 From 2efa26fdb50ac9da10a01844528e85b8e0a7a55a Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Wed, 15 Apr 2026 20:59:21 +0200 Subject: [PATCH 49/68] Revert "IndexerThreadPool: Only GPU pinning, no CPU pinning" This reverts commit b5eb24d4e888c6576f5c47cc901558f7c8acbef1. --- image_analysis/indexing/IndexerThreadPool.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/image_analysis/indexing/IndexerThreadPool.cpp b/image_analysis/indexing/IndexerThreadPool.cpp index 1a845497..ee6ff3ff 100644 --- a/image_analysis/indexing/IndexerThreadPool.cpp +++ b/image_analysis/indexing/IndexerThreadPool.cpp @@ -69,11 +69,14 @@ std::future IndexerThreadPool::Run(const DiffractionExperiment &e void IndexerThreadPool::Worker(int32_t threadIndex, const NUMAHWPolicy &numa_policy, const IndexingSettings &settings) { try { - // IndexerThreadPool is bound to GPU, but not to CPU choice #ifdef JFJOCH_USE_CUDA auto gpu_count = get_gpu_count(); if (gpu_count > 0) - set_gpu(threadIndex % gpu_count); + NUMAHWPolicy::SelectGPUAndItsNUMA(threadIndex % gpu_count); + else + numa_policy.Bind(threadIndex); +#else + numa_policy.Bind(threadIndex); #endif } catch (...) { // NUMA policy errors are not critical and should be ignored for the time being. -- 2.52.0 From e2586a5ba1e4b566e7abc6c05609cd563291dd95 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 07:58:16 +0200 Subject: [PATCH 50/68] JFJochStateMachine: If FFTW library is compiled in than indexing is always possible --- broker/JFJochStateMachine.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/broker/JFJochStateMachine.cpp b/broker/JFJochStateMachine.cpp index 924c5f60..d14cfeeb 100644 --- a/broker/JFJochStateMachine.cpp +++ b/broker/JFJochStateMachine.cpp @@ -21,10 +21,13 @@ JFJochStateMachine::JFJochStateMachine(const DiffractionExperiment& in_experimen pixel_mask_statistics({0, 0, 0}), gpu_count(get_gpu_count()) { - indexing_possible = (get_gpu_count() >= 0); +#ifndef JFJOCH_USE_FFTW + indexing_possible = (get_gpu_count() > 0); if (!indexing_possible) data_processing_settings.indexing = false; - +#else + data_processing_settings.indexing = true; +#endif SupressTIFFErrors(); } -- 2.52.0 From 39a7024274310cecce73bfa16ebfd2b071186c72 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:00:29 +0200 Subject: [PATCH 51/68] HDF5Objects: Don't use variable-length stack array --- writer/HDF5Objects.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/writer/HDF5Objects.cpp b/writer/HDF5Objects.cpp index 9446e0d9..efecd72c 100644 --- a/writer/HDF5Objects.cpp +++ b/writer/HDF5Objects.cpp @@ -665,9 +665,9 @@ std::unique_ptr HDF5Object::SaveVector(const std::string &name, con HDF5DataSpace data_space({val.size()}); auto dataset = std::make_unique(*this, name, data_type, data_space, dcpl); - char buffer[(len+1) * val.size()]; - for (int i = 0; i < val.size(); i++) strncpy(buffer + i * (len+1), val[i].c_str(), len+1); - dataset->Write(data_type, buffer); + std::vector buffer((len + 1) * val.size(), '\0'); + for (int i = 0; i < val.size(); i++) strncpy(buffer.data() + i * (len+1), val[i].c_str(), len+1); + dataset->Write(data_type, buffer.data()); return dataset; } -- 2.52.0 From 48e1f4fb7db2de580ee86b3569b677148c640f89 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:03:42 +0200 Subject: [PATCH 52/68] ZMQWrappers: Add explicit null termination to ZMQSocket::GetEndpointName() --- common/ZMQWrappers.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/ZMQWrappers.cpp b/common/ZMQWrappers.cpp index 0e110474..eee20dec 100644 --- a/common/ZMQWrappers.cpp +++ b/common/ZMQWrappers.cpp @@ -194,7 +194,8 @@ ZMQSocket &ZMQSocket::EnableKeepAlive() { std::string ZMQSocket::GetEndpointName() { char tmp[256]; - size_t len = 255; + size_t len = sizeof(tmp) - 1; + tmp[len] = '\0'; zmq_getsockopt(socket, ZMQ_LAST_ENDPOINT, tmp, &len); return tmp; } -- 2.52.0 From fc292a4d71299ea220843aa4ecd4eacf160439f4 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:09:08 +0200 Subject: [PATCH 53/68] CheckPath: Better validation routine --- common/CheckPath.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/common/CheckPath.h b/common/CheckPath.h index e685b526..befcb130 100644 --- a/common/CheckPath.h +++ b/common/CheckPath.h @@ -8,7 +8,10 @@ #include "JFJochException.h" inline void CheckPath(const std::string &s) { - if (!s.empty() && s.front() == '/') + // CheckPath looks validates that s can be a valid file name + // (in practice with an added suffix, .e.g. _master.h5 or .tiff) + // It avoids paths going outside of a given directory + if (!s.empty() && (s.front() == '/' || s.back() != '/')) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with slash"); if (s.size() >= 3 && s.substr(0,3) == "../") -- 2.52.0 From be09b62f8f8a4971934158c4a042f47512b1dcfe Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:09:29 +0200 Subject: [PATCH 54/68] JFJochReceiverPlots: Add clarification of thread safety (to be improved) --- receiver/JFJochReceiverPlots.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/receiver/JFJochReceiverPlots.h b/receiver/JFJochReceiverPlots.h index 9985a10f..f1171c5d 100644 --- a/receiver/JFJochReceiverPlots.h +++ b/receiver/JFJochReceiverPlots.h @@ -62,6 +62,10 @@ class JFJochReceiverPlots { StatusVector max_value; StatusVector resolution_estimate; + // StatusVector objects are fully thread-safe (protected by internal mutex) + // It is OK to have concurrent access to StatusVector + // roi_m lock is needed to make sure that std::map is not mutable within critical section + // so no new elements added outside of a unique lock, but it is OK to modify ROIStatus under shared lock struct ROIStatus { StatusVector sum; StatusVector max_count; -- 2.52.0 From c16523db218092ba170c5b516b8a87b8ca5fcd28 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:32:12 +0200 Subject: [PATCH 55/68] HDF5Objects: Safer string handling in ReadString() --- writer/HDF5Objects.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/writer/HDF5Objects.cpp b/writer/HDF5Objects.cpp index efecd72c..b0c540e5 100644 --- a/writer/HDF5Objects.cpp +++ b/writer/HDF5Objects.cpp @@ -779,18 +779,24 @@ std::string HDF5DataSet::ReadString() const { HDF5DataSpace file_space(*this); if (file_space.GetNumOfDimensions() != 0) throw JFJochException(JFJochExceptionCategory::HDF5, "Dataset tries to read string (scalar) from vector dataset"); - HDF5DataType file_data_type(*this); - if (file_data_type.GetElemSize() <= 0) + HDF5DataType file_data_type(*this); + const size_t size = file_data_type.GetElemSize(); + + if (size == 0) return ""; - char tmp[file_data_type.GetElemSize()+1]; - tmp[file_data_type.GetElemSize()] = 0; + std::string buffer(size, '\0'); - if (H5Dread(id, file_data_type.GetID(), H5S_ALL, H5S_ALL, H5P_DEFAULT, tmp) < 0) - throw JFJochException(JFJochExceptionCategory::HDF5, dataset_name + ": read unsuccessful"); + if (H5Dread(id, file_data_type.GetID(), H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer.data()) < 0) + throw JFJochException(JFJochExceptionCategory::HDF5, + dataset_name + ": read unsuccessful"); - return {tmp}; + const size_t end = buffer.find('\0'); + if (end != std::string::npos) + buffer.resize(end); + + return buffer; } HDF5DataSet::~HDF5DataSet() { -- 2.52.0 From 581a8d1335ed6f9da3b15965a9d04d0f0f8ae717 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:32:21 +0200 Subject: [PATCH 56/68] CheckPath: Add clarification --- common/CheckPath.h | 1 + 1 file changed, 1 insertion(+) diff --git a/common/CheckPath.h b/common/CheckPath.h index befcb130..cce47366 100644 --- a/common/CheckPath.h +++ b/common/CheckPath.h @@ -11,6 +11,7 @@ inline void CheckPath(const std::string &s) { // CheckPath looks validates that s can be a valid file name // (in practice with an added suffix, .e.g. _master.h5 or .tiff) // It avoids paths going outside of a given directory + if (!s.empty() && (s.front() == '/' || s.back() != '/')) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with slash"); -- 2.52.0 From 53e756c3c6f326015c5be66b4c2c4dca6b2b8f94 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:38:36 +0200 Subject: [PATCH 57/68] OpenAPIConvert: Minor fixes --- broker/OpenAPIConvert.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/broker/OpenAPIConvert.cpp b/broker/OpenAPIConvert.cpp index 0bf1349c..495529a2 100644 --- a/broker/OpenAPIConvert.cpp +++ b/broker/OpenAPIConvert.cpp @@ -87,8 +87,8 @@ org::openapitools::server::model::Measurement_statistics Convert(const Measureme ret.setBkgEstimate(input.bkg_estimate.value()); ret.setUnitCell(input.unit_cell); ret.setRunNumber(input.run_number); - - + if (input.images_written) + ret.setImagesWritten(input.images_written.value()); return ret; } @@ -725,7 +725,7 @@ org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPrevi org::openapitools::server::model::Zeromq_preview_settings ret; ret.setEnabled(settings.period.has_value()); if (settings.period.has_value()) - ret.setPeriodMs(settings.period.value().count() / 1000); + ret.setPeriodMs(settings.period.value().count()); ret.setSocketAddress(settings.address); return ret; } @@ -734,7 +734,7 @@ org::openapitools::server::model::Zeromq_metadata_settings Convert(const ZMQMeta org::openapitools::server::model::Zeromq_metadata_settings ret; ret.setEnabled(settings.period.has_value()); if (settings.period.has_value()) - ret.setPeriodMs(settings.period.value().count() / 1000); + ret.setPeriodMs(settings.period.value().count()); ret.setSocketAddress(settings.address); return ret; } @@ -947,6 +947,7 @@ IndexingSettings Convert(const org::openapitools::server::model::Indexing_settin ret.Tolerance(input.getTolerance()); ret.IndexingThreads(input.getThreadCount()); ret.UnitCellDistTolerance(input.getUnitCellDistTolerance()); + ret.ViableCellMinSpots(input.getViableCellMinSpots()); ret.IndexIceRings(input.isIndexIceRings()); ret.RotationIndexing(input.isRotationIndexing()); ret.RotationIndexingAngularStride_deg(input.getRotationIndexingAngularStrideDeg()); @@ -964,6 +965,7 @@ org::openapitools::server::model::Indexing_settings Convert(const IndexingSettin ret.setTolerance(input.GetTolerance()); ret.setThreadCount(input.GetIndexingThreads()); ret.setUnitCellDistTolerance(input.GetUnitCellDistTolerance()); + ret.setViableCellMinSpots(input.GetViableCellMinSpots()); ret.setRotationIndexing(input.GetRotationIndexing()); ret.setRotationIndexingAngularStrideDeg(input.GetRotationIndexingAngularStride_deg()); ret.setRotationIndexingMinAngularRangeDeg(input.GetRotationIndexingMinAngularRange_deg()); -- 2.52.0 From f420bdd541262a0cc6d0e063557a1f36c0fae331 Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:45:57 +0200 Subject: [PATCH 58/68] CheckPath: One more fix --- common/CheckPath.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/CheckPath.h b/common/CheckPath.h index cce47366..9c9d4ffb 100644 --- a/common/CheckPath.h +++ b/common/CheckPath.h @@ -12,7 +12,7 @@ inline void CheckPath(const std::string &s) { // (in practice with an added suffix, .e.g. _master.h5 or .tiff) // It avoids paths going outside of a given directory - if (!s.empty() && (s.front() == '/' || s.back() != '/')) + if (!s.empty() && (s.front() == '/' || s.back() == '/')) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Path cannot start with slash"); if (s.size() >= 3 && s.substr(0,3) == "../") -- 2.52.0 From a5e790c337b5b2171fc055672428182b98e8770a Mon Sep 17 00:00:00 2001 From: leonarski_f Date: Thu, 16 Apr 2026 08:46:20 +0200 Subject: [PATCH 59/68] AssignSpotsToRings: use max spots defined in the code already --- image_analysis/geom_refinement/AssignSpotsToRings.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/image_analysis/geom_refinement/AssignSpotsToRings.cpp b/image_analysis/geom_refinement/AssignSpotsToRings.cpp index 0020f87b..c50d0ef0 100644 --- a/image_analysis/geom_refinement/AssignSpotsToRings.cpp +++ b/image_analysis/geom_refinement/AssignSpotsToRings.cpp @@ -18,7 +18,7 @@ FindCircleCenterResult FindCircleCenter(const std::vector &v, int64_ std::vector vote(width * height, 0); // Limit to only first 250 spots, given the algorithm is N^3 - auto task_size = std::min(v.size(), 250); + auto task_size = std::min(v.size(), max_spots); for (int i = 0; i < task_size; i++) { for (int j = i+1; j < task_size; j++) { -- 2.52.0 From 8a9a5cc570c64fe7ea638715e2ee0efa8089d524 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 16 Apr 2026 08:57:17 +0200 Subject: [PATCH 60/68] CHANGELOG: Update changelog --- docs/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index a9a00e6d..fb4b5a73 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,12 @@ ### 1.0.0-rc.134 This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132. +* Multiple small bug fixes scattered across the whole code base. (detected with GPT-5.4) +* jfjoch_viewer: Improve image render performance + +### 1.0.0-rc.134 +This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132. + * jfjoch_broker: Add better locking for detector object - should help, when detector initialization takes too long * jfjoch_writer: Enable writing single, integrated HDF5 file with both data and metadata * XDS plugin: Add generation of Jungfraujoch plugin for XDS -- 2.52.0 From 46f90034f34224efe8dc383f804b6416d3af91d5 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Thu, 16 Apr 2026 08:58:07 +0200 Subject: [PATCH 61/68] VERSION: 1.0.0-rc.135 --- VERSION | 2 +- broker/gen/model/Azim_int_settings.cpp | 2 +- broker/gen/model/Azim_int_settings.h | 2 +- broker/gen/model/Broker_status.cpp | 2 +- broker/gen/model/Broker_status.h | 2 +- broker/gen/model/Calibration_statistics_inner.cpp | 2 +- broker/gen/model/Calibration_statistics_inner.h | 2 +- broker/gen/model/Dark_mask_settings.cpp | 2 +- broker/gen/model/Dark_mask_settings.h | 2 +- broker/gen/model/Dataset_settings.cpp | 2 +- broker/gen/model/Dataset_settings.h | 2 +- .../gen/model/Dataset_settings_xray_fluorescence_spectrum.cpp | 2 +- .../gen/model/Dataset_settings_xray_fluorescence_spectrum.h | 2 +- broker/gen/model/Detector.cpp | 2 +- broker/gen/model/Detector.h | 2 +- broker/gen/model/Detector_list.cpp | 2 +- broker/gen/model/Detector_list.h | 2 +- broker/gen/model/Detector_list_element.cpp | 2 +- broker/gen/model/Detector_list_element.h | 2 +- broker/gen/model/Detector_module.cpp | 2 +- broker/gen/model/Detector_module.h | 2 +- broker/gen/model/Detector_module_direction.cpp | 2 +- broker/gen/model/Detector_module_direction.h | 2 +- broker/gen/model/Detector_power_state.cpp | 2 +- broker/gen/model/Detector_power_state.h | 2 +- broker/gen/model/Detector_selection.cpp | 2 +- broker/gen/model/Detector_selection.h | 2 +- broker/gen/model/Detector_settings.cpp | 2 +- broker/gen/model/Detector_settings.h | 2 +- broker/gen/model/Detector_state.cpp | 2 +- broker/gen/model/Detector_state.h | 2 +- broker/gen/model/Detector_status.cpp | 2 +- broker/gen/model/Detector_status.h | 2 +- broker/gen/model/Detector_timing.cpp | 2 +- broker/gen/model/Detector_timing.h | 2 +- broker/gen/model/Detector_type.cpp | 2 +- broker/gen/model/Detector_type.h | 2 +- broker/gen/model/Error_message.cpp | 2 +- broker/gen/model/Error_message.h | 2 +- broker/gen/model/File_writer_format.cpp | 2 +- broker/gen/model/File_writer_format.h | 2 +- broker/gen/model/File_writer_settings.cpp | 2 +- broker/gen/model/File_writer_settings.h | 2 +- broker/gen/model/Fpga_status_inner.cpp | 2 +- broker/gen/model/Fpga_status_inner.h | 2 +- broker/gen/model/Geom_refinement_algorithm.cpp | 2 +- broker/gen/model/Geom_refinement_algorithm.h | 2 +- broker/gen/model/Grid_scan.cpp | 2 +- broker/gen/model/Grid_scan.h | 2 +- broker/gen/model/Helpers.cpp | 2 +- broker/gen/model/Helpers.h | 2 +- broker/gen/model/Image_buffer_status.cpp | 2 +- broker/gen/model/Image_buffer_status.h | 2 +- broker/gen/model/Image_format_settings.cpp | 2 +- broker/gen/model/Image_format_settings.h | 2 +- broker/gen/model/Image_pusher_status.cpp | 2 +- broker/gen/model/Image_pusher_status.h | 2 +- broker/gen/model/Image_pusher_type.cpp | 2 +- broker/gen/model/Image_pusher_type.h | 2 +- broker/gen/model/Indexing_algorithm.cpp | 2 +- broker/gen/model/Indexing_algorithm.h | 2 +- broker/gen/model/Indexing_settings.cpp | 2 +- broker/gen/model/Indexing_settings.h | 2 +- broker/gen/model/Instrument_metadata.cpp | 2 +- broker/gen/model/Instrument_metadata.h | 2 +- broker/gen/model/Jfjoch_settings.cpp | 2 +- broker/gen/model/Jfjoch_settings.h | 2 +- broker/gen/model/Jfjoch_statistics.cpp | 2 +- broker/gen/model/Jfjoch_statistics.h | 2 +- broker/gen/model/Measurement_statistics.cpp | 2 +- broker/gen/model/Measurement_statistics.h | 2 +- broker/gen/model/Pcie_devices_inner.cpp | 2 +- broker/gen/model/Pcie_devices_inner.h | 2 +- broker/gen/model/Pixel_mask_statistics.cpp | 2 +- broker/gen/model/Pixel_mask_statistics.h | 2 +- broker/gen/model/Plot.cpp | 2 +- broker/gen/model/Plot.h | 2 +- broker/gen/model/Plot_unit_x.cpp | 2 +- broker/gen/model/Plot_unit_x.h | 2 +- broker/gen/model/Plots.cpp | 2 +- broker/gen/model/Plots.h | 2 +- broker/gen/model/Roi_azim_list.cpp | 2 +- broker/gen/model/Roi_azim_list.h | 2 +- broker/gen/model/Roi_azimuthal.cpp | 2 +- broker/gen/model/Roi_azimuthal.h | 2 +- broker/gen/model/Roi_box.cpp | 2 +- broker/gen/model/Roi_box.h | 2 +- broker/gen/model/Roi_box_list.cpp | 2 +- broker/gen/model/Roi_box_list.h | 2 +- broker/gen/model/Roi_circle.cpp | 2 +- broker/gen/model/Roi_circle.h | 2 +- broker/gen/model/Roi_circle_list.cpp | 2 +- broker/gen/model/Roi_circle_list.h | 2 +- broker/gen/model/Roi_definitions.cpp | 2 +- broker/gen/model/Roi_definitions.h | 2 +- broker/gen/model/Rotation_axis.cpp | 2 +- broker/gen/model/Rotation_axis.h | 2 +- broker/gen/model/Scan_result.cpp | 2 +- broker/gen/model/Scan_result.h | 2 +- broker/gen/model/Scan_result_images_inner.cpp | 2 +- broker/gen/model/Scan_result_images_inner.h | 2 +- broker/gen/model/Spot_finding_settings.cpp | 2 +- broker/gen/model/Spot_finding_settings.h | 2 +- broker/gen/model/Standard_detector_geometry.cpp | 2 +- broker/gen/model/Standard_detector_geometry.h | 2 +- broker/gen/model/Tcp_settings.cpp | 2 +- broker/gen/model/Tcp_settings.h | 2 +- broker/gen/model/Unit_cell.cpp | 2 +- broker/gen/model/Unit_cell.h | 2 +- broker/gen/model/Zeromq_metadata_settings.cpp | 2 +- broker/gen/model/Zeromq_metadata_settings.h | 2 +- broker/gen/model/Zeromq_preview_settings.cpp | 2 +- broker/gen/model/Zeromq_preview_settings.h | 2 +- broker/gen/model/Zeromq_settings.cpp | 2 +- broker/gen/model/Zeromq_settings.h | 2 +- broker/jfjoch_api.yaml | 2 +- broker/redoc-static.html | 4 ++-- docs/conf.py | 2 +- docs/python_client/README.md | 4 ++-- fpga/hdl/action_config.v | 2 +- fpga/pcie_driver/dkms.conf | 2 +- fpga/pcie_driver/install_dkms.sh | 2 +- fpga/pcie_driver/jfjoch_drv.c | 2 +- fpga/pcie_driver/postinstall.sh | 2 +- fpga/pcie_driver/preuninstall.sh | 2 +- frontend/package.json | 2 +- frontend/src/openapi/core/OpenAPI.ts | 2 +- frontend/src/version.ts | 2 +- 128 files changed, 130 insertions(+), 130 deletions(-) diff --git a/VERSION b/VERSION index 08d2e9a4..443daead 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0-rc.134 +1.0.0-rc.135 diff --git a/broker/gen/model/Azim_int_settings.cpp b/broker/gen/model/Azim_int_settings.cpp index b862bcd8..e345665c 100644 --- a/broker/gen/model/Azim_int_settings.cpp +++ b/broker/gen/model/Azim_int_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Azim_int_settings.h b/broker/gen/model/Azim_int_settings.h index c9c250b9..9c4a60dd 100644 --- a/broker/gen/model/Azim_int_settings.h +++ b/broker/gen/model/Azim_int_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Broker_status.cpp b/broker/gen/model/Broker_status.cpp index c1ae6a09..180240b3 100644 --- a/broker/gen/model/Broker_status.cpp +++ b/broker/gen/model/Broker_status.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Broker_status.h b/broker/gen/model/Broker_status.h index 1167b99c..3698744a 100644 --- a/broker/gen/model/Broker_status.h +++ b/broker/gen/model/Broker_status.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Calibration_statistics_inner.cpp b/broker/gen/model/Calibration_statistics_inner.cpp index e0ce9100..1999cb55 100644 --- a/broker/gen/model/Calibration_statistics_inner.cpp +++ b/broker/gen/model/Calibration_statistics_inner.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Calibration_statistics_inner.h b/broker/gen/model/Calibration_statistics_inner.h index 8f24fc5e..d8c8ef82 100644 --- a/broker/gen/model/Calibration_statistics_inner.h +++ b/broker/gen/model/Calibration_statistics_inner.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dark_mask_settings.cpp b/broker/gen/model/Dark_mask_settings.cpp index 30391fd6..97a77f0c 100644 --- a/broker/gen/model/Dark_mask_settings.cpp +++ b/broker/gen/model/Dark_mask_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dark_mask_settings.h b/broker/gen/model/Dark_mask_settings.h index eab5967f..8008654b 100644 --- a/broker/gen/model/Dark_mask_settings.h +++ b/broker/gen/model/Dark_mask_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dataset_settings.cpp b/broker/gen/model/Dataset_settings.cpp index 83eedef8..e71f2506 100644 --- a/broker/gen/model/Dataset_settings.cpp +++ b/broker/gen/model/Dataset_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dataset_settings.h b/broker/gen/model/Dataset_settings.h index 84f1b587..71f63c7e 100644 --- a/broker/gen/model/Dataset_settings.h +++ b/broker/gen/model/Dataset_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.cpp b/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.cpp index 6b668951..9b6c4b73 100644 --- a/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.cpp +++ b/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.h b/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.h index 4901117b..c5988dc5 100644 --- a/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.h +++ b/broker/gen/model/Dataset_settings_xray_fluorescence_spectrum.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector.cpp b/broker/gen/model/Detector.cpp index 7f4ca467..2ee57b3c 100644 --- a/broker/gen/model/Detector.cpp +++ b/broker/gen/model/Detector.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector.h b/broker/gen/model/Detector.h index 7b09ff47..e1ecd827 100644 --- a/broker/gen/model/Detector.h +++ b/broker/gen/model/Detector.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_list.cpp b/broker/gen/model/Detector_list.cpp index c0cfb0e7..f6c5a6b1 100644 --- a/broker/gen/model/Detector_list.cpp +++ b/broker/gen/model/Detector_list.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_list.h b/broker/gen/model/Detector_list.h index e194e640..dadb1cc3 100644 --- a/broker/gen/model/Detector_list.h +++ b/broker/gen/model/Detector_list.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_list_element.cpp b/broker/gen/model/Detector_list_element.cpp index efa0722a..bdef5cc9 100644 --- a/broker/gen/model/Detector_list_element.cpp +++ b/broker/gen/model/Detector_list_element.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_list_element.h b/broker/gen/model/Detector_list_element.h index 39348fdb..918b3612 100644 --- a/broker/gen/model/Detector_list_element.h +++ b/broker/gen/model/Detector_list_element.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_module.cpp b/broker/gen/model/Detector_module.cpp index d1c53072..e29ace8f 100644 --- a/broker/gen/model/Detector_module.cpp +++ b/broker/gen/model/Detector_module.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_module.h b/broker/gen/model/Detector_module.h index 0309765f..3228554f 100644 --- a/broker/gen/model/Detector_module.h +++ b/broker/gen/model/Detector_module.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_module_direction.cpp b/broker/gen/model/Detector_module_direction.cpp index 6b646c93..851f3c10 100644 --- a/broker/gen/model/Detector_module_direction.cpp +++ b/broker/gen/model/Detector_module_direction.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_module_direction.h b/broker/gen/model/Detector_module_direction.h index b8ab2579..6d346d62 100644 --- a/broker/gen/model/Detector_module_direction.h +++ b/broker/gen/model/Detector_module_direction.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_power_state.cpp b/broker/gen/model/Detector_power_state.cpp index 3671263d..927e927e 100644 --- a/broker/gen/model/Detector_power_state.cpp +++ b/broker/gen/model/Detector_power_state.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_power_state.h b/broker/gen/model/Detector_power_state.h index 60568448..4abef3db 100644 --- a/broker/gen/model/Detector_power_state.h +++ b/broker/gen/model/Detector_power_state.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_selection.cpp b/broker/gen/model/Detector_selection.cpp index 3248c6a2..48f5a0ed 100644 --- a/broker/gen/model/Detector_selection.cpp +++ b/broker/gen/model/Detector_selection.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_selection.h b/broker/gen/model/Detector_selection.h index 09d081b8..66336900 100644 --- a/broker/gen/model/Detector_selection.h +++ b/broker/gen/model/Detector_selection.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_settings.cpp b/broker/gen/model/Detector_settings.cpp index ab1fc736..056b4d52 100644 --- a/broker/gen/model/Detector_settings.cpp +++ b/broker/gen/model/Detector_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_settings.h b/broker/gen/model/Detector_settings.h index a9d6aa51..546b5eff 100644 --- a/broker/gen/model/Detector_settings.h +++ b/broker/gen/model/Detector_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_state.cpp b/broker/gen/model/Detector_state.cpp index d09c7f69..781ba8a4 100644 --- a/broker/gen/model/Detector_state.cpp +++ b/broker/gen/model/Detector_state.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_state.h b/broker/gen/model/Detector_state.h index f1276556..b6ca53c3 100644 --- a/broker/gen/model/Detector_state.h +++ b/broker/gen/model/Detector_state.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_status.cpp b/broker/gen/model/Detector_status.cpp index 7b1da19b..a02d2f99 100644 --- a/broker/gen/model/Detector_status.cpp +++ b/broker/gen/model/Detector_status.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_status.h b/broker/gen/model/Detector_status.h index 15b76a26..add93949 100644 --- a/broker/gen/model/Detector_status.h +++ b/broker/gen/model/Detector_status.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_timing.cpp b/broker/gen/model/Detector_timing.cpp index 29a7118f..51799aeb 100644 --- a/broker/gen/model/Detector_timing.cpp +++ b/broker/gen/model/Detector_timing.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_timing.h b/broker/gen/model/Detector_timing.h index 2149fc2c..7aef6117 100644 --- a/broker/gen/model/Detector_timing.h +++ b/broker/gen/model/Detector_timing.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_type.cpp b/broker/gen/model/Detector_type.cpp index 1e74ae13..996526f0 100644 --- a/broker/gen/model/Detector_type.cpp +++ b/broker/gen/model/Detector_type.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Detector_type.h b/broker/gen/model/Detector_type.h index ac6087de..76f05e97 100644 --- a/broker/gen/model/Detector_type.h +++ b/broker/gen/model/Detector_type.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Error_message.cpp b/broker/gen/model/Error_message.cpp index 0211281c..b9a919ab 100644 --- a/broker/gen/model/Error_message.cpp +++ b/broker/gen/model/Error_message.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Error_message.h b/broker/gen/model/Error_message.h index f41ad0e8..d59c91dc 100644 --- a/broker/gen/model/Error_message.h +++ b/broker/gen/model/Error_message.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/File_writer_format.cpp b/broker/gen/model/File_writer_format.cpp index 438e9399..4df33474 100644 --- a/broker/gen/model/File_writer_format.cpp +++ b/broker/gen/model/File_writer_format.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/File_writer_format.h b/broker/gen/model/File_writer_format.h index dfd1b180..7c37e6ae 100644 --- a/broker/gen/model/File_writer_format.h +++ b/broker/gen/model/File_writer_format.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/File_writer_settings.cpp b/broker/gen/model/File_writer_settings.cpp index 044556d0..d325c5d6 100644 --- a/broker/gen/model/File_writer_settings.cpp +++ b/broker/gen/model/File_writer_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/File_writer_settings.h b/broker/gen/model/File_writer_settings.h index 1ffb28f9..a4e34887 100644 --- a/broker/gen/model/File_writer_settings.h +++ b/broker/gen/model/File_writer_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Fpga_status_inner.cpp b/broker/gen/model/Fpga_status_inner.cpp index 905a0861..7391dcee 100644 --- a/broker/gen/model/Fpga_status_inner.cpp +++ b/broker/gen/model/Fpga_status_inner.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Fpga_status_inner.h b/broker/gen/model/Fpga_status_inner.h index 2212c6ac..35818ae3 100644 --- a/broker/gen/model/Fpga_status_inner.h +++ b/broker/gen/model/Fpga_status_inner.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Geom_refinement_algorithm.cpp b/broker/gen/model/Geom_refinement_algorithm.cpp index 637a5903..3dd1d2e8 100644 --- a/broker/gen/model/Geom_refinement_algorithm.cpp +++ b/broker/gen/model/Geom_refinement_algorithm.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Geom_refinement_algorithm.h b/broker/gen/model/Geom_refinement_algorithm.h index 9e9c0def..1ebd67d1 100644 --- a/broker/gen/model/Geom_refinement_algorithm.h +++ b/broker/gen/model/Geom_refinement_algorithm.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Grid_scan.cpp b/broker/gen/model/Grid_scan.cpp index f4f25a99..34d587a8 100644 --- a/broker/gen/model/Grid_scan.cpp +++ b/broker/gen/model/Grid_scan.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Grid_scan.h b/broker/gen/model/Grid_scan.h index 2cc506cc..dba8f8d7 100644 --- a/broker/gen/model/Grid_scan.h +++ b/broker/gen/model/Grid_scan.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Helpers.cpp b/broker/gen/model/Helpers.cpp index 5bdfeb2a..c3eb1c46 100644 --- a/broker/gen/model/Helpers.cpp +++ b/broker/gen/model/Helpers.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Helpers.h b/broker/gen/model/Helpers.h index 6442d078..a9113f77 100644 --- a/broker/gen/model/Helpers.h +++ b/broker/gen/model/Helpers.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_buffer_status.cpp b/broker/gen/model/Image_buffer_status.cpp index 82110c7f..0cad3afc 100644 --- a/broker/gen/model/Image_buffer_status.cpp +++ b/broker/gen/model/Image_buffer_status.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_buffer_status.h b/broker/gen/model/Image_buffer_status.h index ef5adbbf..26b736ec 100644 --- a/broker/gen/model/Image_buffer_status.h +++ b/broker/gen/model/Image_buffer_status.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_format_settings.cpp b/broker/gen/model/Image_format_settings.cpp index 7c8022be..24394f44 100644 --- a/broker/gen/model/Image_format_settings.cpp +++ b/broker/gen/model/Image_format_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_format_settings.h b/broker/gen/model/Image_format_settings.h index 7da23f0f..12693965 100644 --- a/broker/gen/model/Image_format_settings.h +++ b/broker/gen/model/Image_format_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_pusher_status.cpp b/broker/gen/model/Image_pusher_status.cpp index 70a918fb..db07450c 100644 --- a/broker/gen/model/Image_pusher_status.cpp +++ b/broker/gen/model/Image_pusher_status.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_pusher_status.h b/broker/gen/model/Image_pusher_status.h index e63e3e63..5396f6a9 100644 --- a/broker/gen/model/Image_pusher_status.h +++ b/broker/gen/model/Image_pusher_status.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_pusher_type.cpp b/broker/gen/model/Image_pusher_type.cpp index f47a9042..08ee1681 100644 --- a/broker/gen/model/Image_pusher_type.cpp +++ b/broker/gen/model/Image_pusher_type.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Image_pusher_type.h b/broker/gen/model/Image_pusher_type.h index a153a188..6c31bfa9 100644 --- a/broker/gen/model/Image_pusher_type.h +++ b/broker/gen/model/Image_pusher_type.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Indexing_algorithm.cpp b/broker/gen/model/Indexing_algorithm.cpp index d8478cb2..12dbcb2b 100644 --- a/broker/gen/model/Indexing_algorithm.cpp +++ b/broker/gen/model/Indexing_algorithm.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Indexing_algorithm.h b/broker/gen/model/Indexing_algorithm.h index 25e6e2fa..b74b20e3 100644 --- a/broker/gen/model/Indexing_algorithm.h +++ b/broker/gen/model/Indexing_algorithm.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Indexing_settings.cpp b/broker/gen/model/Indexing_settings.cpp index 426eaa05..8de04fb1 100644 --- a/broker/gen/model/Indexing_settings.cpp +++ b/broker/gen/model/Indexing_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Indexing_settings.h b/broker/gen/model/Indexing_settings.h index 4c87e0a4..41673aaa 100644 --- a/broker/gen/model/Indexing_settings.h +++ b/broker/gen/model/Indexing_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Instrument_metadata.cpp b/broker/gen/model/Instrument_metadata.cpp index d64e0489..6dd973d5 100644 --- a/broker/gen/model/Instrument_metadata.cpp +++ b/broker/gen/model/Instrument_metadata.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Instrument_metadata.h b/broker/gen/model/Instrument_metadata.h index 11959c92..425b5504 100644 --- a/broker/gen/model/Instrument_metadata.h +++ b/broker/gen/model/Instrument_metadata.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Jfjoch_settings.cpp b/broker/gen/model/Jfjoch_settings.cpp index c94525ef..ec110756 100644 --- a/broker/gen/model/Jfjoch_settings.cpp +++ b/broker/gen/model/Jfjoch_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Jfjoch_settings.h b/broker/gen/model/Jfjoch_settings.h index 88835b0f..c2cdc361 100644 --- a/broker/gen/model/Jfjoch_settings.h +++ b/broker/gen/model/Jfjoch_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Jfjoch_statistics.cpp b/broker/gen/model/Jfjoch_statistics.cpp index 6fb7bb62..81663a41 100644 --- a/broker/gen/model/Jfjoch_statistics.cpp +++ b/broker/gen/model/Jfjoch_statistics.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Jfjoch_statistics.h b/broker/gen/model/Jfjoch_statistics.h index 69cde0cf..c677af9e 100644 --- a/broker/gen/model/Jfjoch_statistics.h +++ b/broker/gen/model/Jfjoch_statistics.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Measurement_statistics.cpp b/broker/gen/model/Measurement_statistics.cpp index 5a083c0c..e56405e7 100644 --- a/broker/gen/model/Measurement_statistics.cpp +++ b/broker/gen/model/Measurement_statistics.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Measurement_statistics.h b/broker/gen/model/Measurement_statistics.h index febd8834..8791731a 100644 --- a/broker/gen/model/Measurement_statistics.h +++ b/broker/gen/model/Measurement_statistics.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Pcie_devices_inner.cpp b/broker/gen/model/Pcie_devices_inner.cpp index 0a384f19..a99dd91e 100644 --- a/broker/gen/model/Pcie_devices_inner.cpp +++ b/broker/gen/model/Pcie_devices_inner.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Pcie_devices_inner.h b/broker/gen/model/Pcie_devices_inner.h index d00f853c..c918c416 100644 --- a/broker/gen/model/Pcie_devices_inner.h +++ b/broker/gen/model/Pcie_devices_inner.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Pixel_mask_statistics.cpp b/broker/gen/model/Pixel_mask_statistics.cpp index 85ea70d4..50ad2f0c 100644 --- a/broker/gen/model/Pixel_mask_statistics.cpp +++ b/broker/gen/model/Pixel_mask_statistics.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Pixel_mask_statistics.h b/broker/gen/model/Pixel_mask_statistics.h index 350729a7..d9c5e752 100644 --- a/broker/gen/model/Pixel_mask_statistics.h +++ b/broker/gen/model/Pixel_mask_statistics.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plot.cpp b/broker/gen/model/Plot.cpp index 31d54546..c6facb37 100644 --- a/broker/gen/model/Plot.cpp +++ b/broker/gen/model/Plot.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plot.h b/broker/gen/model/Plot.h index 38113e3e..605593f7 100644 --- a/broker/gen/model/Plot.h +++ b/broker/gen/model/Plot.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plot_unit_x.cpp b/broker/gen/model/Plot_unit_x.cpp index 9c48e6b7..224b36cb 100644 --- a/broker/gen/model/Plot_unit_x.cpp +++ b/broker/gen/model/Plot_unit_x.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plot_unit_x.h b/broker/gen/model/Plot_unit_x.h index 2fb35f1c..d335732e 100644 --- a/broker/gen/model/Plot_unit_x.h +++ b/broker/gen/model/Plot_unit_x.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plots.cpp b/broker/gen/model/Plots.cpp index 0be2ddd6..8e6bc384 100644 --- a/broker/gen/model/Plots.cpp +++ b/broker/gen/model/Plots.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Plots.h b/broker/gen/model/Plots.h index f654a58e..bf312a40 100644 --- a/broker/gen/model/Plots.h +++ b/broker/gen/model/Plots.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_azim_list.cpp b/broker/gen/model/Roi_azim_list.cpp index 5dcf611a..c94b9eed 100644 --- a/broker/gen/model/Roi_azim_list.cpp +++ b/broker/gen/model/Roi_azim_list.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_azim_list.h b/broker/gen/model/Roi_azim_list.h index 7bbfd44c..6b25d43f 100644 --- a/broker/gen/model/Roi_azim_list.h +++ b/broker/gen/model/Roi_azim_list.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_azimuthal.cpp b/broker/gen/model/Roi_azimuthal.cpp index 41d2d82d..ec421447 100644 --- a/broker/gen/model/Roi_azimuthal.cpp +++ b/broker/gen/model/Roi_azimuthal.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_azimuthal.h b/broker/gen/model/Roi_azimuthal.h index 09283bf1..6abbcc54 100644 --- a/broker/gen/model/Roi_azimuthal.h +++ b/broker/gen/model/Roi_azimuthal.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_box.cpp b/broker/gen/model/Roi_box.cpp index 748c613f..31dd988e 100644 --- a/broker/gen/model/Roi_box.cpp +++ b/broker/gen/model/Roi_box.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_box.h b/broker/gen/model/Roi_box.h index e386ba70..fe192580 100644 --- a/broker/gen/model/Roi_box.h +++ b/broker/gen/model/Roi_box.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_box_list.cpp b/broker/gen/model/Roi_box_list.cpp index b04a6eba..d2601fdd 100644 --- a/broker/gen/model/Roi_box_list.cpp +++ b/broker/gen/model/Roi_box_list.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_box_list.h b/broker/gen/model/Roi_box_list.h index 661287f5..88c3f515 100644 --- a/broker/gen/model/Roi_box_list.h +++ b/broker/gen/model/Roi_box_list.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_circle.cpp b/broker/gen/model/Roi_circle.cpp index f75a7deb..1981fc38 100644 --- a/broker/gen/model/Roi_circle.cpp +++ b/broker/gen/model/Roi_circle.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_circle.h b/broker/gen/model/Roi_circle.h index 3c31cac5..b22bd93c 100644 --- a/broker/gen/model/Roi_circle.h +++ b/broker/gen/model/Roi_circle.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_circle_list.cpp b/broker/gen/model/Roi_circle_list.cpp index 975455c1..79e05ec2 100644 --- a/broker/gen/model/Roi_circle_list.cpp +++ b/broker/gen/model/Roi_circle_list.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_circle_list.h b/broker/gen/model/Roi_circle_list.h index d32bc680..16aa1c11 100644 --- a/broker/gen/model/Roi_circle_list.h +++ b/broker/gen/model/Roi_circle_list.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_definitions.cpp b/broker/gen/model/Roi_definitions.cpp index 2ee3ff8a..6ad8119f 100644 --- a/broker/gen/model/Roi_definitions.cpp +++ b/broker/gen/model/Roi_definitions.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Roi_definitions.h b/broker/gen/model/Roi_definitions.h index dfb0b2c4..cb75c3a2 100644 --- a/broker/gen/model/Roi_definitions.h +++ b/broker/gen/model/Roi_definitions.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Rotation_axis.cpp b/broker/gen/model/Rotation_axis.cpp index 75486e38..a61d2855 100644 --- a/broker/gen/model/Rotation_axis.cpp +++ b/broker/gen/model/Rotation_axis.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Rotation_axis.h b/broker/gen/model/Rotation_axis.h index e95887bb..4c7272d3 100644 --- a/broker/gen/model/Rotation_axis.h +++ b/broker/gen/model/Rotation_axis.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Scan_result.cpp b/broker/gen/model/Scan_result.cpp index 0a7cde26..73ab1c73 100644 --- a/broker/gen/model/Scan_result.cpp +++ b/broker/gen/model/Scan_result.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Scan_result.h b/broker/gen/model/Scan_result.h index f118a1b7..29323e4d 100644 --- a/broker/gen/model/Scan_result.h +++ b/broker/gen/model/Scan_result.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Scan_result_images_inner.cpp b/broker/gen/model/Scan_result_images_inner.cpp index 8ed60d03..8c22cd48 100644 --- a/broker/gen/model/Scan_result_images_inner.cpp +++ b/broker/gen/model/Scan_result_images_inner.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Scan_result_images_inner.h b/broker/gen/model/Scan_result_images_inner.h index d74c2d2c..7868f483 100644 --- a/broker/gen/model/Scan_result_images_inner.h +++ b/broker/gen/model/Scan_result_images_inner.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Spot_finding_settings.cpp b/broker/gen/model/Spot_finding_settings.cpp index 6b811353..9a34f800 100644 --- a/broker/gen/model/Spot_finding_settings.cpp +++ b/broker/gen/model/Spot_finding_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Spot_finding_settings.h b/broker/gen/model/Spot_finding_settings.h index c7e78605..c35e6ecf 100644 --- a/broker/gen/model/Spot_finding_settings.h +++ b/broker/gen/model/Spot_finding_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Standard_detector_geometry.cpp b/broker/gen/model/Standard_detector_geometry.cpp index e7f1f535..10e3daf9 100644 --- a/broker/gen/model/Standard_detector_geometry.cpp +++ b/broker/gen/model/Standard_detector_geometry.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Standard_detector_geometry.h b/broker/gen/model/Standard_detector_geometry.h index d78a9e29..70f93a32 100644 --- a/broker/gen/model/Standard_detector_geometry.h +++ b/broker/gen/model/Standard_detector_geometry.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Tcp_settings.cpp b/broker/gen/model/Tcp_settings.cpp index 81818a20..b17ec8d7 100644 --- a/broker/gen/model/Tcp_settings.cpp +++ b/broker/gen/model/Tcp_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Tcp_settings.h b/broker/gen/model/Tcp_settings.h index 4ecc840a..3c460c8a 100644 --- a/broker/gen/model/Tcp_settings.h +++ b/broker/gen/model/Tcp_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Unit_cell.cpp b/broker/gen/model/Unit_cell.cpp index 8aafa614..44ce2cd7 100644 --- a/broker/gen/model/Unit_cell.cpp +++ b/broker/gen/model/Unit_cell.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Unit_cell.h b/broker/gen/model/Unit_cell.h index 859ac52e..4187a914 100644 --- a/broker/gen/model/Unit_cell.h +++ b/broker/gen/model/Unit_cell.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_metadata_settings.cpp b/broker/gen/model/Zeromq_metadata_settings.cpp index 547f83cc..050e038f 100644 --- a/broker/gen/model/Zeromq_metadata_settings.cpp +++ b/broker/gen/model/Zeromq_metadata_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_metadata_settings.h b/broker/gen/model/Zeromq_metadata_settings.h index 5739a6aa..aceee803 100644 --- a/broker/gen/model/Zeromq_metadata_settings.h +++ b/broker/gen/model/Zeromq_metadata_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_preview_settings.cpp b/broker/gen/model/Zeromq_preview_settings.cpp index 8741d3fa..e6128d2e 100644 --- a/broker/gen/model/Zeromq_preview_settings.cpp +++ b/broker/gen/model/Zeromq_preview_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_preview_settings.h b/broker/gen/model/Zeromq_preview_settings.h index 283c9e28..485df88a 100644 --- a/broker/gen/model/Zeromq_preview_settings.h +++ b/broker/gen/model/Zeromq_preview_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_settings.cpp b/broker/gen/model/Zeromq_settings.cpp index 40c36a84..4710c102 100644 --- a/broker/gen/model/Zeromq_settings.cpp +++ b/broker/gen/model/Zeromq_settings.cpp @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Zeromq_settings.h b/broker/gen/model/Zeromq_settings.h index 3827701d..b9eb3e2a 100644 --- a/broker/gen/model/Zeromq_settings.h +++ b/broker/gen/model/Zeromq_settings.h @@ -2,7 +2,7 @@ * Jungfraujoch * API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates. # License Clarification While this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply** when this file is used solely to generate OpenAPI clients or when implementing applications that interact with the API. Generated client code and applications using this API definition are not subject to the GPL license requirements and may be distributed under terms of your choosing. This exception is similar in spirit to the Linux Kernel's approach to userspace API headers and the GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that user programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not derivative works of the kernel and are not subject to the terms of the GPL. This exception is intended to allow wider use of this API specification without imposing GPL requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. * -* The version of the OpenAPI document: 1.0.0-rc.134 +* The version of the OpenAPI document: 1.0.0-rc.135 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/jfjoch_api.yaml b/broker/jfjoch_api.yaml index ba55eff2..50c2d28c 100644 --- a/broker/jfjoch_api.yaml +++ b/broker/jfjoch_api.yaml @@ -22,7 +22,7 @@ info: requirements on applications that merely interact with the API, regardless of whether they communicate through network calls or other mechanisms. - version: 1.0.0-rc.134 + version: 1.0.0-rc.135 contact: name: Filip Leonarski (Paul Scherrer Institute) email: filip.leonarski@psi.ch diff --git a/broker/redoc-static.html b/broker/redoc-static.html index 925b657a..9dfe8c63 100644 --- a/broker/redoc-static.html +++ b/broker/redoc-static.html @@ -399,7 +399,7 @@ This format doesn't transmit information about X-axis, only values, so it i 55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864 -231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688, -104.0616 -231.873,-231.248 z - " fill="currentColor">

Jungfraujoch (1.0.0-rc.134)

Download OpenAPI specification:

Filip Leonarski (Paul Scherrer Institute): filip.leonarski@psi.ch License: GPL-3.0

API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). + " fill="currentColor">

Jungfraujoch (1.0.0-rc.135)

Download OpenAPI specification:

Filip Leonarski (Paul Scherrer Institute): filip.leonarski@psi.ch License: GPL-3.0

API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.

License Clarification

While this API definition is licensed under GPL-3.0, the GPL copyleft provisions do not apply @@ -917,7 +917,7 @@ then image might be replaced in the buffer between calling /images and /image.cb