diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 55f8ccca..d17e2cb5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -15,7 +15,7 @@ build:x86:gcc: script: - mkdir build - cd build - - source /opt/rh/gcc-toolset-12/enable + - source /opt/rh/gcc-toolset-12/enable - cmake -DCMAKE_BUILD_TYPE=Release .. - make -j48 @@ -111,7 +111,7 @@ test:x86:gcc: - gcc - x86 script: - - source /opt/rh/gcc-toolset-12/enable + - source /opt/rh/gcc-toolset-12/enable - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. @@ -139,7 +139,7 @@ test:x86:crystfel: - x86 - crystfel script: - - source /opt/rh/gcc-toolset-12/enable + - source /opt/rh/gcc-toolset-12/enable - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. @@ -162,7 +162,7 @@ test:x86:xds_durin: - x86 - xds script: - - source /opt/rh/gcc-toolset-12/enable + - source /opt/rh/gcc-toolset-12/enable - mkdir -p build - cd build - cmake -DCMAKE_BUILD_TYPE=Release .. @@ -208,7 +208,7 @@ test:x86:xia2.ssx: - x86 - xds script: - - source /opt/rh/gcc-toolset-12/enable + - source /opt/rh/gcc-toolset-12/enable - mkdir -p build - mkdir -p dials_test - cd build diff --git a/broker/JFJochBrokerHttp.cpp b/broker/JFJochBrokerHttp.cpp index 4d0c3ba0..89b5a23f 100644 --- a/broker/JFJochBrokerHttp.cpp +++ b/broker/JFJochBrokerHttp.cpp @@ -493,6 +493,12 @@ void JFJochBrokerHttp::statistics_get(const std::optional &compression, Pi if (det_status.has_value()) statistics.setDetector(Convert(det_status.value())); + statistics.setDetectorSettings(Convert(state_machine.GetDetectorSettings())); + statistics.setDetectorList(Convert(state_machine.GetDetectorsList())); + statistics.setDataProcessingSettings(Convert(state_machine.GetSpotFindingSettings())); + statistics.setInstrumentMetadata(Convert(state_machine.GetInstrumentMetadata())); + statistics.setImageFormatSettings(Convert(state_machine.GetImageFormatSettings())); + nlohmann::json j = statistics; if (!compression.has_value() || compression.value()) response.setCompression(Pistache::Http::Header::Encoding::Deflate); diff --git a/broker/gen/model/Jfjoch_statistics.cpp b/broker/gen/model/Jfjoch_statistics.cpp index c50ac4d3..cf1e7371 100644 --- a/broker/gen/model/Jfjoch_statistics.cpp +++ b/broker/gen/model/Jfjoch_statistics.cpp @@ -22,6 +22,11 @@ namespace org::openapitools::server::model Jfjoch_statistics::Jfjoch_statistics() { m_DetectorIsSet = false; + m_Detector_listIsSet = false; + m_Detector_settingsIsSet = false; + m_Image_format_settingsIsSet = false; + m_Instrument_metadataIsSet = false; + m_Data_processing_settingsIsSet = false; m_MeasurementIsSet = false; m_BrokerIsSet = false; m_FpgaIsSet = false; @@ -48,7 +53,7 @@ bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& path bool success = true; const std::string _pathPrefix = pathPrefix.empty() ? "Jfjoch_statistics" : pathPrefix; - + if (fpgaIsSet()) { const std::vector& value = m_Fpga; @@ -103,6 +108,21 @@ bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const ((!detectorIsSet() && !rhs.detectorIsSet()) || (detectorIsSet() && rhs.detectorIsSet() && getDetector() == rhs.getDetector())) && + ((!detectorListIsSet() && !rhs.detectorListIsSet()) || (detectorListIsSet() && rhs.detectorListIsSet() && getDetectorList() == rhs.getDetectorList())) && + + + ((!detectorSettingsIsSet() && !rhs.detectorSettingsIsSet()) || (detectorSettingsIsSet() && rhs.detectorSettingsIsSet() && getDetectorSettings() == rhs.getDetectorSettings())) && + + + ((!imageFormatSettingsIsSet() && !rhs.imageFormatSettingsIsSet()) || (imageFormatSettingsIsSet() && rhs.imageFormatSettingsIsSet() && getImageFormatSettings() == rhs.getImageFormatSettings())) && + + + ((!instrumentMetadataIsSet() && !rhs.instrumentMetadataIsSet()) || (instrumentMetadataIsSet() && rhs.instrumentMetadataIsSet() && getInstrumentMetadata() == rhs.getInstrumentMetadata())) && + + + ((!dataProcessingSettingsIsSet() && !rhs.dataProcessingSettingsIsSet()) || (dataProcessingSettingsIsSet() && rhs.dataProcessingSettingsIsSet() && getDataProcessingSettings() == rhs.getDataProcessingSettings())) && + + ((!measurementIsSet() && !rhs.measurementIsSet()) || (measurementIsSet() && rhs.measurementIsSet() && getMeasurement() == rhs.getMeasurement())) && @@ -127,6 +147,16 @@ void to_json(nlohmann::json& j, const Jfjoch_statistics& o) j = nlohmann::json::object(); if(o.detectorIsSet()) j["detector"] = o.m_Detector; + if(o.detectorListIsSet()) + j["detector_list"] = o.m_Detector_list; + if(o.detectorSettingsIsSet()) + j["detector_settings"] = o.m_Detector_settings; + if(o.imageFormatSettingsIsSet()) + j["image_format_settings"] = o.m_Image_format_settings; + if(o.instrumentMetadataIsSet()) + j["instrument_metadata"] = o.m_Instrument_metadata; + if(o.dataProcessingSettingsIsSet()) + j["data_processing_settings"] = o.m_Data_processing_settings; if(o.measurementIsSet()) j["measurement"] = o.m_Measurement; if(o.brokerIsSet()) @@ -145,6 +175,31 @@ void from_json(const nlohmann::json& j, Jfjoch_statistics& o) j.at("detector").get_to(o.m_Detector); o.m_DetectorIsSet = true; } + if(j.find("detector_list") != j.end()) + { + j.at("detector_list").get_to(o.m_Detector_list); + o.m_Detector_listIsSet = true; + } + if(j.find("detector_settings") != j.end()) + { + j.at("detector_settings").get_to(o.m_Detector_settings); + o.m_Detector_settingsIsSet = true; + } + if(j.find("image_format_settings") != j.end()) + { + j.at("image_format_settings").get_to(o.m_Image_format_settings); + o.m_Image_format_settingsIsSet = true; + } + if(j.find("instrument_metadata") != j.end()) + { + j.at("instrument_metadata").get_to(o.m_Instrument_metadata); + o.m_Instrument_metadataIsSet = true; + } + if(j.find("data_processing_settings") != j.end()) + { + j.at("data_processing_settings").get_to(o.m_Data_processing_settings); + o.m_Data_processing_settingsIsSet = true; + } if(j.find("measurement") != j.end()) { j.at("measurement").get_to(o.m_Measurement); @@ -185,6 +240,91 @@ void Jfjoch_statistics::unsetDetector() { m_DetectorIsSet = false; } +org::openapitools::server::model::Detector_list Jfjoch_statistics::getDetectorList() const +{ + return m_Detector_list; +} +void Jfjoch_statistics::setDetectorList(org::openapitools::server::model::Detector_list const& value) +{ + m_Detector_list = value; + m_Detector_listIsSet = true; +} +bool Jfjoch_statistics::detectorListIsSet() const +{ + return m_Detector_listIsSet; +} +void Jfjoch_statistics::unsetDetector_list() +{ + m_Detector_listIsSet = false; +} +org::openapitools::server::model::Detector_settings Jfjoch_statistics::getDetectorSettings() const +{ + return m_Detector_settings; +} +void Jfjoch_statistics::setDetectorSettings(org::openapitools::server::model::Detector_settings const& value) +{ + m_Detector_settings = value; + m_Detector_settingsIsSet = true; +} +bool Jfjoch_statistics::detectorSettingsIsSet() const +{ + return m_Detector_settingsIsSet; +} +void Jfjoch_statistics::unsetDetector_settings() +{ + m_Detector_settingsIsSet = false; +} +org::openapitools::server::model::Image_format_settings Jfjoch_statistics::getImageFormatSettings() const +{ + return m_Image_format_settings; +} +void Jfjoch_statistics::setImageFormatSettings(org::openapitools::server::model::Image_format_settings const& value) +{ + m_Image_format_settings = value; + m_Image_format_settingsIsSet = true; +} +bool Jfjoch_statistics::imageFormatSettingsIsSet() const +{ + return m_Image_format_settingsIsSet; +} +void Jfjoch_statistics::unsetImage_format_settings() +{ + m_Image_format_settingsIsSet = false; +} +org::openapitools::server::model::Instrument_metadata Jfjoch_statistics::getInstrumentMetadata() const +{ + return m_Instrument_metadata; +} +void Jfjoch_statistics::setInstrumentMetadata(org::openapitools::server::model::Instrument_metadata const& value) +{ + m_Instrument_metadata = value; + m_Instrument_metadataIsSet = true; +} +bool Jfjoch_statistics::instrumentMetadataIsSet() const +{ + return m_Instrument_metadataIsSet; +} +void Jfjoch_statistics::unsetInstrument_metadata() +{ + m_Instrument_metadataIsSet = false; +} +org::openapitools::server::model::Spot_finding_settings Jfjoch_statistics::getDataProcessingSettings() const +{ + return m_Data_processing_settings; +} +void Jfjoch_statistics::setDataProcessingSettings(org::openapitools::server::model::Spot_finding_settings const& value) +{ + m_Data_processing_settings = value; + m_Data_processing_settingsIsSet = true; +} +bool Jfjoch_statistics::dataProcessingSettingsIsSet() const +{ + return m_Data_processing_settingsIsSet; +} +void Jfjoch_statistics::unsetData_processing_settings() +{ + m_Data_processing_settingsIsSet = false; +} org::openapitools::server::model::Measurement_statistics Jfjoch_statistics::getMeasurement() const { return m_Measurement; diff --git a/broker/gen/model/Jfjoch_statistics.h b/broker/gen/model/Jfjoch_statistics.h index 25994bff..797c5cc4 100644 --- a/broker/gen/model/Jfjoch_statistics.h +++ b/broker/gen/model/Jfjoch_statistics.h @@ -23,7 +23,12 @@ #include "Detector_status.h" #include "Broker_status.h" #include "Measurement_statistics.h" +#include "Spot_finding_settings.h" +#include "Detector_list.h" #include "Fpga_status_inner.h" +#include "Image_format_settings.h" +#include "Detector_settings.h" +#include "Instrument_metadata.h" #include #include @@ -73,6 +78,41 @@ public: /// /// /// + org::openapitools::server::model::Detector_list getDetectorList() const; + void setDetectorList(org::openapitools::server::model::Detector_list const& value); + bool detectorListIsSet() const; + void unsetDetector_list(); + /// + /// + /// + org::openapitools::server::model::Detector_settings getDetectorSettings() const; + void setDetectorSettings(org::openapitools::server::model::Detector_settings const& value); + bool detectorSettingsIsSet() const; + void unsetDetector_settings(); + /// + /// + /// + org::openapitools::server::model::Image_format_settings getImageFormatSettings() const; + void setImageFormatSettings(org::openapitools::server::model::Image_format_settings const& value); + bool imageFormatSettingsIsSet() const; + void unsetImage_format_settings(); + /// + /// + /// + org::openapitools::server::model::Instrument_metadata getInstrumentMetadata() const; + void setInstrumentMetadata(org::openapitools::server::model::Instrument_metadata const& value); + bool instrumentMetadataIsSet() const; + void unsetInstrument_metadata(); + /// + /// + /// + org::openapitools::server::model::Spot_finding_settings getDataProcessingSettings() const; + void setDataProcessingSettings(org::openapitools::server::model::Spot_finding_settings const& value); + bool dataProcessingSettingsIsSet() const; + void unsetData_processing_settings(); + /// + /// + /// org::openapitools::server::model::Measurement_statistics getMeasurement() const; void setMeasurement(org::openapitools::server::model::Measurement_statistics const& value); bool measurementIsSet() const; @@ -104,6 +144,16 @@ public: protected: org::openapitools::server::model::Detector_status m_Detector; bool m_DetectorIsSet; + org::openapitools::server::model::Detector_list m_Detector_list; + bool m_Detector_listIsSet; + org::openapitools::server::model::Detector_settings m_Detector_settings; + bool m_Detector_settingsIsSet; + org::openapitools::server::model::Image_format_settings m_Image_format_settings; + bool m_Image_format_settingsIsSet; + org::openapitools::server::model::Instrument_metadata m_Instrument_metadata; + bool m_Instrument_metadataIsSet; + org::openapitools::server::model::Spot_finding_settings m_Data_processing_settings; + bool m_Data_processing_settingsIsSet; org::openapitools::server::model::Measurement_statistics m_Measurement; bool m_MeasurementIsSet; org::openapitools::server::model::Broker_status m_Broker; diff --git a/broker/jfjoch_api.yaml b/broker/jfjoch_api.yaml index f9162f2c..8b095326 100644 --- a/broker/jfjoch_api.yaml +++ b/broker/jfjoch_api.yaml @@ -566,6 +566,7 @@ components: - height - serial_number - base_ipv4_addr + - udp_interface_count properties: id: type: integer @@ -820,6 +821,16 @@ components: properties: detector: $ref: '#/components/schemas/detector_status' + detector_list: + $ref: '#/components/schemas/detector_list' + detector_settings: + $ref: '#/components/schemas/detector_settings' + image_format_settings: + $ref: '#/components/schemas/image_format_settings' + instrument_metadata: + $ref: '#/components/schemas/instrument_metadata' + data_processing_settings: + $ref: '#/components/schemas/spot_finding_settings' measurement: $ref: '#/components/schemas/measurement_statistics' broker: diff --git a/broker/redoc-static.html b/broker/redoc-static.html index 3f1e4f30..19d36d19 100644 --- a/broker/redoc-static.html +++ b/broker/redoc-static.html @@ -1029,7 +1029,7 @@ Changing detector will set detector to Inactive state and will requ " class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES">

Everything OK

Response samples

Content type
application/json
{
  • "detector": {
    },
  • "measurement": {
    },
  • "broker": {
    },
  • "fpga": [
    ],
  • "calibration": [
    ]
}

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": [
    ]
}

Get data collection statistics

Results of the last data collection

Responses