diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 330bbccf..1ee42cd0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -114,11 +114,11 @@ test:x86:gcc: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j48 jfjoch_test HDF5DatasetWriteTest + - make -j48 jfjoch_test jfjoch_hdf5_test - cd tests - ./jfjoch_test -r junit -o report.xml - cd ../tools - - ./HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 + - ./jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 artifacts: expire_in: 1 week reports: @@ -142,9 +142,9 @@ test:x86:crystfel: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 HDF5DatasetWriteTest + - make -j8 jfjoch_hdf5_test - cd ../tests/crystfel - - HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 10 + - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 10 - indexamajig -i writing_test.lst -g jf4m.geom -o x.stream --indexing=xgandalf test:x86:xds_durin: @@ -165,9 +165,9 @@ test:x86:xds_durin: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 HDF5DatasetWriteTest + - make -j8 jfjoch_hdf5_test - cd ../tests/xds_durin - - HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25 + - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25 - xds_par |grep -a1 ISa |tail -n1 test:x86:xds_neggia: @@ -188,9 +188,9 @@ test:x86:xds_neggia: - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 HDF5DatasetWriteTest + - make -j8 jfjoch_hdf5_test - cd ../tests/xds_neggia - - HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25 + - ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25 - xds_par |grep -a1 ISa |tail -n1 test:x86:xia2.ssx: @@ -212,9 +212,9 @@ test:x86:xia2.ssx: - mkdir -p dials_test - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. - - make -j8 HDF5DatasetWriteTest + - make -j8 jfjoch_hdf5_test - cd ../dials_test - - ../build/tools/HDF5DatasetWriteTest ../tests/test_data/compression_benchmark.h5 100 + - ../build/tools/jfjoch_hdf5_test ../tests/test_data/compression_benchmark.h5 100 - source /usr/local/dials-v3-17-0/dials_env.sh - xia2.ssx image=writing_test_master.h5 space_group=P43212 unit_cell=78.551,78.551,36.914,90.000,90.000,90.000 diff --git a/VERSION b/VERSION index 07923b24..f7b1136a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.0-rc.25 +1.0.0-rc.26 diff --git a/acquisition_device/AcquisitionCounters.cpp b/acquisition_device/AcquisitionCounters.cpp index 4e2f12ed..4274b8ee 100644 --- a/acquisition_device/AcquisitionCounters.cpp +++ b/acquisition_device/AcquisitionCounters.cpp @@ -11,7 +11,7 @@ AcquisitionCounters::AcquisitionCounters() total_packets(0), expected_frames(0), acquisition_finished(false) {} void AcquisitionCounters::Reset(const DiffractionExperiment &experiment, uint16_t data_stream) { - std::unique_lock ul(m); + std::unique_lock ul(m); acquisition_finished = false; slowest_frame_number = 0; @@ -47,7 +47,7 @@ void AcquisitionCounters::Reset(const DiffractionExperiment &experiment, uint16_ } void AcquisitionCounters::UpdateCounters(const Completion *c) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (c->module_number >= nmodules) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, @@ -83,7 +83,7 @@ void AcquisitionCounters::UpdateCounters(const Completion *c) { } void AcquisitionCounters::SetAcquisitionFinished() { - std::unique_lock ul(m); + std::unique_lock ul(m); acquisition_finished = true; data_updated.notify_all(); } @@ -100,7 +100,7 @@ uint64_t AcquisitionCounters::GetBufferHandle(size_t frame, uint16_t module_numb } uint64_t AcquisitionCounters::GetBufferHandleAndClear(size_t frame, uint16_t module_number) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (frame >= expected_frames) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "GetBufferHandleAndClear Wrong frame number: " + std::to_string(frame)); @@ -114,7 +114,7 @@ uint64_t AcquisitionCounters::GetBufferHandleAndClear(size_t frame, uint16_t mod } uint64_t AcquisitionCounters::GetPedestalBufferHandle(size_t storage_cell, uint16_t module_number) const { - std::unique_lock ul(m); + std::unique_lock ul(m); if (storage_cell >= 16) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "GetBufferHandleAndClear Wrong frame number: " + std::to_string(storage_cell)); @@ -197,7 +197,7 @@ uint64_t AcquisitionCounters::GetTotalPackets() const { } uint64_t AcquisitionCounters::GetTotalPackets(uint16_t module_number) const { - std::unique_lock ul(m); + std::unique_lock ul(m); if (module_number >= nmodules) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, diff --git a/broker/JFJochBrokerHttp.cpp b/broker/JFJochBrokerHttp.cpp index 3a24890f..012a583b 100644 --- a/broker/JFJochBrokerHttp.cpp +++ b/broker/JFJochBrokerHttp.cpp @@ -380,6 +380,18 @@ void JFJochBrokerHttp::plot_indexing_rate_get(const std::optional &binn GenericPlot(PlotType::IndexingRate, binning, compression, response); } +void JFJochBrokerHttp::plot_indexing_unit_cell_get(const std::optional &binning, + const std::optional &compression, + Pistache::Http::ResponseWriter &response) { + GenericPlot(PlotType::IndexingUnitCellLength, binning, compression, response); +} + +void JFJochBrokerHttp::plot_indexing_unit_cell_angle_get(const std::optional &binning, + const std::optional &compression, + Pistache::Http::ResponseWriter &response) { + GenericPlot(PlotType::IndexingUnitCellAngle, binning, compression, response); +} + void JFJochBrokerHttp::plot_receiver_delay_get(const std::optional &binning, const std::optional& compression, Pistache::Http::ResponseWriter &response) { @@ -542,6 +554,10 @@ void JFJochBrokerHttp::statistics_get(const std::optional &compression, Pi if (!zeromq_prev.address.empty()) statistics.setZeromqPreview(Convert(zeromq_prev)); + auto zeromq_metadata = state_machine.GetMetadataSocketSettings(); + if (!zeromq_metadata.address.empty()) + statistics.setZeromqMetadata(Convert(zeromq_metadata)); + nlohmann::json j = statistics; if (!compression.has_value() || compression.value()) response.setCompression(Pistache::Http::Header::Encoding::Deflate); @@ -560,4 +576,13 @@ void JFJochBrokerHttp::config_zeromq_preview_put( response.send(Pistache::Http::Code::Ok); } +void JFJochBrokerHttp::config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) { + ProcessOutput(Convert(state_machine.GetMetadataSocketSettings()), response); +} +void JFJochBrokerHttp::config_zeromq_metadata_put( + const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings, + Pistache::Http::ResponseWriter &response) { + state_machine.SetMetadataSocketSettings(Convert(zeromqMetadataSettings)); + response.send(Pistache::Http::Code::Ok); +} diff --git a/broker/JFJochBrokerHttp.h b/broker/JFJochBrokerHttp.h index c9775ca3..79456458 100644 --- a/broker/JFJochBrokerHttp.h +++ b/broker/JFJochBrokerHttp.h @@ -170,6 +170,12 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi { config_zeromq_preview_put(const org::openapitools::server::model::Zeromq_preview_settings &zeromqPreviewSettings, Pistache::Http::ResponseWriter &response) override; + void config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) override; + + void config_zeromq_metadata_put( + const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings, + Pistache::Http::ResponseWriter &response) override; + void config_mask_get(Pistache::Http::ResponseWriter &response) override; void config_user_mask_get(Pistache::Http::ResponseWriter &response) override; @@ -177,6 +183,11 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi { void config_user_mask_put(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter &response) override; + void plot_indexing_unit_cell_get(const std::optional &binning, const std::optional &compression, + Pistache::Http::ResponseWriter &response) override; + + void plot_indexing_unit_cell_angle_get(const std::optional &binning, const std::optional &compression, + Pistache::Http::ResponseWriter &response) override; public: JFJochBrokerHttp(const DiffractionExperiment& experiment, std::shared_ptr &rtr); void AddDetectorSetup(const DetectorSetup &setup); diff --git a/broker/JFJochBrokerParser.cpp b/broker/JFJochBrokerParser.cpp index 8d0c1f6d..14f3bbda 100644 --- a/broker/JFJochBrokerParser.cpp +++ b/broker/JFJochBrokerParser.cpp @@ -175,4 +175,9 @@ void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settin service.PreviewSocket(input.getZeromqPreview().getSocketAddress()); service.PreviewSocketSettings(Convert(input.getZeromqPreview())); } + + if (input.zeromqMetadataIsSet()) { + service.MetadataSocket(input.getZeromqMetadata().getSocketAddress()); + service.MetadataSocketSettings(Convert(input.getZeromqMetadata())); + } } diff --git a/broker/JFJochServices.cpp b/broker/JFJochServices.cpp index 93792b53..01bfd169 100644 --- a/broker/JFJochServices.cpp +++ b/broker/JFJochServices.cpp @@ -205,11 +205,21 @@ std::vector JFJochServices::GetDeviceStatus() const { ZMQPreviewSettings JFJochServices::GetPreviewSocketSettings() { if (receiver) return receiver->GetPreviewSocketSettings(); - else - return {}; + return {}; +} + +ZMQMetadataSettings JFJochServices::GetMetadataSocketSettings() { + if (receiver) + return receiver->GetMetadataSocketSettings(); + return {}; } void JFJochServices::SetPreviewSocketSettings(const ZMQPreviewSettings &input) { if (receiver) receiver->PreviewSocketSettings(input); } + +void JFJochServices::SetMetadataSocketSettings(const ZMQMetadataSettings &input) { + if (receiver) + receiver->MetadataSocketSettings(input); +} diff --git a/broker/JFJochServices.h b/broker/JFJochServices.h index 6ee20f28..188fa41f 100644 --- a/broker/JFJochServices.h +++ b/broker/JFJochServices.h @@ -53,6 +53,9 @@ public: void SetPreviewSocketSettings(const ZMQPreviewSettings &input); ZMQPreviewSettings GetPreviewSocketSettings(); + + void SetMetadataSocketSettings(const ZMQMetadataSettings &input); + ZMQMetadataSettings GetMetadataSocketSettings(); }; diff --git a/broker/JFJochStateMachine.cpp b/broker/JFJochStateMachine.cpp index 969c0e2e..29c5ea7d 100644 --- a/broker/JFJochStateMachine.cpp +++ b/broker/JFJochStateMachine.cpp @@ -7,10 +7,12 @@ #include "../preview/JFJochTIFF.h" JFJochStateMachine::JFJochStateMachine(JFJochServices &in_services, Logger &in_logger) - : services(in_services), - logger(in_logger), - data_processing_settings(DiffractionExperiment::DefaultDataProcessingSettings()), - pixel_mask(experiment) { + : logger(in_logger), + services(in_services), + pixel_mask(experiment), + current_detector_setup(0), + data_processing_settings(DiffractionExperiment::DefaultDataProcessingSettings()), + pixel_mask_statistics({0,0,0}) { SupressTIFFErrors(); } @@ -203,7 +205,7 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock &ul } void JFJochStateMachine::Initialize() { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("Cannot initialize during measurement"); @@ -221,7 +223,7 @@ void JFJochStateMachine::Initialize() { } void JFJochStateMachine::Pedestal() { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("Must be idle to take pedestal"); @@ -245,13 +247,13 @@ void JFJochStateMachine::InitializeThread(std::unique_lock ul) { } void JFJochStateMachine::Trigger() { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state == JFJochState::Measuring) services.Trigger(); } void JFJochStateMachine::Start(const DatasetSettings& settings) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("Must be idle to start measurement"); @@ -297,11 +299,11 @@ void JFJochStateMachine::MeasurementThread() { try { auto tmp_output = services.Stop(); { - std::unique_lock ul(m); + std::unique_lock ul(m); state = JFJochState::Idle; } } catch (...) { - std::unique_lock ul(m); + std::unique_lock ul(m); state = JFJochState::Error; } c.notify_all(); @@ -309,7 +311,7 @@ void JFJochStateMachine::MeasurementThread() { void JFJochStateMachine::Cancel() { // This is inconsistency in naming - need to solve later - std::unique_lock ul(m); + std::unique_lock ul(m); if ((state == JFJochState::Pedestal) || (state == JFJochState::Measuring)) { services.Cancel(); cancel_sequence = true; @@ -317,12 +319,12 @@ void JFJochStateMachine::Cancel() { } void JFJochStateMachine::DebugOnly_SetState(JFJochState in_state) { - std::unique_lock ul(m); + std::unique_lock ul(m); state = in_state; } void JFJochStateMachine::Deactivate() { - std::unique_lock ul(m); + std::unique_lock ul(m); try { if (measurement.valid()) measurement.get(); @@ -371,27 +373,27 @@ std::optional JFJochStateMachine::GetMeasurementStatistic } std::vector JFJochStateMachine::GetCalibrationStatistics() const { - std::unique_lock ul(calibration_statistics_mutex); + std::unique_lock ul(calibration_statistics_mutex); return calibration_statistics; } void JFJochStateMachine::SetCalibrationStatistics(const std::vector &input) { - std::unique_lock ul(calibration_statistics_mutex); + std::unique_lock ul(calibration_statistics_mutex); calibration_statistics = input; } DetectorSettings JFJochStateMachine::GetDetectorSettings() const { - std::unique_lock ul(experiment_detector_settings_mutex); + std::unique_lock ul(experiment_detector_settings_mutex); return experiment.GetDetectorSettings(); } void JFJochStateMachine::ImportDetectorSettings(const DetectorSettings &input) { - std::unique_lock ul(experiment_detector_settings_mutex); + std::unique_lock ul(experiment_detector_settings_mutex); experiment.ImportDetectorSettings(input); } void JFJochStateMachine::LoadDetectorSettings(const DetectorSettings &settings) { - std::unique_lock ul(m); + std::unique_lock ul(m); switch (state) { case JFJochState::Inactive: case JFJochState::Error: @@ -425,14 +427,14 @@ MultiLinePlot JFJochStateMachine::GetPlots(const PlotRequest &request) const { } void JFJochStateMachine::SetSpotFindingSettings(const SpotFindingSettings &settings) { - std::unique_lock ul(data_processing_settings_mutex); + std::unique_lock ul(data_processing_settings_mutex); DiffractionExperiment::CheckDataProcessingSettings(settings); data_processing_settings = settings; services.SetSpotFindingSettings(settings); } SpotFindingSettings JFJochStateMachine::GetSpotFindingSettings() const { - std::unique_lock ul(data_processing_settings_mutex); + std::unique_lock ul(data_processing_settings_mutex); return data_processing_settings; } @@ -441,7 +443,7 @@ JFJochState JFJochStateMachine::GetState() const { } void JFJochStateMachine::AddDetectorSetup(const DetectorSetup &setup) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (detector_setup.empty()) { experiment.Detector(setup); @@ -453,7 +455,7 @@ void JFJochStateMachine::AddDetectorSetup(const DetectorSetup &setup) { } DetectorList JFJochStateMachine::GetDetectorsList() const { - std::unique_lock ul(m); + std::unique_lock ul(m); DetectorList ret; for (const auto & i : detector_setup) { @@ -477,7 +479,7 @@ std::optional JFJochStateMachine::GetDetectorStatus() const { } void JFJochStateMachine::SelectDetector(int64_t id) { - std::unique_lock ul(m); + std::unique_lock ul(m); if ((id < 0) || (id >= detector_setup.size())) throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Detector doesn't exist"); @@ -498,7 +500,7 @@ void JFJochStateMachine::SelectDetector(int64_t id) { } void JFJochStateMachine::SetRadialIntegrationSettings(const AzimuthalIntegrationSettings &settings) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("Cannot change radial integration settings during data collection"); @@ -507,7 +509,7 @@ void JFJochStateMachine::SetRadialIntegrationSettings(const AzimuthalIntegration } AzimuthalIntegrationSettings JFJochStateMachine::GetRadialIntegrationSettings() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return experiment.GetRadialIntegrationSettings(); } @@ -527,7 +529,7 @@ bool JFJochStateMachine::IsRunning() const { } JFJochState JFJochStateMachine::WaitTillMeasurementDone() { - std::unique_lock ul(m); + std::unique_lock ul(m); c.wait(ul, [&] { return !IsRunning(); }); @@ -535,7 +537,7 @@ JFJochState JFJochStateMachine::WaitTillMeasurementDone() { } JFJochState JFJochStateMachine::WaitTillMeasurementDone(std::chrono::milliseconds timeout) { - std::unique_lock ul(m); + std::unique_lock ul(m); c.wait_for(ul, timeout, [&] { return !IsRunning(); }); @@ -561,7 +563,7 @@ std::string JFJochStateMachine::GetPreviewTIFF(bool calibration) const { } std::string JFJochStateMachine::GetPedestalTIFF(size_t gain_level, size_t sc) const { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("Pedestal can be only retrieved in Idle state"); @@ -575,7 +577,7 @@ std::string JFJochStateMachine::GetPedestalTIFF(size_t gain_level, size_t sc) co } void JFJochStateMachine::LoadInternalGeneratorImage(const void *data, size_t size, uint64_t image_number) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("Can change internal generator image only when detector in Idle state"); @@ -595,7 +597,7 @@ void JFJochStateMachine::LoadInternalGeneratorImage(const void *data, size_t siz } void JFJochStateMachine::LoadInternalGeneratorImageTIFF(const std::string &s, uint64_t image_number) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("Can change internal generator image only when detector in Idle state"); @@ -610,7 +612,7 @@ void JFJochStateMachine::LoadInternalGeneratorImageTIFF(const std::string &s, ui } void JFJochStateMachine::SetBoxROI(const std::vector &input) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("ROI can be modified only when detector is not running"); @@ -619,7 +621,7 @@ void JFJochStateMachine::SetBoxROI(const std::vector &input) { } void JFJochStateMachine::SetCircleROI(const std::vector &input) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("ROI can be modified only when detector is not running"); @@ -628,12 +630,12 @@ void JFJochStateMachine::SetCircleROI(const std::vector &input) { } std::vector JFJochStateMachine::GetBoxROI() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return experiment.ROI().GetROIBox(); } std::vector JFJochStateMachine::GetCircleROI() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return experiment.ROI().GetROICircle(); } @@ -650,31 +652,31 @@ std::vector JFJochStateMachine::GetXFELEventCode() const { } std::string JFJochStateMachine::GetFullPixelMaskTIFF() const { - std::unique_lock ul(m); + std::unique_lock ul(m); std::vector v = pixel_mask.GetMask(experiment); return WriteTIFFToString(v.data(), experiment.GetXPixelsNum(), experiment.GetYPixelsNum(), sizeof(uint32_t), false); } std::string JFJochStateMachine::GetUserPixelMaskTIFF() const { - std::unique_lock ul(m); + std::unique_lock ul(m); std::vector v = pixel_mask.GetUserMask(experiment); return WriteTIFFToString(v.data(), experiment.GetXPixelsNum(), experiment.GetYPixelsNum(), sizeof(uint32_t), false); } std::vector JFJochStateMachine::GetFullPixelMask() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return pixel_mask.GetMask(experiment); } std::vector JFJochStateMachine::GetUserPixelMask() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return pixel_mask.GetUserMask(experiment); } void JFJochStateMachine::SetUserPixelMask(const std::vector &v) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (state != JFJochState::Idle) throw WrongDAQStateException ("User mask can be only modified in Idle state"); @@ -689,12 +691,12 @@ void JFJochStateMachine::SetUserPixelMask(const std::vector &v) { } InstrumentMetadata JFJochStateMachine::GetInstrumentMetadata() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return experiment.GetInstrumentMetadata(); } void JFJochStateMachine::LoadInstrumentMetadata(const InstrumentMetadata &settings) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("Cannot change instrument metadata during data collection"); @@ -703,15 +705,15 @@ void JFJochStateMachine::LoadInstrumentMetadata(const InstrumentMetadata &settin } ImageFormatSettings JFJochStateMachine::GetImageFormatSettings() const { - std::unique_lock ul(m); + std::unique_lock ul(m); return experiment.GetImageFormatSettings(); } void JFJochStateMachine::LoadImageFormatSettings(const ImageFormatSettings &settings) { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) - throw WrongDAQStateException ("Cannot change instrument metadata during data collection"); + throw WrongDAQStateException ("Cannot change image format settings during data collection"); experiment.ImportImageFormatSettings(settings); pixel_mask.Update(settings); @@ -719,7 +721,7 @@ void JFJochStateMachine::LoadImageFormatSettings(const ImageFormatSettings &sett } void JFJochStateMachine::RawImageFormatSettings() { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("Cannot change instrument metadata during data collection"); @@ -728,7 +730,7 @@ void JFJochStateMachine::RawImageFormatSettings() { } void JFJochStateMachine::ConvImageFormatSettings() { - std::unique_lock ul(m); + std::unique_lock ul(m); if (IsRunning()) throw WrongDAQStateException ("Cannot change instrument metadata during data collection"); @@ -747,3 +749,11 @@ void JFJochStateMachine::SetPreviewSocketSettings(const ZMQPreviewSettings &inpu ZMQPreviewSettings JFJochStateMachine::GetPreviewSocketSettings() { return services.GetPreviewSocketSettings(); } + +void JFJochStateMachine::SetMetadataSocketSettings(const ZMQMetadataSettings &input) { + services.SetMetadataSocketSettings(input); +} + +ZMQMetadataSettings JFJochStateMachine::GetMetadataSocketSettings() { + return services.GetMetadataSocketSettings(); +} diff --git a/broker/JFJochStateMachine.h b/broker/JFJochStateMachine.h index 50dfbfa4..806c52bd 100644 --- a/broker/JFJochStateMachine.h +++ b/broker/JFJochStateMachine.h @@ -193,6 +193,9 @@ public: void SetPreviewSocketSettings(const ZMQPreviewSettings &input); ZMQPreviewSettings GetPreviewSocketSettings(); + void SetMetadataSocketSettings(const ZMQMetadataSettings &input); + ZMQMetadataSettings GetMetadataSocketSettings(); + PixelMaskStatistics GetPixelMaskStatistics() const; }; diff --git a/broker/OpenAPIConvert.cpp b/broker/OpenAPIConvert.cpp index 4b5fd1b0..0c0e64ba 100644 --- a/broker/OpenAPIConvert.cpp +++ b/broker/OpenAPIConvert.cpp @@ -574,7 +574,16 @@ ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_previe ret.period = std::chrono::milliseconds(input.getPeriodMs()); else ret.period = {}; - ret.send_start_message = input.isSendStartMessage(); + ret.address = ""; + return ret; +} + +ZMQMetadataSettings Convert(const org::openapitools::server::model::Zeromq_metadata_settings &input) { + ZMQMetadataSettings ret; + if (input.isEnabled()) + ret.period = std::chrono::milliseconds(input.getPeriodMs()); + else + ret.period = {}; ret.address = ""; return ret; } @@ -585,7 +594,15 @@ org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPrevi if (settings.period.has_value()) ret.setPeriodMs(settings.period.value().count() / 1000); ret.setSocketAddress(settings.address); - ret.setSendStartMessage(settings.send_start_message); + return ret; +} + +org::openapitools::server::model::Zeromq_metadata_settings Convert(const ZMQMetadataSettings &settings) { + 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.setSocketAddress(settings.address); return ret; } diff --git a/broker/OpenAPIConvert.h b/broker/OpenAPIConvert.h index 519650f1..8edecd50 100644 --- a/broker/OpenAPIConvert.h +++ b/broker/OpenAPIConvert.h @@ -22,6 +22,8 @@ #include "gen/model/Dataset_settings.h" #include "gen/model/Fpga_status_inner.h" #include "gen/model/Pixel_mask_statistics.h" +#include "gen/model/Zeromq_preview_settings.h" +#include "gen/model/Zeromq_metadata_settings.h" #include "../common/DatasetSettings.h" #include "../common/ImageFormatSettings.h" @@ -30,7 +32,6 @@ #include "../common/DetectorSettings.h" #include "../jungfrau/JFCalibration.h" #include "../common/InstrumentMetadata.h" -#include "Zeromq_preview_settings.h" SpotFindingSettings Convert(const org::openapitools::server::model::Spot_finding_settings &input); org::openapitools::server::model::Spot_finding_settings Convert(const SpotFindingSettings &input); @@ -63,5 +64,7 @@ org::openapitools::server::model::Pixel_mask_statistics Convert(const PixelMaskS org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPreviewSettings& settings); ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_preview_settings& input); +org::openapitools::server::model::Zeromq_metadata_settings Convert(const ZMQMetadataSettings& settings); +ZMQMetadataSettings Convert(const org::openapitools::server::model::Zeromq_metadata_settings& input); #endif //JFJOCH_OPENAPICONVERT_H diff --git a/broker/gen/api/ApiBase.h b/broker/gen/api/ApiBase.h index c5afb78b..dcd4751d 100644 --- a/broker/gen/api/ApiBase.h +++ b/broker/gen/api/ApiBase.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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/api/DefaultApi.cpp b/broker/gen/api/DefaultApi.cpp index a90030ba..59b337d8 100644 --- a/broker/gen/api/DefaultApi.cpp +++ b/broker/gen/api/DefaultApi.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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -56,6 +56,8 @@ void DefaultApi::setupRoutes() { Routes::Put(*router, base + "/config/user_mask", Routes::bind(&DefaultApi::config_user_mask_put_handler, this)); Routes::Get(*router, base + "/config/user_mask.tiff", Routes::bind(&DefaultApi::config_user_mask_tiff_get_handler, this)); Routes::Put(*router, base + "/config/user_mask.tiff", Routes::bind(&DefaultApi::config_user_mask_tiff_put_handler, this)); + Routes::Get(*router, base + "/config/zeromq_metadata", Routes::bind(&DefaultApi::config_zeromq_metadata_get_handler, this)); + Routes::Put(*router, base + "/config/zeromq_metadata", Routes::bind(&DefaultApi::config_zeromq_metadata_put_handler, this)); Routes::Get(*router, base + "/config/zeromq_preview", Routes::bind(&DefaultApi::config_zeromq_preview_get_handler, this)); Routes::Put(*router, base + "/config/zeromq_preview", Routes::bind(&DefaultApi::config_zeromq_preview_put_handler, this)); Routes::Post(*router, base + "/deactivate", Routes::bind(&DefaultApi::deactivate_post_handler, this)); @@ -68,6 +70,8 @@ void DefaultApi::setupRoutes() { Routes::Get(*router, base + "/plot/error_pixel", Routes::bind(&DefaultApi::plot_error_pixel_get_handler, this)); Routes::Get(*router, base + "/plot/image_collection_efficiency", Routes::bind(&DefaultApi::plot_image_collection_efficiency_get_handler, this)); Routes::Get(*router, base + "/plot/indexing_rate", Routes::bind(&DefaultApi::plot_indexing_rate_get_handler, this)); + Routes::Get(*router, base + "/plot/indexing_unit_cell_angle", Routes::bind(&DefaultApi::plot_indexing_unit_cell_angle_get_handler, this)); + Routes::Get(*router, base + "/plot/indexing_unit_cell", Routes::bind(&DefaultApi::plot_indexing_unit_cell_get_handler, this)); Routes::Get(*router, base + "/plot/receiver_delay", Routes::bind(&DefaultApi::plot_receiver_delay_get_handler, this)); Routes::Get(*router, base + "/plot/receiver_free_send_buffers", Routes::bind(&DefaultApi::plot_receiver_free_send_buffers_get_handler, this)); Routes::Get(*router, base + "/plot/roi_max_count", Routes::bind(&DefaultApi::plot_roi_max_count_get_handler, this)); @@ -633,6 +637,56 @@ void DefaultApi::config_user_mask_tiff_put_handler(const Pistache::Rest::Request response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); } +} +void DefaultApi::config_zeromq_metadata_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) { + try { + + + try { + this->config_zeromq_metadata_get(response); + } catch (Pistache::Http::HttpError &e) { + response.send(static_cast(e.code()), e.what()); + return; + } catch (std::exception &e) { + this->handleOperationException(e, response); + return; + } + + } catch (std::exception &e) { + response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); + } + +} +void DefaultApi::config_zeromq_metadata_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) { + try { + + + // Getting the body param + + Zeromq_metadata_settings zeromqMetadataSettings; + + try { + nlohmann::json::parse(request.body()).get_to(zeromqMetadataSettings); + zeromqMetadataSettings.validate(); + } catch (std::exception &e) { + this->handleParsingException(e, response); + return; + } + + try { + this->config_zeromq_metadata_put(zeromqMetadataSettings, response); + } catch (Pistache::Http::HttpError &e) { + response.send(static_cast(e.code()), e.what()); + return; + } catch (std::exception &e) { + this->handleOperationException(e, response); + return; + } + + } catch (std::exception &e) { + response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); + } + } void DefaultApi::config_zeromq_preview_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) { try { @@ -955,6 +1009,80 @@ void DefaultApi::plot_indexing_rate_get_handler(const Pistache::Rest::Request &r response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); } +} +void DefaultApi::plot_indexing_unit_cell_angle_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) { + try { + + + // Getting the query params + auto binningQuery = request.query().get("binning"); + std::optional binning; + if(binningQuery.has_value()){ + int32_t valueQuery_instance; + if(fromStringValue(binningQuery.value(), valueQuery_instance)){ + binning = valueQuery_instance; + } + } + auto compressionQuery = request.query().get("compression"); + std::optional compression; + if(compressionQuery.has_value()){ + bool valueQuery_instance; + if(fromStringValue(compressionQuery.value(), valueQuery_instance)){ + compression = valueQuery_instance; + } + } + + try { + this->plot_indexing_unit_cell_angle_get(binning, compression, response); + } catch (Pistache::Http::HttpError &e) { + response.send(static_cast(e.code()), e.what()); + return; + } catch (std::exception &e) { + this->handleOperationException(e, response); + return; + } + + } catch (std::exception &e) { + response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); + } + +} +void DefaultApi::plot_indexing_unit_cell_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) { + try { + + + // Getting the query params + auto binningQuery = request.query().get("binning"); + std::optional binning; + if(binningQuery.has_value()){ + int32_t valueQuery_instance; + if(fromStringValue(binningQuery.value(), valueQuery_instance)){ + binning = valueQuery_instance; + } + } + auto compressionQuery = request.query().get("compression"); + std::optional compression; + if(compressionQuery.has_value()){ + bool valueQuery_instance; + if(fromStringValue(compressionQuery.value(), valueQuery_instance)){ + compression = valueQuery_instance; + } + } + + try { + this->plot_indexing_unit_cell_get(binning, compression, response); + } catch (Pistache::Http::HttpError &e) { + response.send(static_cast(e.code()), e.what()); + return; + } catch (std::exception &e) { + this->handleOperationException(e, response); + return; + } + + } catch (std::exception &e) { + response.send(Pistache::Http::Code::Internal_Server_Error, e.what()); + } + } void DefaultApi::plot_receiver_delay_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) { try { diff --git a/broker/gen/api/DefaultApi.h b/broker/gen/api/DefaultApi.h index a0fdf90f..feac3820 100644 --- a/broker/gen/api/DefaultApi.h +++ b/broker/gen/api/DefaultApi.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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -47,6 +47,7 @@ #include "Roi_box_list.h" #include "Roi_circle_list.h" #include "Spot_finding_settings.h" +#include "Zeromq_metadata_settings.h" #include "Zeromq_preview_settings.h" #include #include @@ -88,6 +89,8 @@ private: void config_user_mask_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void config_user_mask_tiff_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void config_user_mask_tiff_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); + void config_zeromq_metadata_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); + void config_zeromq_metadata_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void config_zeromq_preview_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void config_zeromq_preview_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void deactivate_post_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); @@ -100,6 +103,8 @@ private: void plot_error_pixel_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void plot_image_collection_efficiency_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void plot_indexing_rate_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); + void plot_indexing_unit_cell_angle_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); + void plot_indexing_unit_cell_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void plot_receiver_delay_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void plot_receiver_free_send_buffers_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); void plot_roi_max_count_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); @@ -324,6 +329,21 @@ private: /// virtual void config_user_mask_tiff_put(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter &response) = 0; /// + /// Get ZeroMQ metadata socket settings + /// + /// + /// + /// + virtual void config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) = 0; + /// + /// Set ZeroMQ metadata settings + /// + /// + /// Jungfraujoch can generate metadata message stream on ZeroMQ PUB socket. This stream covers all images. Here settings of the socket can be adjusted. While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request. + /// + /// (optional) + virtual void config_zeromq_metadata_put(const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings, Pistache::Http::ResponseWriter &response) = 0; + /// /// Get ZeroMQ preview settings /// /// @@ -418,6 +438,24 @@ private: /// Enable DEFLATE compression of output data. (optional, default to true) virtual void plot_indexing_rate_get(const std::optional &binning, const std::optional &compression, Pistache::Http::ResponseWriter &response) = 0; /// + /// Generate indexing unit cell angle plot + /// + /// + /// Crystal unit cell based on indexing results; binning is configurable + /// + /// Binning of frames for the plot (0 = default binning) (optional, default to 0) + /// Enable DEFLATE compression of output data. (optional, default to true) + virtual void plot_indexing_unit_cell_angle_get(const std::optional &binning, const std::optional &compression, Pistache::Http::ResponseWriter &response) = 0; + /// + /// Generate indexing unit cell length plots + /// + /// + /// Crystal unit cell based on indexing results; binning is configurable + /// + /// Binning of frames for the plot (0 = default binning) (optional, default to 0) + /// Enable DEFLATE compression of output data. (optional, default to true) + virtual void plot_indexing_unit_cell_get(const std::optional &binning, const std::optional &compression, Pistache::Http::ResponseWriter &response) = 0; + /// /// Generate receiver delay plot /// /// diff --git a/broker/gen/model/Azim_int_settings.cpp b/broker/gen/model/Azim_int_settings.cpp index 532881e7..f85b92c9 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 3f45f6da..3ea0e30e 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 2b6faeaf..7b2f3781 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 30876778..7b2fff30 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 b3cf60ed..da94f79c 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 1d1f35b4..aa102f2d 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 ed6e1cc6..05e3bd43 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 15432c30..896a9569 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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_unit_cell.cpp b/broker/gen/model/Dataset_settings_unit_cell.cpp index ebfb203d..85c85c7d 100644 --- a/broker/gen/model/Dataset_settings_unit_cell.cpp +++ b/broker/gen/model/Dataset_settings_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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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_unit_cell.h b/broker/gen/model/Dataset_settings_unit_cell.h index 89dad087..e025bba8 100644 --- a/broker/gen/model/Dataset_settings_unit_cell.h +++ b/broker/gen/model/Dataset_settings_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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 cf25d7fb..8a6c4230 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 49da5973..705714e8 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 d7b034a2..a9b34b97 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 4a83fd9c..f442267b 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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_detectors_inner.cpp b/broker/gen/model/Detector_list_detectors_inner.cpp index 07b4f003..83b10914 100644 --- a/broker/gen/model/Detector_list_detectors_inner.cpp +++ b/broker/gen/model/Detector_list_detectors_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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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_detectors_inner.h b/broker/gen/model/Detector_list_detectors_inner.h index a9b98a6d..01c66af2 100644 --- a/broker/gen/model/Detector_list_detectors_inner.h +++ b/broker/gen/model/Detector_list_detectors_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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 ce702603..f785ac59 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 98294fb0..239277ac 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 a2abc838..5976a5e0 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 48b1719e..56eaedea 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 7ffbb0a4..6b178467 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 89cfb71b..d9ce9365 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 6ebb322c..1768e1df 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 29bf76c5..2542e77f 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 b69bcd6a..40e5a2a6 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 4d5d54c8..d44384b8 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 5005639d..ab082d31 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 bbbc389e..25c597c7 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 4a9001ef..93e20aac 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 9d0f327d..bfc2ba30 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 76b1a2b5..5848ba4d 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 278e5fba..186e7bc4 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 7912497b..8b8a1707 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 739f11cc..bacd124e 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 3e19002a..eb636315 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 5e259289..350e10ce 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 be1a687e..8db0a391 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 2a760989..ce244ea8 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 97086987..e2207937 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 bc4e0b3e..9919e6b1 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 bae098be..86be7e53 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 2323f9b7..981e7bd7 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 8a881c44..929cfc86 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 1b17a9fa..2a0402a9 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 cae595e5..8fe6c37c 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 8a392b73..0b57c884 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 57d1779e..042b3017 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -35,6 +35,7 @@ Jfjoch_settings::Jfjoch_settings() m_Numa_policyIsSet = false; m_Frontend_directory = ""; m_Zeromq_previewIsSet = false; + m_Zeromq_metadataIsSet = false; } @@ -132,7 +133,7 @@ bool Jfjoch_settings::validate(std::stringstream& msg, const std::string& pathPr } } - + return success; } @@ -178,7 +179,10 @@ bool Jfjoch_settings::operator==(const Jfjoch_settings& rhs) const && - ((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview())) + ((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview())) && + + + ((!zeromqMetadataIsSet() && !rhs.zeromqMetadataIsSet()) || (zeromqMetadataIsSet() && rhs.zeromqMetadataIsSet() && getZeromqMetadata() == rhs.getZeromqMetadata())) ; } @@ -214,6 +218,8 @@ void to_json(nlohmann::json& j, const Jfjoch_settings& o) j["image_pusher"] = o.m_Image_pusher; if(o.zeromqPreviewIsSet()) j["zeromq_preview"] = o.m_Zeromq_preview; + if(o.zeromqMetadataIsSet()) + j["zeromq_metadata"] = o.m_Zeromq_metadata; } @@ -272,6 +278,11 @@ void from_json(const nlohmann::json& j, Jfjoch_settings& o) j.at("zeromq_preview").get_to(o.m_Zeromq_preview); o.m_Zeromq_previewIsSet = true; } + if(j.find("zeromq_metadata") != j.end()) + { + j.at("zeromq_metadata").get_to(o.m_Zeromq_metadata); + o.m_Zeromq_metadataIsSet = true; + } } @@ -469,6 +480,23 @@ void Jfjoch_settings::unsetZeromq_preview() { m_Zeromq_previewIsSet = false; } +org::openapitools::server::model::Zeromq_metadata_settings Jfjoch_settings::getZeromqMetadata() const +{ + return m_Zeromq_metadata; +} +void Jfjoch_settings::setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value) +{ + m_Zeromq_metadata = value; + m_Zeromq_metadataIsSet = true; +} +bool Jfjoch_settings::zeromqMetadataIsSet() const +{ + return m_Zeromq_metadataIsSet; +} +void Jfjoch_settings::unsetZeromq_metadata() +{ + m_Zeromq_metadataIsSet = false; +} } // namespace org::openapitools::server::model diff --git a/broker/gen/model/Jfjoch_settings.h b/broker/gen/model/Jfjoch_settings.h index 14289b90..462c24f4 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -27,6 +27,7 @@ #include "Zeromq_settings.h" #include "Azim_int_settings.h" #include "Image_format_settings.h" +#include "Zeromq_metadata_settings.h" #include "Detector_settings.h" #include "Instrument_metadata.h" #include @@ -153,6 +154,13 @@ public: void setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value); bool zeromqPreviewIsSet() const; void unsetZeromq_preview(); + /// + /// + /// + org::openapitools::server::model::Zeromq_metadata_settings getZeromqMetadata() const; + void setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value); + bool zeromqMetadataIsSet() const; + void unsetZeromq_metadata(); friend void to_json(nlohmann::json& j, const Jfjoch_settings& o); friend void from_json(const nlohmann::json& j, Jfjoch_settings& o); @@ -183,6 +191,8 @@ protected: org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview; bool m_Zeromq_previewIsSet; + org::openapitools::server::model::Zeromq_metadata_settings m_Zeromq_metadata; + bool m_Zeromq_metadataIsSet; }; diff --git a/broker/gen/model/Jfjoch_statistics.cpp b/broker/gen/model/Jfjoch_statistics.cpp index c07cbcb7..e265babf 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -32,6 +32,7 @@ Jfjoch_statistics::Jfjoch_statistics() m_FpgaIsSet = false; m_CalibrationIsSet = false; m_Zeromq_previewIsSet = false; + m_Zeromq_metadataIsSet = false; m_Pixel_maskIsSet = false; } @@ -97,7 +98,7 @@ bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& path } } - + return success; } @@ -140,6 +141,9 @@ bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const ((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview())) && + ((!zeromqMetadataIsSet() && !rhs.zeromqMetadataIsSet()) || (zeromqMetadataIsSet() && rhs.zeromqMetadataIsSet() && getZeromqMetadata() == rhs.getZeromqMetadata())) && + + ((!pixelMaskIsSet() && !rhs.pixelMaskIsSet()) || (pixelMaskIsSet() && rhs.pixelMaskIsSet() && getPixelMask() == rhs.getPixelMask())) ; @@ -175,6 +179,8 @@ void to_json(nlohmann::json& j, const Jfjoch_statistics& o) j["calibration"] = o.m_Calibration; if(o.zeromqPreviewIsSet()) j["zeromq_preview"] = o.m_Zeromq_preview; + if(o.zeromqMetadataIsSet()) + j["zeromq_metadata"] = o.m_Zeromq_metadata; if(o.pixelMaskIsSet()) j["pixel_mask"] = o.m_Pixel_mask; @@ -237,6 +243,11 @@ void from_json(const nlohmann::json& j, Jfjoch_statistics& o) j.at("zeromq_preview").get_to(o.m_Zeromq_preview); o.m_Zeromq_previewIsSet = true; } + if(j.find("zeromq_metadata") != j.end()) + { + j.at("zeromq_metadata").get_to(o.m_Zeromq_metadata); + o.m_Zeromq_metadataIsSet = true; + } if(j.find("pixel_mask") != j.end()) { j.at("pixel_mask").get_to(o.m_Pixel_mask); @@ -432,6 +443,23 @@ void Jfjoch_statistics::unsetZeromq_preview() { m_Zeromq_previewIsSet = false; } +org::openapitools::server::model::Zeromq_metadata_settings Jfjoch_statistics::getZeromqMetadata() const +{ + return m_Zeromq_metadata; +} +void Jfjoch_statistics::setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value) +{ + m_Zeromq_metadata = value; + m_Zeromq_metadataIsSet = true; +} +bool Jfjoch_statistics::zeromqMetadataIsSet() const +{ + return m_Zeromq_metadataIsSet; +} +void Jfjoch_statistics::unsetZeromq_metadata() +{ + m_Zeromq_metadataIsSet = false; +} org::openapitools::server::model::Pixel_mask_statistics Jfjoch_statistics::getPixelMask() const { return m_Pixel_mask; diff --git a/broker/gen/model/Jfjoch_statistics.h b/broker/gen/model/Jfjoch_statistics.h index 9b982f1b..8df4ab12 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -27,6 +27,7 @@ #include "Zeromq_preview_settings.h" #include "Detector_list.h" #include "Image_format_settings.h" +#include "Zeromq_metadata_settings.h" #include "Detector_settings.h" #include #include "Detector_status.h" @@ -150,6 +151,13 @@ public: /// /// /// + org::openapitools::server::model::Zeromq_metadata_settings getZeromqMetadata() const; + void setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value); + bool zeromqMetadataIsSet() const; + void unsetZeromq_metadata(); + /// + /// + /// org::openapitools::server::model::Pixel_mask_statistics getPixelMask() const; void setPixelMask(org::openapitools::server::model::Pixel_mask_statistics const& value); bool pixelMaskIsSet() const; @@ -180,6 +188,8 @@ protected: bool m_CalibrationIsSet; org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview; bool m_Zeromq_previewIsSet; + org::openapitools::server::model::Zeromq_metadata_settings m_Zeromq_metadata; + bool m_Zeromq_metadataIsSet; org::openapitools::server::model::Pixel_mask_statistics m_Pixel_mask; bool m_Pixel_maskIsSet; diff --git a/broker/gen/model/Measurement_statistics.cpp b/broker/gen/model/Measurement_statistics.cpp index f2dc8437..aa487e11 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 e6b30277..3db4070c 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 8f173dd8..fa9a5a5a 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 69b83642..b9893388 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 88a0948b..f09b6853 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 6246b582..613b4315 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 3c623665..82e3ed16 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 b9074102..5816543e 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 1c56da86..bd18a0a7 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 813d23e6..8e33b707 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Preview_settings.cpp b/broker/gen/model/Preview_settings.cpp index 7c2379fc..ca08d180 100644 --- a/broker/gen/model/Preview_settings.cpp +++ b/broker/gen/model/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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). diff --git a/broker/gen/model/Preview_settings.h b/broker/gen/model/Preview_settings.h index 737d0e3c..1023599f 100644 --- a/broker/gen/model/Preview_settings.h +++ b/broker/gen/model/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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 74b99c9e..cf4d5b48 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 5e41444e..05999ddd 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 764f7100..c5ffcbcd 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 41def50f..b424e461 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 7d4c51fc..716ae79b 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 adf88000..95dec363 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 8dd70894..500d501f 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 4ce6b931..bdc17e65 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 6e0538db..f1f9f2a0 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 14444cab..fec625f1 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 a6f1fc81..7ace6f22 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 5395333e..8b68322a 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 e6634094..930ecf21 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 df790a16..51c90a91 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 new file mode 100644 index 00000000..6ea1d52d --- /dev/null +++ b/broker/gen/model/Zeromq_metadata_settings.cpp @@ -0,0 +1,148 @@ +/** +* 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. +* +* The version of the OpenAPI document: 1.0.0-rc.26 +* Contact: filip.leonarski@psi.ch +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ + + +#include "Zeromq_metadata_settings.h" +#include "Helpers.h" + +#include + +namespace org::openapitools::server::model +{ + +Zeromq_metadata_settings::Zeromq_metadata_settings() +{ + m_Enabled = true; + m_Period_ms = 1000L; + m_Socket_address = ""; + m_Socket_addressIsSet = false; + +} + +void Zeromq_metadata_settings::validate() const +{ + std::stringstream msg; + if (!validate(msg)) + { + throw org::openapitools::server::helpers::ValidationException(msg.str()); + } +} + +bool Zeromq_metadata_settings::validate(std::stringstream& msg) const +{ + return validate(msg, ""); +} + +bool Zeromq_metadata_settings::validate(std::stringstream& msg, const std::string& pathPrefix) const +{ + bool success = true; + const std::string _pathPrefix = pathPrefix.empty() ? "Zeromq_metadata_settings" : pathPrefix; + + + + /* Period_ms */ { + const int64_t& value = m_Period_ms; + const std::string currentValuePath = _pathPrefix + ".periodMs"; + + + if (value < 1ll) + { + success = false; + msg << currentValuePath << ": must be greater than or equal to 1;"; + } + + } + + return success; +} + +bool Zeromq_metadata_settings::operator==(const Zeromq_metadata_settings& rhs) const +{ + return + + + (isEnabled() == rhs.isEnabled()) + && + + (getPeriodMs() == rhs.getPeriodMs()) + && + + + ((!socketAddressIsSet() && !rhs.socketAddressIsSet()) || (socketAddressIsSet() && rhs.socketAddressIsSet() && getSocketAddress() == rhs.getSocketAddress())) + + ; +} + +bool Zeromq_metadata_settings::operator!=(const Zeromq_metadata_settings& rhs) const +{ + return !(*this == rhs); +} + +void to_json(nlohmann::json& j, const Zeromq_metadata_settings& o) +{ + j = nlohmann::json::object(); + j["enabled"] = o.m_Enabled; + j["period_ms"] = o.m_Period_ms; + if(o.socketAddressIsSet()) + j["socket_address"] = o.m_Socket_address; + +} + +void from_json(const nlohmann::json& j, Zeromq_metadata_settings& o) +{ + j.at("enabled").get_to(o.m_Enabled); + j.at("period_ms").get_to(o.m_Period_ms); + if(j.find("socket_address") != j.end()) + { + j.at("socket_address").get_to(o.m_Socket_address); + o.m_Socket_addressIsSet = true; + } + +} + +bool Zeromq_metadata_settings::isEnabled() const +{ + return m_Enabled; +} +void Zeromq_metadata_settings::setEnabled(bool const value) +{ + m_Enabled = value; +} +int64_t Zeromq_metadata_settings::getPeriodMs() const +{ + return m_Period_ms; +} +void Zeromq_metadata_settings::setPeriodMs(int64_t const value) +{ + m_Period_ms = value; +} +std::string Zeromq_metadata_settings::getSocketAddress() const +{ + return m_Socket_address; +} +void Zeromq_metadata_settings::setSocketAddress(std::string const& value) +{ + m_Socket_address = value; + m_Socket_addressIsSet = true; +} +bool Zeromq_metadata_settings::socketAddressIsSet() const +{ + return m_Socket_addressIsSet; +} +void Zeromq_metadata_settings::unsetSocket_address() +{ + m_Socket_addressIsSet = false; +} + + +} // namespace org::openapitools::server::model + diff --git a/broker/gen/model/Zeromq_metadata_settings.h b/broker/gen/model/Zeromq_metadata_settings.h new file mode 100644 index 00000000..eeb95b4e --- /dev/null +++ b/broker/gen/model/Zeromq_metadata_settings.h @@ -0,0 +1,93 @@ +/** +* 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. +* +* The version of the OpenAPI document: 1.0.0-rc.26 +* Contact: filip.leonarski@psi.ch +* +* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). +* https://openapi-generator.tech +* Do not edit the class manually. +*/ +/* + * Zeromq_metadata_settings.h + * + * + */ + +#ifndef Zeromq_metadata_settings_H_ +#define Zeromq_metadata_settings_H_ + + +#include +#include + +namespace org::openapitools::server::model +{ + +/// +/// +/// +class Zeromq_metadata_settings +{ +public: + Zeromq_metadata_settings(); + virtual ~Zeromq_metadata_settings() = default; + + + /// + /// Validate the current data in the model. Throws a ValidationException on failure. + /// + void validate() const; + + /// + /// Validate the current data in the model. Returns false on error and writes an error + /// message into the given stringstream. + /// + bool validate(std::stringstream& msg) const; + + /// + /// Helper overload for validate. Used when one model stores another model and calls it's validate. + /// Not meant to be called outside that case. + /// + bool validate(std::stringstream& msg, const std::string& pathPrefix) const; + + bool operator==(const Zeromq_metadata_settings& rhs) const; + bool operator!=(const Zeromq_metadata_settings& rhs) const; + + ///////////////////////////////////////////// + /// Zeromq_metadata_settings members + + /// + /// ZeroMQ metadata socket is enabled. + /// + bool isEnabled() const; + void setEnabled(bool const value); + /// + /// Period for generating metadata package sent to the ZeroMQ interface in milliseconds. + /// + int64_t getPeriodMs() const; + void setPeriodMs(int64_t const value); + /// + /// PUB ZeroMQ socket for image metadata information. Image metadata are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tcp://<IP address>:<port> sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces. + /// + std::string getSocketAddress() const; + void setSocketAddress(std::string const& value); + bool socketAddressIsSet() const; + void unsetSocket_address(); + + friend void to_json(nlohmann::json& j, const Zeromq_metadata_settings& o); + friend void from_json(const nlohmann::json& j, Zeromq_metadata_settings& o); +protected: + bool m_Enabled; + + int64_t m_Period_ms; + + std::string m_Socket_address; + bool m_Socket_addressIsSet; + +}; + +} // namespace org::openapitools::server::model + +#endif /* Zeromq_metadata_settings_H_ */ diff --git a/broker/gen/model/Zeromq_preview_settings.cpp b/broker/gen/model/Zeromq_preview_settings.cpp index 169660e4..19f50d85 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -23,8 +23,6 @@ Zeromq_preview_settings::Zeromq_preview_settings() { m_Enabled = true; m_Period_ms = 1000L; - m_Send_start_message = true; - m_Send_start_messageIsSet = false; m_Socket_address = ""; m_Socket_addressIsSet = false; @@ -49,7 +47,7 @@ bool Zeromq_preview_settings::validate(std::stringstream& msg, const std::string bool success = true; const std::string _pathPrefix = pathPrefix.empty() ? "Zeromq_preview_settings" : pathPrefix; - + return success; } @@ -65,9 +63,6 @@ bool Zeromq_preview_settings::operator==(const Zeromq_preview_settings& rhs) con && - ((!sendStartMessageIsSet() && !rhs.sendStartMessageIsSet()) || (sendStartMessageIsSet() && rhs.sendStartMessageIsSet() && isSendStartMessage() == rhs.isSendStartMessage())) && - - ((!socketAddressIsSet() && !rhs.socketAddressIsSet()) || (socketAddressIsSet() && rhs.socketAddressIsSet() && getSocketAddress() == rhs.getSocketAddress())) ; @@ -83,8 +78,6 @@ void to_json(nlohmann::json& j, const Zeromq_preview_settings& o) j = nlohmann::json::object(); j["enabled"] = o.m_Enabled; j["period_ms"] = o.m_Period_ms; - if(o.sendStartMessageIsSet()) - j["send_start_message"] = o.m_Send_start_message; if(o.socketAddressIsSet()) j["socket_address"] = o.m_Socket_address; @@ -94,11 +87,6 @@ void from_json(const nlohmann::json& j, Zeromq_preview_settings& o) { j.at("enabled").get_to(o.m_Enabled); j.at("period_ms").get_to(o.m_Period_ms); - if(j.find("send_start_message") != j.end()) - { - j.at("send_start_message").get_to(o.m_Send_start_message); - o.m_Send_start_messageIsSet = true; - } if(j.find("socket_address") != j.end()) { j.at("socket_address").get_to(o.m_Socket_address); @@ -123,23 +111,6 @@ void Zeromq_preview_settings::setPeriodMs(int64_t const value) { m_Period_ms = value; } -bool Zeromq_preview_settings::isSendStartMessage() const -{ - return m_Send_start_message; -} -void Zeromq_preview_settings::setSendStartMessage(bool const value) -{ - m_Send_start_message = value; - m_Send_start_messageIsSet = true; -} -bool Zeromq_preview_settings::sendStartMessageIsSet() const -{ - return m_Send_start_messageIsSet; -} -void Zeromq_preview_settings::unsetSend_start_message() -{ - m_Send_start_messageIsSet = false; -} std::string Zeromq_preview_settings::getSocketAddress() const { return m_Socket_address; diff --git a/broker/gen/model/Zeromq_preview_settings.h b/broker/gen/model/Zeromq_preview_settings.h index 348afc74..deab1152 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * Contact: filip.leonarski@psi.ch * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). @@ -69,14 +69,7 @@ public: int64_t getPeriodMs() const; void setPeriodMs(int64_t const value); /// - /// Publish start message on the preview ZeroMQ stream - /// - bool isSendStartMessage() const; - void setSendStartMessage(bool const value); - bool sendStartMessageIsSet() const; - void unsetSend_start_message(); - /// - /// PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tpc://<IP address>:<port> sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces. + /// PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tcp://<IP address>:<port> sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces. /// std::string getSocketAddress() const; void setSocketAddress(std::string const& value); @@ -90,8 +83,6 @@ protected: int64_t m_Period_ms; - bool m_Send_start_message; - bool m_Send_start_messageIsSet; std::string m_Socket_address; bool m_Socket_addressIsSet; diff --git a/broker/gen/model/Zeromq_settings.cpp b/broker/gen/model/Zeromq_settings.cpp index 7f280511..bb22b7d6 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 6ebe16e1..2d96686e 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. * -* The version of the OpenAPI document: 1.0.0-rc.25 +* The version of the OpenAPI document: 1.0.0-rc.26 * 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 37e28ac6..e2fdaa4c 100644 --- a/broker/jfjoch_api.yaml +++ b/broker/jfjoch_api.yaml @@ -5,7 +5,7 @@ info: 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. - version: 1.0.0-rc.25 + version: 1.0.0-rc.26 contact: name: Filip Leonarski (Paul Scherrer Institute) email: filip.leonarski@psi.ch @@ -906,6 +906,8 @@ components: $ref: '#/components/schemas/calibration_statistics' zeromq_preview: $ref: '#/components/schemas/zeromq_preview_settings' + zeromq_metadata: + $ref: '#/components/schemas/zeromq_metadata_settings' pixel_mask: $ref: '#/components/schemas/pixel_mask_statistics' preview_settings: @@ -1304,6 +1306,32 @@ components: $ref: '#/components/schemas/image_pusher_type' zeromq_preview: $ref: '#/components/schemas/zeromq_preview_settings' + zeromq_metadata: + $ref: '#/components/schemas/zeromq_metadata_settings' + zeromq_metadata_settings: + type: object + required: + - enabled + - period_ms + properties: + enabled: + type: boolean + default: true + description: ZeroMQ metadata socket is enabled. + period_ms: + type: integer + format: int64 + minimum: 1 + default: 1000 + description: | + Period for generating metadata package sent to the ZeroMQ interface in milliseconds. + socket_address: + type: string + description: | + PUB ZeroMQ socket for image metadata information. + Image metadata are serialized using CBOR. + Address follows ZeroMQ convention for sockets - in practice ipc:// and tcp://: sockets are OK. + 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces. zeromq_preview_settings: type: object required: @@ -1322,17 +1350,12 @@ components: Period for generating preview image sent to the ZeroMQ interface in milliseconds. Default is 1 second. If set to zero, all images will be sent ZeroMQ (should be used only in case of relatively slow data collection). This has no effect on HTTP based preview, which updates always at rate of 1 second. - send_start_message: - type: boolean - default: true - description: | - Publish start message on the preview ZeroMQ stream socket_address: type: string description: | PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. - Address follows ZeroMQ convention for sockets - in practice ipc:// and tpc://: sockets are OK. + Address follows ZeroMQ convention for sockets - in practice ipc:// and tcp://: sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces. paths: /initialize: @@ -1823,6 +1846,43 @@ paths: application/json: schema: $ref: '#/components/schemas/zeromq_preview_settings' + /config/zeromq_metadata: + put: + summary: Set ZeroMQ metadata settings + description: | + Jungfraujoch can generate metadata message stream on ZeroMQ PUB socket. This stream covers all images. + Here settings of the socket can be adjusted. + While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request. + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/zeromq_metadata_settings' + responses: + "200": + description: Everything OK + "400": + description: Input parsing or validation error + content: + text/plain: + schema: + type: string + description: Exception error + "500": + description: Error within Jungfraujoch code - see output message. + content: + application/json: + schema: + $ref: '#/components/schemas/error_message' + get: + summary: Get ZeroMQ metadata socket settings + responses: + "200": + description: Everything OK + content: + application/json: + schema: + $ref: '#/components/schemas/zeromq_metadata_settings' /status: get: summary: Get Jungfraujoch status @@ -2027,6 +2087,48 @@ paths: schema: type: string description: Exception error + /plot/indexing_unit_cell: + get: + summary: Generate indexing unit cell length plots + description: Crystal unit cell based on indexing results; binning is configurable + parameters: + - $ref: '#/components/parameters/binning' + - $ref: '#/components/parameters/compression' + responses: + "200": + description: Response will be by default compressed with deflate algorithm, if using curl, use --compressed option. + content: + application/json: + schema: + $ref: '#/components/schemas/plots' + "400": + description: Input parsing or validation error + content: + text/plain: + schema: + type: string + description: Exception error + /plot/indexing_unit_cell_angle: + get: + summary: Generate indexing unit cell angle plot + description: Crystal unit cell based on indexing results; binning is configurable + parameters: + - $ref: '#/components/parameters/binning' + - $ref: '#/components/parameters/compression' + responses: + "200": + description: Response will be by default compressed with deflate algorithm, if using curl, use --compressed option. + content: + application/json: + schema: + $ref: '#/components/schemas/plots' + "400": + description: Input parsing or validation error + content: + text/plain: + schema: + type: string + description: Exception error /plot/error_pixel: get: summary: Generate error pixels plot diff --git a/broker/redoc-static.html b/broker/redoc-static.html index 4316a3f7..ad2bce1d 100644 --- a/broker/redoc-static.html +++ b/broker/redoc-static.html @@ -349,7 +349,7 @@ data-styled.g137[id="sc-kqGpvY"]{content:"bAFwPb,"}/*!sc*/ -

Jungfraujoch (1.0.0-rc.25)

Download OpenAPI specification:Download

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

Jungfraujoch (1.0.0-rc.26)

Download OpenAPI specification:Download

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

API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). @@ -399,7 +399,7 @@ If storage cells are used, the execution time might be few minutes. " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Collect dark current for the detector

http://localhost:5232/initialize

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Collect dark current for the detector

Updates calibration of the JUNGFRAU detector. Must be in Idle state.

@@ -411,7 +411,7 @@ If storage cells are used, the execution time might be few minutes. " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Start detector

http://localhost:5232/pedestal

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Start detector

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "images_per_trigger": 1,
  • "ntrigger": 1,
  • "image_time_us": 0,
  • "beam_x_pxl": 0.1,
  • "beam_y_pxl": 0.1,
  • "detector_distance_mm": 0.1,
  • "incident_energy_keV": 0.001,
  • "file_prefix": "",
  • "images_per_file": 1000,
  • "space_group_number": 0,
  • "sample_name": "",
  • "compression": "bslz4",
  • "total_flux": 0.1,
  • "transmission": 1,
  • "goniometer": {
    },
  • "header_appendix": null,
  • "image_appendix": null,
  • "data_reduction_factor_serialmx": 1,
  • "pixel_value_low_threshold": 0,
  • "run_number": 0,
  • "run_name": "string",
  • "experiment_group": "string",
  • "poisson_compression": 16,
  • "write_nxmx_hdf5_master": true,
  • "save_calibration": true,
  • "unit_cell": {
    }
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Wait for acquisition done

http://localhost:5232/start

Request samples

Content type
application/json
{
  • "images_per_trigger": 1,
  • "ntrigger": 1,
  • "image_time_us": 0,
  • "beam_x_pxl": 0.1,
  • "beam_y_pxl": 0.1,
  • "detector_distance_mm": 0.1,
  • "incident_energy_keV": 0.001,
  • "file_prefix": "",
  • "images_per_file": 1000,
  • "space_group_number": 0,
  • "sample_name": "",
  • "compression": "bslz4",
  • "total_flux": 0.1,
  • "transmission": 1,
  • "goniometer": {
    },
  • "header_appendix": null,
  • "image_appendix": null,
  • "data_reduction_factor_serialmx": 1,
  • "pixel_value_low_threshold": 0,
  • "run_number": 0,
  • "run_name": "string",
  • "experiment_group": "string",
  • "poisson_compression": 16,
  • "write_nxmx_hdf5_master": true,
  • "save_calibration": true,
  • "unit_cell": {
    }
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Wait for acquisition done

Timeout reached, need to restart operation

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Send soft trigger to the detector

http://localhost:5232/wait_till_done

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Send soft trigger to the detector

Generate soft trigger

Responses

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Change detector configuration

http://localhost:5232/deactivate

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Change detector configuration

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "frame_time_us": 450,
  • "count_time_us": 0,
  • "internal_frame_generator": false,
  • "internal_frame_generator_images": 1,
  • "detector_trigger_delay_ns": 0,
  • "timing": "auto",
  • "eiger_threshold_keV": 1,
  • "eiger_bit_depth": 8,
  • "jungfrau_pedestal_g0_frames": 2000,
  • "jungfrau_pedestal_g1_frames": 300,
  • "jungfrau_pedestal_g2_frames": 300,
  • "jungfrau_pedestal_min_image_count": 128,
  • "jungfrau_storage_cell_count": 1,
  • "jungfrau_storage_cell_delay_ns": 5000,
  • "jungfrau_fixed_gain_g1": false,
  • "jungfrau_use_gain_hg0": false
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get detector configuration

http://localhost:5232/config/detector

Request samples

Content type
application/json
{
  • "frame_time_us": 450,
  • "count_time_us": 0,
  • "internal_frame_generator": false,
  • "internal_frame_generator_images": 1,
  • "detector_trigger_delay_ns": 0,
  • "timing": "auto",
  • "eiger_threshold_keV": 1,
  • "eiger_bit_depth": 8,
  • "jungfrau_pedestal_g0_frames": 2000,
  • "jungfrau_pedestal_g1_frames": 300,
  • "jungfrau_pedestal_g2_frames": 300,
  • "jungfrau_pedestal_min_image_count": 128,
  • "jungfrau_storage_cell_count": 1,
  • "jungfrau_storage_cell_delay_ns": 5000,
  • "jungfrau_fixed_gain_g1": false,
  • "jungfrau_use_gain_hg0": false
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get detector configuration

Can be done anytime

Responses

Response samples

Content type
application/json
{
  • "frame_time_us": 450,
  • "count_time_us": 0,
  • "internal_frame_generator": false,
  • "internal_frame_generator_images": 1,
  • "detector_trigger_delay_ns": 0,
  • "timing": "auto",
  • "eiger_threshold_keV": 1,
  • "eiger_bit_depth": 8,
  • "jungfrau_pedestal_g0_frames": 2000,
  • "jungfrau_pedestal_g1_frames": 300,
  • "jungfrau_pedestal_g2_frames": 300,
  • "jungfrau_pedestal_min_image_count": 128,
  • "jungfrau_storage_cell_count": 1,
  • "jungfrau_storage_cell_delay_ns": 5000,
  • "jungfrau_fixed_gain_g1": false,
  • "jungfrau_use_gain_hg0": false
}

Change instrument metadata

http://localhost:5232/config/detector

Response samples

Content type
application/json
{
  • "frame_time_us": 450,
  • "count_time_us": 0,
  • "internal_frame_generator": false,
  • "internal_frame_generator_images": 1,
  • "detector_trigger_delay_ns": 0,
  • "timing": "auto",
  • "eiger_threshold_keV": 1,
  • "eiger_bit_depth": 8,
  • "jungfrau_pedestal_g0_frames": 2000,
  • "jungfrau_pedestal_g1_frames": 300,
  • "jungfrau_pedestal_g2_frames": 300,
  • "jungfrau_pedestal_min_image_count": 128,
  • "jungfrau_storage_cell_count": 1,
  • "jungfrau_storage_cell_delay_ns": 5000,
  • "jungfrau_fixed_gain_g1": false,
  • "jungfrau_use_gain_hg0": false
}

Change instrument metadata

This can only be done when detector is Idle, Error or Inactive states.

Request Body schema: application/json
source_name
required
string
source_type
string
Default: ""

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "source_name": "Swiss Light Source",
  • "source_type": "Synchrotron X-ray Source",
  • "instrument_name": "CristallinaMX",
  • "pulsed_source": false
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get instrument metadata

http://localhost:5232/config/instrument

Request samples

Content type
application/json
{
  • "source_name": "Swiss Light Source",
  • "source_type": "Synchrotron X-ray Source",
  • "instrument_name": "CristallinaMX",
  • "pulsed_source": false
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get instrument metadata

Can be done anytime

Responses

Response samples

Content type
application/json
{
  • "source_name": "Swiss Light Source",
  • "source_type": "Synchrotron X-ray Source",
  • "instrument_name": "CristallinaMX",
  • "pulsed_source": false
}

Change image output format

http://localhost:5232/config/instrument

Response samples

Content type
application/json
{
  • "source_name": "Swiss Light Source",
  • "source_type": "Synchrotron X-ray Source",
  • "instrument_name": "CristallinaMX",
  • "pulsed_source": false
}

Change image output format

This can only be done when detector is Idle, Error or Inactive states.

Request Body schema: application/json
summation
required
boolean

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "summation": true,
  • "geometry_transform": true,
  • "jungfrau_conversion": true,
  • "jungfrau_conversion_factor_keV": 0.001,
  • "bit_depth_image": 8,
  • "signed_output": true,
  • "mask_module_edges": true,
  • "mask_chip_edges": true,
  • "jungfrau_mask_pixels_without_g0": true,
  • "apply_mask": false,
  • "jungfrau_pedestal_g0_rms_limit": 100
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get image output format

http://localhost:5232/config/image_format

Request samples

Content type
application/json
{
  • "summation": true,
  • "geometry_transform": true,
  • "jungfrau_conversion": true,
  • "jungfrau_conversion_factor_keV": 0.001,
  • "bit_depth_image": 8,
  • "signed_output": true,
  • "mask_module_edges": true,
  • "mask_chip_edges": true,
  • "jungfrau_mask_pixels_without_g0": true,
  • "apply_mask": false,
  • "jungfrau_pedestal_g0_rms_limit": 100
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get image output format

Can be done anytime

Responses

Response samples

Content type
application/json
{
  • "summation": true,
  • "geometry_transform": true,
  • "jungfrau_conversion": true,
  • "jungfrau_conversion_factor_keV": 0.001,
  • "bit_depth_image": 8,
  • "signed_output": true,
  • "mask_module_edges": true,
  • "mask_chip_edges": true,
  • "jungfrau_mask_pixels_without_g0": true,
  • "apply_mask": false,
  • "jungfrau_pedestal_g0_rms_limit": 100
}

Configure format for raw data collection

http://localhost:5232/config/image_format

Response samples

Content type
application/json
{
  • "summation": true,
  • "geometry_transform": true,
  • "jungfrau_conversion": true,
  • "jungfrau_conversion_factor_keV": 0.001,
  • "bit_depth_image": 8,
  • "signed_output": true,
  • "mask_module_edges": true,
  • "mask_chip_edges": true,
  • "jungfrau_mask_pixels_without_g0": true,
  • "apply_mask": false,
  • "jungfrau_pedestal_g0_rms_limit": 100
}

Configure format for raw data collection

This can only be done when detector is Idle, Error or Inactive states.

Responses

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Configure format for data collection with full conversion

http://localhost:5232/config/image_format/raw

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Configure format for data collection with full conversion

This can only be done when detector is Idle, Error or Inactive states.

Responses

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Configure spot finding

http://localhost:5232/config/image_format/conversion

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Configure spot finding

Can be done anytime, also while data collection is running

Request Body schema: application/json
enable
required
boolean
Default: true

Input parsing or validation error

Request samples

Content type
application/json
{
  • "enable": true,
  • "indexing": true,
  • "filter_powder_rings": false,
  • "min_spot_count_powder_ring": 5,
  • "signal_to_noise_threshold": 0.1,
  • "photon_count_threshold": 0,
  • "min_pix_per_spot": 1,
  • "max_pix_per_spot": 1,
  • "high_resolution_limit": 0.1,
  • "low_resolution_limit": 0.1,
  • "indexing_tolerance": 1
}

Get data processing configuration

http://localhost:5232/config/spot_finding

Request samples

Content type
application/json
{
  • "enable": true,
  • "indexing": true,
  • "filter_powder_rings": false,
  • "min_spot_count_powder_ring": 5,
  • "signal_to_noise_threshold": 0.1,
  • "photon_count_threshold": 0,
  • "min_pix_per_spot": 1,
  • "max_pix_per_spot": 1,
  • "high_resolution_limit": 0.1,
  • "low_resolution_limit": 0.1,
  • "indexing_tolerance": 1
}

Get data processing configuration

Can be done anytime

Responses

Response samples

Content type
application/json
{
  • "enable": true,
  • "indexing": true,
  • "filter_powder_rings": false,
  • "min_spot_count_powder_ring": 5,
  • "signal_to_noise_threshold": 0.1,
  • "photon_count_threshold": 0,
  • "min_pix_per_spot": 1,
  • "max_pix_per_spot": 1,
  • "high_resolution_limit": 0.1,
  • "low_resolution_limit": 0.1,
  • "indexing_tolerance": 1
}

Configure radial integration

http://localhost:5232/config/spot_finding

Response samples

Content type
application/json
{
  • "enable": true,
  • "indexing": true,
  • "filter_powder_rings": false,
  • "min_spot_count_powder_ring": 5,
  • "signal_to_noise_threshold": 0.1,
  • "photon_count_threshold": 0,
  • "min_pix_per_spot": 1,
  • "max_pix_per_spot": 1,
  • "high_resolution_limit": 0.1,
  • "low_resolution_limit": 0.1,
  • "indexing_tolerance": 1
}

Configure radial integration

Can be done when detector is Inactive or Idle

Request Body schema: application/json
polarization_factor
number <float> [ -1 .. 1 ]

If polarization factor is provided, than polarization correction is enabled.

@@ -809,13 +809,13 @@ Even if disabled spot finding information will still be send and written, though " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "polarization_factor": -1,
  • "solid_angle_corr": true,
  • "high_q_recipA": 0.1,
  • "low_q_recipA": 0.1,
  • "q_spacing": 0.1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get radial integration configuration

http://localhost:5232/config/azim_int

Request samples

Content type
application/json
{
  • "polarization_factor": -1,
  • "solid_angle_corr": true,
  • "high_q_recipA": 0.1,
  • "low_q_recipA": 0.1,
  • "q_spacing": 0.1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get radial integration configuration

Can be done anytime

Responses

Response samples

Content type
application/json
{
  • "polarization_factor": -1,
  • "solid_angle_corr": true,
  • "high_q_recipA": 0.1,
  • "low_q_recipA": 0.1,
  • "q_spacing": 0.1
}

Load binary image for internal FPGA generator

http://localhost:5232/config/azim_int

Response samples

Content type
application/json
{
  • "polarization_factor": -1,
  • "solid_angle_corr": true,
  • "high_q_recipA": 0.1,
  • "low_q_recipA": 0.1,
  • "q_spacing": 0.1
}

Load binary image for internal FPGA generator

Load image for internal FPGA generator. This can only happen in Idle state of the detector. @@ -857,13 +857,13 @@ Changing detector will set detector to Inactive state and will requ " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

List available detectors

http://localhost:5232/config/select_detector

Request samples

Content type
application/json
{
  • "id": 1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

List available detectors

Configured detectors that can be selected by used

Responses

Response samples

Content type
application/json
{
  • "detectors": [
    ],
  • "current_id": 0
}

Set ZeroMQ preview settings

http://localhost:5232/config/select_detector

Response samples

Content type
application/json
{
  • "detectors": [
    ],
  • "current_id": 0
}

Set ZeroMQ preview settings

Period for generating preview image sent to the ZeroMQ interface in milliseconds. Default is 1 second. If set to zero, all images will be sent ZeroMQ (should be used only in case of relatively slow data collection). This has no effect on HTTP based preview, which updates always at rate of 1 second.

-
send_start_message
boolean
Default: true

Publish start message on the preview ZeroMQ stream

socket_address
string

PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. -Address follows ZeroMQ convention for sockets - in practice ipc:// and tpc://: sockets are OK. +Address follows ZeroMQ convention for sockets - in practice ipc:// and tcp://: sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "send_start_message": true,
  • "socket_address": "string"
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get ZeroMQ preview settings

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "socket_address": "string"
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get ZeroMQ preview settings

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "send_start_message": true,
  • "socket_address": "string"
}

Get Jungfraujoch status

http://localhost:5232/config/zeromq_preview

Response samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "socket_address": "string"
}

Set ZeroMQ metadata settings

Jungfraujoch can generate metadata message stream on ZeroMQ PUB socket. This stream covers all images. +Here settings of the socket can be adjusted. +While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request.

+
Request Body schema: application/json
enabled
required
boolean
Default: true

ZeroMQ metadata socket is enabled.

+
period_ms
required
integer <int64> >= 1
Default: 1000

Period for generating metadata package sent to the ZeroMQ interface in milliseconds.

+
socket_address
string

PUB ZeroMQ socket for image metadata information. +Image metadata are serialized using CBOR. +Address follows ZeroMQ convention for sockets - in practice ipc:// and tcp://: sockets are OK. +0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.

+

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "socket_address": "string"
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get ZeroMQ metadata socket settings

Responses

Response samples

Content type
application/json
{
  • "enabled": true,
  • "period_ms": 1000,
  • "socket_address": "string"
}

Get Jungfraujoch status

Status of the data acquisition

Responses

Response samples

Content type
application/json
{
  • "state": "Inactive",
  • "progress": 1
}

Get status of FPGA devices

Responses

Response samples

Content type
application/json
{
  • "state": "Inactive",
  • "progress": 1
}

Get status of FPGA devices

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Return XFEL pulse IDs for the current data acquisition

http://localhost:5232/fpga_status

Response samples

Content type
application/json
[
  • {
    }
]

Return XFEL pulse IDs for the current data acquisition

Return array of XFEL pulse IDs - (-1) if image not recorded

Responses

Response samples

Content type
application/json
[
  • 0
]

Return XFEL event codes for the current data acquisition

http://localhost:5232/xfel/pulse_id

Response samples

Content type
application/json
[
  • 0
]

Return XFEL event codes for the current data acquisition

Return array of XFEL event codes

Responses

Response samples

Content type
application/json
[
  • 0
]

Get detector status

http://localhost:5232/xfel/event_code

Response samples

Content type
application/json
[
  • 0
]

Get detector status

Status of the JUNGFRAU detector

Responses

Response samples

Content type
application/json
{
  • "state": "Idle",
  • "powerchip": "PowerOn",
  • "server_version": "string",
  • "number_of_triggers_left": 0,
  • "fpga_temp_degC": [
    ],
  • "high_voltage_V": [
    ]
}

Get box ROIs

Responses

Response samples

Content type
application/json
{
  • "state": "Idle",
  • "powerchip": "PowerOn",
  • "server_version": "string",
  • "number_of_triggers_left": 0,
  • "fpga_temp_degC": [
    ],
  • "high_voltage_V": [
    ]
}

Get box ROIs

Responses

Response samples

Content type
application/json
{
  • "rois": [
    ]
}

Upload box ROIs

Request Body schema: application/json
Array of objects (roi_box) <= 32 items

Responses

Response samples

Content type
application/json
{
  • "rois": [
    ]
}

Upload box ROIs

Request Body schema: application/json
Array of objects (roi_box) <= 32 items

Responses

Request samples

Content type
application/json
{
  • "rois": [
    ]
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get circular ROI

Responses

Request samples

Content type
application/json
{
  • "rois": [
    ]
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get circular ROI

Responses

Response samples

Content type
application/json
{
  • "rois": [
    ]
}

Upload circular ROI

Request Body schema: application/json
required
Array of objects (roi_circle) <= 32 items

Responses

Response samples

Content type
application/json
{
  • "rois": [
    ]
}

Upload circular ROI

Request Body schema: application/json
required
Array of objects (roi_circle) <= 32 items

Responses

Request samples

Content type
application/json
{
  • "rois": [
    ]
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Generate background estimate plot

http://localhost:5232/roi/circle

Request samples

Content type
application/json
{
  • "rois": [
    ]
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Generate background estimate plot

Mean intensity for d = 3 - 5 A per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -973,7 +1001,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate spot count plot

http://localhost:5232/plot/bkg_estimate

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate spot count plot

Number of spots per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -985,7 +1013,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate indexing rate plot

http://localhost:5232/plot/spot_count

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate indexing rate plot

Image indexing rate; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -997,7 +1025,31 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate error pixels plot

http://localhost:5232/plot/indexing_rate

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate indexing unit cell length plots

Crystal unit cell based on indexing results; binning is configurable

+
query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

+
compression
boolean
Default: true

Enable DEFLATE compression of output data.

+

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate indexing unit cell angle plot

Crystal unit cell based on indexing results; binning is configurable

+
query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

+
compression
boolean
Default: true

Enable DEFLATE compression of output data.

+

Responses

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate error pixels plot

Count of error (mean) and saturated (mean/max) pixels per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1009,7 +1061,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate strong pixels plot

http://localhost:5232/plot/error_pixel

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate strong pixels plot

Count of strong pixels per image (from spot finding); binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1021,7 +1073,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate ROI sum plot

http://localhost:5232/plot/strong_pixel

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate ROI sum plot

Sum of ROI rectangle per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1033,7 +1085,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate plot of ROI max count

http://localhost:5232/plot/roi_sum

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate plot of ROI max count

Max count of ROI per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1045,7 +1097,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate plot of ROI valid pixels

http://localhost:5232/plot/roi_max_count

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate plot of ROI valid pixels

Number of pixels within a ROI area; pixels with special values (overload, bad pixel) are excluded; multipixels are counted just once; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1057,7 +1109,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate receiver delay plot

http://localhost:5232/plot/roi_valid_pixels

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate receiver delay plot

Amount of frames the receiver is behind the FPGA for each image - used for internal debugging; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1069,7 +1121,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate receiver free send buffer plot

http://localhost:5232/plot/receiver_delay

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate receiver free send buffer plot

Amount of send buffers available during frame processing - used for internal debugging; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1081,7 +1133,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate image collection efficiency plot

http://localhost:5232/plot/receiver_free_send_buffers

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate image collection efficiency plot

Ratio of collected and expected packets per image; binning is configurable

query Parameters
binning
integer

Binning of frames for the plot (0 = default binning)

@@ -1093,7 +1145,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Input parsing or validation error

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate radial integration profile

http://localhost:5232/plot/image_collection_efficiency

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Generate radial integration profile

Generate average radial integration profile

query Parameters
compression
boolean
Default: true

Enable DEFLATE compression of output data.

@@ -1101,13 +1153,13 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Everything OK

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Get general statistics

query Parameters
compression
boolean
Default: true
http://localhost:5232/plot/azim_int

Response samples

Content type
application/json
{
  • "title": "string",
  • "plot": [
    ]
}

Get general statistics

query Parameters
compression
boolean
Default: true

Enable DEFLATE compression of output data.

Responses

Response samples

Content type
application/json
{
  • "detector": {
    },
  • "detector_list": {
    },
  • "detector_settings": {
    },
  • "image_format_settings": {
    },
  • "instrument_metadata": {
    },
  • "data_processing_settings": {
    },
  • "measurement": {
    },
  • "broker": {
    },
  • "fpga": [
    ],
  • "calibration": [
    ],
  • "zeromq_preview": {
    },
  • "pixel_mask": {
    }
}

Get data collection statistics

http://localhost:5232/statistics

Response samples

Content type
application/json
{
  • "detector": {
    },
  • "detector_list": {
    },
  • "detector_settings": {
    },
  • "image_format_settings": {
    },
  • "instrument_metadata": {
    },
  • "data_processing_settings": {
    },
  • "measurement": {
    },
  • "broker": {
    },
  • "fpga": [
    ],
  • "calibration": [
    ],
  • "zeromq_preview": {
    },
  • "zeromq_metadata": {
    },
  • "pixel_mask": {
    }
}

Get data collection statistics

Results of the last data collection

Responses

Response samples

Content type
application/json
{
  • "file_prefix": "string",
  • "run_number": 0,
  • "experiment_group": "string",
  • "images_expected": 0,
  • "images_collected": 0,
  • "images_sent": 0,
  • "images_discarded_lossy_compression": 0,
  • "max_image_number_sent": 0,
  • "collection_efficiency": 1,
  • "compression_ratio": 5.3,
  • "cancelled": true,
  • "max_receiver_delay": 0,
  • "indexing_rate": 0.1,
  • "detector_width": 0,
  • "detector_height": 0,
  • "detector_pixel_depth": 2,
  • "bkg_estimate": 0.1,
  • "unit_cell": "string"
}

Get calibration statistics

http://localhost:5232/statistics/data_collection

Response samples

Content type
application/json
{
  • "file_prefix": "string",
  • "run_number": 0,
  • "experiment_group": "string",
  • "images_expected": 0,
  • "images_collected": 0,
  • "images_sent": 0,
  • "images_discarded_lossy_compression": 0,
  • "max_image_number_sent": 0,
  • "collection_efficiency": 1,
  • "compression_ratio": 5.3,
  • "cancelled": true,
  • "max_receiver_delay": 0,
  • "indexing_rate": 0.1,
  • "detector_width": 0,
  • "detector_height": 0,
  • "detector_pixel_depth": 2,
  • "bkg_estimate": 0.1,
  • "unit_cell": "string"
}

Get calibration statistics

Statistics are provided for each module/storage cell separately

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get last preview image in JPEG format using custom settings

Request Body schema: application/json
saturation
required
integer <int64> [ 0 .. 65535 ]
http://localhost:5232/statistics/calibration

Response samples

Content type
application/json
[
  • {
    }
]

Get last preview image in JPEG format using custom settings

Request Body schema: application/json
saturation
required
integer <int64> [ 0 .. 65535 ]

Saturation value to set contrast in the preview image

show_spots
boolean
Default: true

Show spot finding results on the image

@@ -1143,7 +1195,7 @@ Address follows ZeroMQ convention for sockets - in practice ipc:// " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Request samples

Content type
application/json
{
  • "saturation": 65535,
  • "show_spots": true,
  • "show_roi": false,
  • "jpeg_quality": 100,
  • "show_indexed": false,
  • "show_user_mask": false,
  • "resolution_ring": 0.1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get last preview image in JPEG format using default settings

Responses

Request samples

Content type
application/json
{
  • "saturation": 65535,
  • "show_spots": true,
  • "show_roi": false,
  • "jpeg_quality": 100,
  • "show_indexed": false,
  • "show_user_mask": false,
  • "resolution_ring": 0.1
}

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get last preview image in JPEG format using default settings

Responses

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get mask of the detector (TIFF)

http://localhost:5232/config/user_mask

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get mask of the detector (TIFF)

Get full pixel mask of the detector See NXmx standard for meaning of pixel values

@@ -1233,7 +1285,7 @@ User mask is not automatically applied - i.e. pixels with user mask will have a " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Error within Jungfraujoch code - see output message.

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get pedestal in TIFF format

query Parameters
gain_level
required
integer
http://localhost:5232/config/user_mask.tiff

Response samples

Content type
application/json
{
  • "msg": "Detector in wrong state",
  • "reason": "WrongDAQState"
}

Get pedestal in TIFF format

query Parameters
gain_level
required
integer

Gain level (0, 1, 2)

sc
integer

Storage cell number

@@ -1249,7 +1301,7 @@ User mask is not automatically applied - i.e. pixels with user mask will have a " class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA">

Test Jungfraujoch system

http://localhost:5232/version