Merge branch '2410-1.0.0-rc.17-2' into 'main'
version 1.0.0-rc.17 See merge request jungfraujoch/nextgendcu!84
This commit is contained in:
@@ -0,0 +1,329 @@
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- synthesis
|
||||
- release
|
||||
|
||||
build:x86:gcc:
|
||||
stage: build
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
needs: []
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j48
|
||||
|
||||
build:x86:gcc_writer:
|
||||
stage: build
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
needs: []
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_WRITER_ONLY=ON ..
|
||||
- make -j48
|
||||
|
||||
build:x86:driver:
|
||||
stage: build
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
needs: []
|
||||
script:
|
||||
- cd fpga/pcie_driver
|
||||
- make
|
||||
|
||||
build:x86:python_client:
|
||||
stage: build
|
||||
needs: []
|
||||
tags:
|
||||
- python
|
||||
script:
|
||||
- cd python-client
|
||||
- python3 setup.py sdist bdist_wheel
|
||||
- mv dist/* ..
|
||||
artifacts:
|
||||
paths:
|
||||
- jfjoch_client-*whl
|
||||
- jfjoch_client-*tar.gz
|
||||
expire_in: 1 week
|
||||
|
||||
build:x86:vitis_hls:
|
||||
stage: build
|
||||
tags:
|
||||
- x86
|
||||
needs: []
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/microblaze/*
|
||||
- fpga/include/jfjoch_fpga.h
|
||||
script:
|
||||
- source /opt/Xilinx/Vitis_HLS/2022.1/settings64.sh
|
||||
- mkdir build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make hls
|
||||
|
||||
build:x86:frontend:
|
||||
stage: build
|
||||
tags:
|
||||
- x86
|
||||
needs: []
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make frontend
|
||||
- cd ../frontend/dist
|
||||
- tar czf ../../jfjoch_frontend.tar.gz *
|
||||
artifacts:
|
||||
paths:
|
||||
- jfjoch_frontend.tar.gz
|
||||
expire_in: 1 week
|
||||
|
||||
build:x86:rpm:
|
||||
stage: build
|
||||
tags:
|
||||
- x86
|
||||
needs: []
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make frontend
|
||||
- make -j48 package
|
||||
- mv *.rpm ..
|
||||
artifacts:
|
||||
paths:
|
||||
- "*.rpm"
|
||||
expire_in: 1 week
|
||||
|
||||
test:x86:gcc:
|
||||
stage: test
|
||||
timeout: 90m
|
||||
variables:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
needs: ["build:x86:gcc"]
|
||||
dependencies: []
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j48 jfjoch_test HDF5DatasetWriteTest
|
||||
- cd tests
|
||||
- ./jfjoch_test -r junit -o report.xml
|
||||
- cd ../tools
|
||||
- ./HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
reports:
|
||||
junit: build/tests/report.xml
|
||||
|
||||
test:x86:crystfel:
|
||||
stage: test
|
||||
timeout: 90m
|
||||
variables:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
needs: ["build:x86:gcc"]
|
||||
dependencies: []
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
- crystfel
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j8 HDF5DatasetWriteTest
|
||||
- cd ../tests/crystfel
|
||||
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 10
|
||||
- indexamajig -i writing_test.lst -g jf4m.geom -o x.stream --indexing=xgandalf
|
||||
|
||||
test:x86:xds_durin:
|
||||
stage: test
|
||||
timeout: 90m
|
||||
variables:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
needs: ["build:x86:gcc"]
|
||||
dependencies: []
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
- xds
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j8 HDF5DatasetWriteTest
|
||||
- cd ../tests/xds_durin
|
||||
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25
|
||||
- xds_par |grep -a1 ISa |tail -n1
|
||||
|
||||
test:x86:xds_neggia:
|
||||
stage: test
|
||||
timeout: 90m
|
||||
variables:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
needs: ["build:x86:gcc"]
|
||||
dependencies: []
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
- xds
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j8 HDF5DatasetWriteTest
|
||||
- cd ../tests/xds_neggia
|
||||
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25
|
||||
- xds_par |grep -a1 ISa |tail -n1
|
||||
|
||||
test:x86:xia2.ssx:
|
||||
stage: test
|
||||
timeout: 90m
|
||||
variables:
|
||||
CTEST_OUTPUT_ON_FAILURE: 1
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
needs: ["build:x86:gcc"]
|
||||
dependencies: []
|
||||
tags:
|
||||
- gcc
|
||||
- x86
|
||||
- xds
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- mkdir -p build
|
||||
- mkdir -p dials_test
|
||||
- cd build
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
- make -j8 HDF5DatasetWriteTest
|
||||
- cd ../dials_test
|
||||
- ../build/tools/HDF5DatasetWriteTest ../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
|
||||
|
||||
synthesis:vivado_pcie_100g:
|
||||
stage: synthesis
|
||||
dependencies: []
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/pcie_driver/jfjoch_fpga.h
|
||||
- if: $CI_COMMIT_MESSAGE =~ /^FPGA/
|
||||
allow_failure: true
|
||||
tags:
|
||||
- vivado
|
||||
retry: 2
|
||||
artifacts:
|
||||
paths:
|
||||
- "jfjoch_fpga_pcie_100g.mcs"
|
||||
expire_in: 1 week
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- source /opt/Xilinx/Vivado/2022.1/settings64.sh
|
||||
- touch jfjoch_fpga_pcie_100g.mcs
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make -j4 pcie_100g
|
||||
- mv fpga/jfjoch_fpga_pcie_100g.mcs ..
|
||||
needs: ["build:x86:gcc", "test:x86:gcc"]
|
||||
|
||||
synthesis:vivado_pcie_8x10g:
|
||||
stage: synthesis
|
||||
dependencies: []
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/pcie_driver/jfjoch_fpga.h
|
||||
- if: $CI_COMMIT_MESSAGE =~ /^FPGA/
|
||||
allow_failure: true
|
||||
tags:
|
||||
- vivado
|
||||
retry: 2
|
||||
artifacts:
|
||||
paths:
|
||||
- "jfjoch_fpga_pcie_8x10g.mcs"
|
||||
expire_in: 1 week
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- source /opt/Xilinx/Vivado/2022.1/settings64.sh
|
||||
- touch jfjoch_fpga_pcie_8x10g.mcs
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make -j4 pcie_8x10g
|
||||
- mv fpga/jfjoch_fpga_pcie_8x10g.mcs ..
|
||||
needs: [ "build:x86:gcc", "test:x86:gcc" ]
|
||||
|
||||
release:
|
||||
stage: release
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
when: manual
|
||||
tags:
|
||||
- x86
|
||||
dependencies:
|
||||
- synthesis:vivado_pcie_8x10g
|
||||
- synthesis:vivado_pcie_100g
|
||||
- build:x86:python_client
|
||||
- build:x86:frontend
|
||||
- build:x86:rpm
|
||||
script:
|
||||
- bash gitlab_upload_release.sh
|
||||
@@ -1,7 +1,6 @@
|
||||
stages:
|
||||
- build
|
||||
- test
|
||||
- synthesis
|
||||
- release
|
||||
|
||||
build:x86:gcc:
|
||||
@@ -64,28 +63,6 @@ build:x86:python_client:
|
||||
- jfjoch_client-*tar.gz
|
||||
expire_in: 1 week
|
||||
|
||||
build:x86:vitis_hls:
|
||||
stage: build
|
||||
tags:
|
||||
- x86
|
||||
needs: []
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/microblaze/*
|
||||
- fpga/include/jfjoch_fpga.h
|
||||
script:
|
||||
- source /opt/Xilinx/Vitis_HLS/2022.1/settings64.sh
|
||||
- mkdir build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make hls
|
||||
|
||||
build:x86:frontend:
|
||||
stage: build
|
||||
tags:
|
||||
@@ -242,76 +219,6 @@ test:x86:xia2.ssx:
|
||||
- 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
|
||||
|
||||
synthesis:vivado_pcie_100g:
|
||||
stage: synthesis
|
||||
dependencies: []
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/pcie_driver/jfjoch_fpga.h
|
||||
- if: $CI_COMMIT_MESSAGE =~ /^FPGA/
|
||||
allow_failure: true
|
||||
tags:
|
||||
- vivado
|
||||
retry: 2
|
||||
artifacts:
|
||||
paths:
|
||||
- "jfjoch_fpga_pcie_100g.mcs"
|
||||
expire_in: 1 week
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- source /opt/Xilinx/Vivado/2022.1/settings64.sh
|
||||
- touch jfjoch_fpga_pcie_100g.mcs
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make -j4 pcie_100g
|
||||
- mv fpga/jfjoch_fpga_pcie_100g.mcs ..
|
||||
needs: ["build:x86:gcc", "test:x86:gcc"]
|
||||
|
||||
synthesis:vivado_pcie_8x10g:
|
||||
stage: synthesis
|
||||
dependencies: []
|
||||
variables:
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes:
|
||||
- fpga/hls/*
|
||||
- fpga/hdl/*
|
||||
- fpga/scripts/*
|
||||
- fpga/xdc/*
|
||||
- fpga/pcie_driver/jfjoch_fpga.h
|
||||
- if: $CI_COMMIT_MESSAGE =~ /^FPGA/
|
||||
allow_failure: true
|
||||
tags:
|
||||
- vivado
|
||||
retry: 2
|
||||
artifacts:
|
||||
paths:
|
||||
- "jfjoch_fpga_pcie_8x10g.mcs"
|
||||
expire_in: 1 week
|
||||
script:
|
||||
- source /opt/rh/gcc-toolset-12/enable
|
||||
- source /opt/Xilinx/Vivado/2022.1/settings64.sh
|
||||
- touch jfjoch_fpga_pcie_8x10g.mcs
|
||||
- mkdir -p build
|
||||
- cd build
|
||||
- /usr/bin/cmake ..
|
||||
- make -j4 pcie_8x10g
|
||||
- mv fpga/jfjoch_fpga_pcie_8x10g.mcs ..
|
||||
needs: [ "build:x86:gcc", "test:x86:gcc" ]
|
||||
|
||||
release:
|
||||
stage: release
|
||||
rules:
|
||||
@@ -320,8 +227,6 @@ release:
|
||||
tags:
|
||||
- x86
|
||||
dependencies:
|
||||
- synthesis:vivado_pcie_8x10g
|
||||
- synthesis:vivado_pcie_100g
|
||||
- build:x86:python_client
|
||||
- build:x86:frontend
|
||||
- build:x86:rpm
|
||||
|
||||
+24
-11
@@ -145,18 +145,9 @@ void JFJochBrokerHttp::plot_azim_int_get(const std::optional<bool>& compression,
|
||||
}
|
||||
|
||||
void JFJochBrokerHttp::statistics_calibration_get(Pistache::Http::ResponseWriter &response) {
|
||||
auto calib = state_machine.GetCalibrationStatistics();
|
||||
nlohmann::json j;
|
||||
|
||||
for (const auto &i: calib) {
|
||||
auto output = Convert(i);
|
||||
std::stringstream s;
|
||||
assert(output.validate(s));
|
||||
|
||||
nlohmann::json j_elem;
|
||||
to_json(j_elem, output);
|
||||
j.push_back(j_elem);
|
||||
}
|
||||
for (const auto &d: Convert(state_machine.GetCalibrationStatistics()))
|
||||
j.push_back(d);
|
||||
response.send(Pistache::Http::Code::Ok, j.dump(), MIME(Application, Json));
|
||||
}
|
||||
|
||||
@@ -486,3 +477,25 @@ void JFJochBrokerHttp::fpga_status_get(Pistache::Http::ResponseWriter &response)
|
||||
j.push_back(d);
|
||||
response.send(Pistache::Http::Code::Ok, j.dump(), MIME(Application, Json));
|
||||
}
|
||||
|
||||
void JFJochBrokerHttp::statistics_get(const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) {
|
||||
org::openapitools::server::model::Jfjoch_statistics statistics;
|
||||
|
||||
auto data_collection_statistics = state_machine.GetMeasurementStatistics();
|
||||
if (data_collection_statistics)
|
||||
statistics.setMeasurement(Convert(data_collection_statistics.value()));
|
||||
|
||||
statistics.setFpga(Convert(state_machine.GetDeviceStatus()));
|
||||
statistics.setCalibration(Convert(state_machine.GetCalibrationStatistics()));
|
||||
statistics.setBroker(Convert(state_machine.GetStatus()));
|
||||
|
||||
auto det_status = state_machine.GetDetectorStatus();
|
||||
if (det_status.has_value())
|
||||
statistics.setDetector(Convert(det_status.value()));
|
||||
|
||||
nlohmann::json j = statistics;
|
||||
if (!compression.has_value() || compression.value())
|
||||
response.setCompression(Pistache::Http::Header::Encoding::Deflate);
|
||||
|
||||
response.send(Pistache::Http::Code::Ok, j.dump(), MIME(Application, Json));
|
||||
}
|
||||
|
||||
@@ -161,6 +161,8 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi {
|
||||
|
||||
void config_image_format_raw_post(Pistache::Http::ResponseWriter &response) override;
|
||||
|
||||
void statistics_get(const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) override;
|
||||
|
||||
public:
|
||||
JFJochBrokerHttp(const DiffractionExperiment& experiment, std::shared_ptr<Pistache::Rest::Router> &rtr);
|
||||
void AddDetectorSetup(const DetectorSetup &setup);
|
||||
|
||||
@@ -224,6 +224,14 @@ org::openapitools::server::model::Calibration_statistics_inner Convert(const JFC
|
||||
return output;
|
||||
}
|
||||
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> Convert(const std::vector<JFCalibrationModuleStatistics>& input) {
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> ret;
|
||||
for (const auto &i: input)
|
||||
ret.push_back(Convert(i));
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
org::openapitools::server::model::Instrument_metadata Convert(const InstrumentMetadata& input) {
|
||||
org::openapitools::server::model::Instrument_metadata output;
|
||||
output.setInstrumentName(input.GetInstrumentName());
|
||||
|
||||
@@ -38,6 +38,7 @@ DetectorSettings Convert(const org::openapitools::server::model::Detector_settin
|
||||
org::openapitools::server::model::Detector_settings Convert(const DetectorSettings &input);
|
||||
org::openapitools::server::model::Broker_status Convert(const BrokerStatus& input);
|
||||
org::openapitools::server::model::Calibration_statistics_inner Convert(const JFCalibrationModuleStatistics& input);
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> Convert(const std::vector<JFCalibrationModuleStatistics>& input);
|
||||
org::openapitools::server::model::Instrument_metadata Convert(const InstrumentMetadata& input);
|
||||
|
||||
InstrumentMetadata Convert(const org::openapitools::server::model::Instrument_metadata &input);
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
@@ -82,6 +82,7 @@ void DefaultApi::setupRoutes() {
|
||||
Routes::Post(*router, base + "/start", Routes::bind(&DefaultApi::start_post_handler, this));
|
||||
Routes::Get(*router, base + "/statistics/calibration", Routes::bind(&DefaultApi::statistics_calibration_get_handler, this));
|
||||
Routes::Get(*router, base + "/statistics/data_collection", Routes::bind(&DefaultApi::statistics_data_collection_get_handler, this));
|
||||
Routes::Get(*router, base + "/statistics", Routes::bind(&DefaultApi::statistics_get_handler, this));
|
||||
Routes::Get(*router, base + "/status", Routes::bind(&DefaultApi::status_get_handler, this));
|
||||
Routes::Post(*router, base + "/trigger", Routes::bind(&DefaultApi::trigger_post_handler, this));
|
||||
Routes::Get(*router, base + "/version", Routes::bind(&DefaultApi::version_get_handler, this));
|
||||
@@ -1396,6 +1397,35 @@ void DefaultApi::statistics_data_collection_get_handler(const Pistache::Rest::Re
|
||||
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
|
||||
}
|
||||
|
||||
}
|
||||
void DefaultApi::statistics_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
|
||||
try {
|
||||
|
||||
|
||||
// Getting the query params
|
||||
auto compressionQuery = request.query().get("compression");
|
||||
std::optional<bool> compression;
|
||||
if(compressionQuery.has_value()){
|
||||
bool valueQuery_instance;
|
||||
if(fromStringValue(compressionQuery.value(), valueQuery_instance)){
|
||||
compression = valueQuery_instance;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
this->statistics_get(compression, response);
|
||||
} catch (Pistache::Http::HttpError &e) {
|
||||
response.send(static_cast<Pistache::Http::Code>(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::status_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
|
||||
try {
|
||||
|
||||
+23
-13
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
@@ -40,6 +40,7 @@
|
||||
#include "Fpga_status_inner.h"
|
||||
#include "Image_format_settings.h"
|
||||
#include "Instrument_metadata.h"
|
||||
#include "Jfjoch_statistics.h"
|
||||
#include "Measurement_statistics.h"
|
||||
#include "Plots.h"
|
||||
#include "Preview_settings.h"
|
||||
@@ -112,6 +113,7 @@ private:
|
||||
void start_post_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void statistics_calibration_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void statistics_data_collection_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void statistics_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void status_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void trigger_post_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
void version_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
|
||||
@@ -335,7 +337,7 @@ private:
|
||||
/// <remarks>
|
||||
/// Generate average radial integration profile
|
||||
/// </remarks>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_azim_int_get(const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate background estimate plot
|
||||
@@ -344,7 +346,7 @@ private:
|
||||
/// Mean intensity for d = 3 - 5 A per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_bkg_estimate_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate error pixels plot
|
||||
@@ -353,7 +355,7 @@ private:
|
||||
/// Count of error (mean) and saturated (mean/max) pixels per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_error_pixel_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate image collection efficiency plot
|
||||
@@ -362,7 +364,7 @@ private:
|
||||
/// Ratio of collected and expected packets per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_image_collection_efficiency_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate indexing rate plot
|
||||
@@ -371,7 +373,7 @@ private:
|
||||
/// Image indexing rate; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_indexing_rate_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate receiver delay plot
|
||||
@@ -380,7 +382,7 @@ private:
|
||||
/// Amount of frames the receiver is behind the FPGA for each image - used for internal debugging; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_receiver_delay_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate receiver free send buffer plot
|
||||
@@ -389,7 +391,7 @@ private:
|
||||
/// Amount of send buffers available during frame processing - used for internal debugging; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_receiver_free_send_buffers_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate plot of ROI max count
|
||||
@@ -398,7 +400,7 @@ private:
|
||||
/// Max count of ROI per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_roi_max_count_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate ROI sum plot
|
||||
@@ -407,7 +409,7 @@ private:
|
||||
/// Sum of ROI rectangle per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_roi_sum_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate plot of ROI valid pixels
|
||||
@@ -416,7 +418,7 @@ private:
|
||||
/// Number of pixels within a ROI area; pixels with special values (overload, bad pixel) are excluded; multipixels are counted just once; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_roi_valid_pixels_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate spot count plot
|
||||
@@ -425,7 +427,7 @@ private:
|
||||
/// Number of spots per image; binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_spot_count_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Generate strong pixels plot
|
||||
@@ -434,7 +436,7 @@ private:
|
||||
/// Count of strong pixels per image (from spot finding); binning is configurable
|
||||
/// </remarks>
|
||||
/// <param name="binning">Binning of frames for the plot (0 = default binning) (optional, default to 0)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data (optional, default to true)</param>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void plot_strong_pixel_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Get last preview image in TIFF format for calibration with PyFAI/Dioptas
|
||||
@@ -527,6 +529,14 @@ private:
|
||||
/// </remarks>
|
||||
virtual void statistics_data_collection_get(Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Get general statistics
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
///
|
||||
/// </remarks>
|
||||
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
|
||||
virtual void statistics_get(const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
|
||||
/// <summary>
|
||||
/// Get Jungfraujoch status
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
/**
|
||||
* 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.17
|
||||
* 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 "Jfjoch_statistics.h"
|
||||
#include "Helpers.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
namespace org::openapitools::server::model
|
||||
{
|
||||
|
||||
Jfjoch_statistics::Jfjoch_statistics()
|
||||
{
|
||||
m_DetectorIsSet = false;
|
||||
m_MeasurementIsSet = false;
|
||||
m_BrokerIsSet = false;
|
||||
m_FpgaIsSet = false;
|
||||
m_CalibrationIsSet = false;
|
||||
|
||||
}
|
||||
|
||||
void Jfjoch_statistics::validate() const
|
||||
{
|
||||
std::stringstream msg;
|
||||
if (!validate(msg))
|
||||
{
|
||||
throw org::openapitools::server::helpers::ValidationException(msg.str());
|
||||
}
|
||||
}
|
||||
|
||||
bool Jfjoch_statistics::validate(std::stringstream& msg) const
|
||||
{
|
||||
return validate(msg, "");
|
||||
}
|
||||
|
||||
bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& pathPrefix) const
|
||||
{
|
||||
bool success = true;
|
||||
const std::string _pathPrefix = pathPrefix.empty() ? "Jfjoch_statistics" : pathPrefix;
|
||||
|
||||
|
||||
if (fpgaIsSet())
|
||||
{
|
||||
const std::vector<org::openapitools::server::model::Fpga_status_inner>& value = m_Fpga;
|
||||
const std::string currentValuePath = _pathPrefix + ".fpga";
|
||||
|
||||
|
||||
{ // Recursive validation of array elements
|
||||
const std::string oldValuePath = currentValuePath;
|
||||
int i = 0;
|
||||
for (const org::openapitools::server::model::Fpga_status_inner& value : value)
|
||||
{
|
||||
const std::string currentValuePath = oldValuePath + "[" + std::to_string(i) + "]";
|
||||
|
||||
success = value.validate(msg, currentValuePath + ".fpga") && success;
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (calibrationIsSet())
|
||||
{
|
||||
const std::vector<org::openapitools::server::model::Calibration_statistics_inner>& value = m_Calibration;
|
||||
const std::string currentValuePath = _pathPrefix + ".calibration";
|
||||
|
||||
|
||||
{ // Recursive validation of array elements
|
||||
const std::string oldValuePath = currentValuePath;
|
||||
int i = 0;
|
||||
for (const org::openapitools::server::model::Calibration_statistics_inner& value : value)
|
||||
{
|
||||
const std::string currentValuePath = oldValuePath + "[" + std::to_string(i) + "]";
|
||||
|
||||
success = value.validate(msg, currentValuePath + ".calibration") && success;
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const
|
||||
{
|
||||
return
|
||||
|
||||
|
||||
|
||||
((!detectorIsSet() && !rhs.detectorIsSet()) || (detectorIsSet() && rhs.detectorIsSet() && getDetector() == rhs.getDetector())) &&
|
||||
|
||||
|
||||
((!measurementIsSet() && !rhs.measurementIsSet()) || (measurementIsSet() && rhs.measurementIsSet() && getMeasurement() == rhs.getMeasurement())) &&
|
||||
|
||||
|
||||
((!brokerIsSet() && !rhs.brokerIsSet()) || (brokerIsSet() && rhs.brokerIsSet() && getBroker() == rhs.getBroker())) &&
|
||||
|
||||
|
||||
((!fpgaIsSet() && !rhs.fpgaIsSet()) || (fpgaIsSet() && rhs.fpgaIsSet() && getFpga() == rhs.getFpga())) &&
|
||||
|
||||
|
||||
((!calibrationIsSet() && !rhs.calibrationIsSet()) || (calibrationIsSet() && rhs.calibrationIsSet() && getCalibration() == rhs.getCalibration()))
|
||||
|
||||
;
|
||||
}
|
||||
|
||||
bool Jfjoch_statistics::operator!=(const Jfjoch_statistics& rhs) const
|
||||
{
|
||||
return !(*this == rhs);
|
||||
}
|
||||
|
||||
void to_json(nlohmann::json& j, const Jfjoch_statistics& o)
|
||||
{
|
||||
j = nlohmann::json::object();
|
||||
if(o.detectorIsSet())
|
||||
j["detector"] = o.m_Detector;
|
||||
if(o.measurementIsSet())
|
||||
j["measurement"] = o.m_Measurement;
|
||||
if(o.brokerIsSet())
|
||||
j["broker"] = o.m_Broker;
|
||||
if(o.fpgaIsSet() || !o.m_Fpga.empty())
|
||||
j["fpga"] = o.m_Fpga;
|
||||
if(o.calibrationIsSet() || !o.m_Calibration.empty())
|
||||
j["calibration"] = o.m_Calibration;
|
||||
|
||||
}
|
||||
|
||||
void from_json(const nlohmann::json& j, Jfjoch_statistics& o)
|
||||
{
|
||||
if(j.find("detector") != j.end())
|
||||
{
|
||||
j.at("detector").get_to(o.m_Detector);
|
||||
o.m_DetectorIsSet = true;
|
||||
}
|
||||
if(j.find("measurement") != j.end())
|
||||
{
|
||||
j.at("measurement").get_to(o.m_Measurement);
|
||||
o.m_MeasurementIsSet = true;
|
||||
}
|
||||
if(j.find("broker") != j.end())
|
||||
{
|
||||
j.at("broker").get_to(o.m_Broker);
|
||||
o.m_BrokerIsSet = true;
|
||||
}
|
||||
if(j.find("fpga") != j.end())
|
||||
{
|
||||
j.at("fpga").get_to(o.m_Fpga);
|
||||
o.m_FpgaIsSet = true;
|
||||
}
|
||||
if(j.find("calibration") != j.end())
|
||||
{
|
||||
j.at("calibration").get_to(o.m_Calibration);
|
||||
o.m_CalibrationIsSet = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
org::openapitools::server::model::Detector_status Jfjoch_statistics::getDetector() const
|
||||
{
|
||||
return m_Detector;
|
||||
}
|
||||
void Jfjoch_statistics::setDetector(org::openapitools::server::model::Detector_status const& value)
|
||||
{
|
||||
m_Detector = value;
|
||||
m_DetectorIsSet = true;
|
||||
}
|
||||
bool Jfjoch_statistics::detectorIsSet() const
|
||||
{
|
||||
return m_DetectorIsSet;
|
||||
}
|
||||
void Jfjoch_statistics::unsetDetector()
|
||||
{
|
||||
m_DetectorIsSet = false;
|
||||
}
|
||||
org::openapitools::server::model::Measurement_statistics Jfjoch_statistics::getMeasurement() const
|
||||
{
|
||||
return m_Measurement;
|
||||
}
|
||||
void Jfjoch_statistics::setMeasurement(org::openapitools::server::model::Measurement_statistics const& value)
|
||||
{
|
||||
m_Measurement = value;
|
||||
m_MeasurementIsSet = true;
|
||||
}
|
||||
bool Jfjoch_statistics::measurementIsSet() const
|
||||
{
|
||||
return m_MeasurementIsSet;
|
||||
}
|
||||
void Jfjoch_statistics::unsetMeasurement()
|
||||
{
|
||||
m_MeasurementIsSet = false;
|
||||
}
|
||||
org::openapitools::server::model::Broker_status Jfjoch_statistics::getBroker() const
|
||||
{
|
||||
return m_Broker;
|
||||
}
|
||||
void Jfjoch_statistics::setBroker(org::openapitools::server::model::Broker_status const& value)
|
||||
{
|
||||
m_Broker = value;
|
||||
m_BrokerIsSet = true;
|
||||
}
|
||||
bool Jfjoch_statistics::brokerIsSet() const
|
||||
{
|
||||
return m_BrokerIsSet;
|
||||
}
|
||||
void Jfjoch_statistics::unsetBroker()
|
||||
{
|
||||
m_BrokerIsSet = false;
|
||||
}
|
||||
std::vector<org::openapitools::server::model::Fpga_status_inner> Jfjoch_statistics::getFpga() const
|
||||
{
|
||||
return m_Fpga;
|
||||
}
|
||||
void Jfjoch_statistics::setFpga(std::vector<org::openapitools::server::model::Fpga_status_inner> const& value)
|
||||
{
|
||||
m_Fpga = value;
|
||||
m_FpgaIsSet = true;
|
||||
}
|
||||
bool Jfjoch_statistics::fpgaIsSet() const
|
||||
{
|
||||
return m_FpgaIsSet;
|
||||
}
|
||||
void Jfjoch_statistics::unsetFpga()
|
||||
{
|
||||
m_FpgaIsSet = false;
|
||||
}
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> Jfjoch_statistics::getCalibration() const
|
||||
{
|
||||
return m_Calibration;
|
||||
}
|
||||
void Jfjoch_statistics::setCalibration(std::vector<org::openapitools::server::model::Calibration_statistics_inner> const& value)
|
||||
{
|
||||
m_Calibration = value;
|
||||
m_CalibrationIsSet = true;
|
||||
}
|
||||
bool Jfjoch_statistics::calibrationIsSet() const
|
||||
{
|
||||
return m_CalibrationIsSet;
|
||||
}
|
||||
void Jfjoch_statistics::unsetCalibration()
|
||||
{
|
||||
m_CalibrationIsSet = false;
|
||||
}
|
||||
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
/**
|
||||
* 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.17
|
||||
* 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.
|
||||
*/
|
||||
/*
|
||||
* Jfjoch_statistics.h
|
||||
*
|
||||
* Pool statistics for Jungfraujoch to reduce transfers between frontend and jfjoch_broker
|
||||
*/
|
||||
|
||||
#ifndef Jfjoch_statistics_H_
|
||||
#define Jfjoch_statistics_H_
|
||||
|
||||
|
||||
#include "Calibration_statistics_inner.h"
|
||||
#include "Detector_status.h"
|
||||
#include "Broker_status.h"
|
||||
#include "Measurement_statistics.h"
|
||||
#include "Fpga_status_inner.h"
|
||||
#include <vector>
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
namespace org::openapitools::server::model
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Pool statistics for Jungfraujoch to reduce transfers between frontend and jfjoch_broker
|
||||
/// </summary>
|
||||
class Jfjoch_statistics
|
||||
{
|
||||
public:
|
||||
Jfjoch_statistics();
|
||||
virtual ~Jfjoch_statistics() = default;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Validate the current data in the model. Throws a ValidationException on failure.
|
||||
/// </summary>
|
||||
void validate() const;
|
||||
|
||||
/// <summary>
|
||||
/// Validate the current data in the model. Returns false on error and writes an error
|
||||
/// message into the given stringstream.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const Jfjoch_statistics& rhs) const;
|
||||
bool operator!=(const Jfjoch_statistics& rhs) const;
|
||||
|
||||
/////////////////////////////////////////////
|
||||
/// Jfjoch_statistics members
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
org::openapitools::server::model::Detector_status getDetector() const;
|
||||
void setDetector(org::openapitools::server::model::Detector_status const& value);
|
||||
bool detectorIsSet() const;
|
||||
void unsetDetector();
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
org::openapitools::server::model::Measurement_statistics getMeasurement() const;
|
||||
void setMeasurement(org::openapitools::server::model::Measurement_statistics const& value);
|
||||
bool measurementIsSet() const;
|
||||
void unsetMeasurement();
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
org::openapitools::server::model::Broker_status getBroker() const;
|
||||
void setBroker(org::openapitools::server::model::Broker_status const& value);
|
||||
bool brokerIsSet() const;
|
||||
void unsetBroker();
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
std::vector<org::openapitools::server::model::Fpga_status_inner> getFpga() const;
|
||||
void setFpga(std::vector<org::openapitools::server::model::Fpga_status_inner> const& value);
|
||||
bool fpgaIsSet() const;
|
||||
void unsetFpga();
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> getCalibration() const;
|
||||
void setCalibration(std::vector<org::openapitools::server::model::Calibration_statistics_inner> const& value);
|
||||
bool calibrationIsSet() const;
|
||||
void unsetCalibration();
|
||||
|
||||
friend void to_json(nlohmann::json& j, const Jfjoch_statistics& o);
|
||||
friend void from_json(const nlohmann::json& j, Jfjoch_statistics& o);
|
||||
protected:
|
||||
org::openapitools::server::model::Detector_status m_Detector;
|
||||
bool m_DetectorIsSet;
|
||||
org::openapitools::server::model::Measurement_statistics m_Measurement;
|
||||
bool m_MeasurementIsSet;
|
||||
org::openapitools::server::model::Broker_status m_Broker;
|
||||
bool m_BrokerIsSet;
|
||||
std::vector<org::openapitools::server::model::Fpga_status_inner> m_Fpga;
|
||||
bool m_FpgaIsSet;
|
||||
std::vector<org::openapitools::server::model::Calibration_statistics_inner> m_Calibration;
|
||||
bool m_CalibrationIsSet;
|
||||
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
||||
#endif /* 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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
@@ -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.16
|
||||
* The version of the OpenAPI document: 1.0.0-rc.17
|
||||
* Contact: filip.leonarski@psi.ch
|
||||
*
|
||||
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
||||
|
||||
+27
-1
@@ -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.16
|
||||
version: 1.0.0-rc.17
|
||||
contact:
|
||||
name: Filip Leonarski (Paul Scherrer Institute)
|
||||
email: filip.leonarski@psi.ch
|
||||
@@ -814,6 +814,20 @@ components:
|
||||
masked_pixels:
|
||||
type: integer
|
||||
format: int64
|
||||
jfjoch_statistics:
|
||||
type: object
|
||||
description: "Pool statistics for Jungfraujoch to reduce transfers between frontend and jfjoch_broker"
|
||||
properties:
|
||||
detector:
|
||||
$ref: '#/components/schemas/detector_status'
|
||||
measurement:
|
||||
$ref: '#/components/schemas/measurement_statistics'
|
||||
broker:
|
||||
$ref: '#/components/schemas/broker_status'
|
||||
fpga:
|
||||
$ref: '#/components/schemas/fpga_status'
|
||||
calibration:
|
||||
$ref: '#/components/schemas/calibration_statistics'
|
||||
preview_settings:
|
||||
type: object
|
||||
description: "Settings for JPEG rendering of preview images"
|
||||
@@ -2048,6 +2062,18 @@ paths:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/plots'
|
||||
/statistics:
|
||||
get:
|
||||
summary: Get general statistics
|
||||
parameters:
|
||||
- $ref: '#/components/parameters/compression'
|
||||
responses:
|
||||
"200":
|
||||
description: Everything OK
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/jfjoch_statistics'
|
||||
/statistics/data_collection:
|
||||
get:
|
||||
summary: Get data collection statistics
|
||||
|
||||
+38
-32
File diff suppressed because one or more lines are too long
@@ -35,7 +35,8 @@
|
||||
|
||||
#define MASK_PEDESTAL_G0_RMS_LIMIT (1U<<4)
|
||||
|
||||
#define PEDESTAL_MIN_IMAGE_COUNT 128
|
||||
#define PEDESTAL_WRONG 16384
|
||||
#define PEDESTAL_MIN_IMAGE_COUNT 128
|
||||
#define PEDESTAL_WRONG 16384
|
||||
#define PEDESTAL_G0_WRONG_GAIN_ALLOWED_COUNT 2
|
||||
|
||||
#endif //DEFINITIONS_H
|
||||
|
||||
+8
-10
@@ -104,10 +104,9 @@ void HLSDevice::SendPacket(char *buffer, int len, uint8_t user) {
|
||||
|
||||
void HLSDevice::CreateJFPacket(const DiffractionExperiment& experiment, uint64_t frame_number, uint32_t eth_packet,
|
||||
uint32_t module_number, const uint16_t *data, int8_t adjust_axis, uint8_t user) {
|
||||
char buff[256*64];
|
||||
memset(buff, 0, 256*64);
|
||||
std::vector<char> buff(256*64);
|
||||
|
||||
auto packet = (jf_raw_packet *)buff;
|
||||
auto packet = (jf_raw_packet *)buff.data();
|
||||
|
||||
packet->ether_type = htons(0x0800);
|
||||
packet->sour_mac[0] = 0x00; // module 0
|
||||
@@ -142,9 +141,9 @@ void HLSDevice::CreateJFPacket(const DiffractionExperiment& experiment, uint64_t
|
||||
for (int i = 0; i < 4096; i++)
|
||||
packet->jf.data[i] = data[i];
|
||||
}
|
||||
packet->udp_checksum = htons(checksum( (uint16_t *) (buff+42), 8192+48));
|
||||
packet->udp_checksum = htons(checksum( (uint16_t *) (buff.data()+42), 8192+48));
|
||||
|
||||
SendPacket(buff, (130+adjust_axis)*64, user);
|
||||
SendPacket(buff.data(), (130+adjust_axis)*64, user);
|
||||
}
|
||||
|
||||
void HLSDevice::CreateJFPackets(const DiffractionExperiment& experiment, uint64_t frame_number_0, uint64_t frames,
|
||||
@@ -158,10 +157,9 @@ void HLSDevice::CreateJFPackets(const DiffractionExperiment& experiment, uint64_
|
||||
void HLSDevice::CreateEIGERPacket(const DiffractionExperiment &experiment, uint64_t frame_number,
|
||||
uint32_t eth_packet, uint32_t module_number, uint32_t col, uint32_t row,
|
||||
const uint16_t *data) {
|
||||
char buff[256*64];
|
||||
memset(buff, 0, 256*64);
|
||||
std::vector<char> buff(256*64);
|
||||
|
||||
auto packet = (eiger_raw_packet *)buff;
|
||||
auto packet = (eiger_raw_packet *)buff.data();
|
||||
|
||||
packet->ether_type = htons(0x0800);
|
||||
packet->sour_mac[0] = 0x00; // module 0
|
||||
@@ -194,9 +192,9 @@ void HLSDevice::CreateEIGERPacket(const DiffractionExperiment &experiment, uint6
|
||||
for (int i = 0; i < 2048; i++)
|
||||
packet->eiger.data[i] = data[i];
|
||||
}
|
||||
packet->udp_checksum = htons(checksum( (uint16_t *) (buff+42), 4096+48));
|
||||
packet->udp_checksum = htons(checksum( (uint16_t *) (buff.data()+42), 4096+48));
|
||||
|
||||
SendPacket(buff, 66*64, 0);
|
||||
SendPacket(buff.data(), 66*64, 0);
|
||||
}
|
||||
|
||||
void HLSDevice::HW_ReadActionRegister(DataCollectionConfig *job) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
PACKAGE_NAME=jfjoch
|
||||
PACKAGE_VERSION=1.0.0-rc.16
|
||||
PACKAGE_VERSION=1.0.0-rc.17
|
||||
|
||||
DEST_MODULE_LOCATION=/extra
|
||||
BUILT_MODULE_NAME=jfjoch
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
# Copyright (2019-2024) Paul Scherrer Institute
|
||||
|
||||
VERSION=1.0.0-rc.16
|
||||
VERSION=1.0.0-rc.17
|
||||
|
||||
mkdir -p /usr/src/jfjoch-${VERSION}/src
|
||||
cp dkms.conf /usr/src/jfjoch-${VERSION}
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
MODULE_AUTHOR("Filip Leonarski; Paul Scherrer Institute");
|
||||
MODULE_DESCRIPTION("Jungfraujoch device module");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION("1.0.0-rc.16");
|
||||
MODULE_VERSION("1.0.0-rc.17");
|
||||
|
||||
#define PCI_DEV_ID_JUNGFRAUJOCH (0x3450)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Taken from https://schneide.blog/2015/08/10/packaging-kernel-modulesdrivers-using-dkms/
|
||||
|
||||
VERSION=1.0.0-rc.16
|
||||
VERSION=1.0.0-rc.17
|
||||
|
||||
occurrences=`/usr/sbin/dkms status | grep jfjoch | grep ${VERSION} | wc -l`
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Taken from https://schneide.blog/2015/08/10/packaging-kernel-modulesdrivers-using-dkms/
|
||||
|
||||
VERSION=1.0.0-rc.16
|
||||
VERSION=1.0.0-rc.17
|
||||
|
||||
/usr/sbin/dkms remove -m jfjoch -v ${VERSION} --all
|
||||
|
||||
|
||||
+32
-9
@@ -19,7 +19,8 @@ import InstrumentMetadata from "./components/InstrumentMetadata";
|
||||
import {JFJOCH_VERSION} from "./version";
|
||||
import FpgaStatus from "./components/FpgaStatus";
|
||||
import {PlotType} from "./components/DataProcessingPlot";
|
||||
import {OpenAPI} from "./openapi";
|
||||
import {broker_status, DefaultService, OpenAPI} from "./openapi";
|
||||
import {jfjoch_statistics} from "./openapi";
|
||||
|
||||
const jfjoch_theme = createTheme({
|
||||
palette: {
|
||||
@@ -33,23 +34,41 @@ type MyState = {
|
||||
show_module_calibration: boolean,
|
||||
show_preview: boolean,
|
||||
show_roi_setup: boolean,
|
||||
show_fpga_status: boolean
|
||||
show_fpga_status: boolean,
|
||||
connection_error: boolean,
|
||||
s: jfjoch_statistics
|
||||
}
|
||||
|
||||
type MyProps = {}
|
||||
|
||||
class App extends Component<MyProps, MyState> {
|
||||
interval: ReturnType<typeof setInterval> | undefined;
|
||||
|
||||
state : MyState = {
|
||||
show_detector_setup: false,
|
||||
show_module_calibration: false,
|
||||
show_preview: false,
|
||||
show_roi_setup: false,
|
||||
show_fpga_status: false
|
||||
show_fpga_status: false,
|
||||
connection_error: true,
|
||||
s: {}
|
||||
}
|
||||
|
||||
getValues() {
|
||||
DefaultService.getStatistics()
|
||||
.then(data => this.setState({s: data, connection_error: false}))
|
||||
.catch(_ => {
|
||||
this.setState({s: {}, connection_error: true});
|
||||
});
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
componentDidMount() {
|
||||
OpenAPI.BASE='';
|
||||
this.getValues();
|
||||
this.interval = setInterval(() => this.getValues(), 1000);
|
||||
}
|
||||
|
||||
showPreviewToggle = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
@@ -91,10 +110,14 @@ class App extends Component<MyProps, MyState> {
|
||||
</Grid>
|
||||
};
|
||||
|
||||
isMeasuring() : boolean {
|
||||
return ((this.state.s.broker !== undefined) && (this.state.s.broker.state == broker_status.state.IDLE));
|
||||
}
|
||||
|
||||
render() {
|
||||
return <ThemeProvider theme={jfjoch_theme}>
|
||||
<CssBaseline enableColorScheme/>
|
||||
<StatusBar/> <br/><br/><br/><br/>
|
||||
<StatusBar s={this.state.s.broker}/> <br/><br/><br/><br/>
|
||||
<div style={{
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
@@ -109,7 +132,7 @@ class App extends Component<MyProps, MyState> {
|
||||
<DataProcessingPlots default_tab={"12"} height={550} type={PlotType.BKG_ESTIMATE}/>
|
||||
</Grid>
|
||||
<Grid item xs={4}>
|
||||
<MeasurementStatistics/>
|
||||
<MeasurementStatistics s={(this.state.s.measurement === undefined) ? {} : this.state.s.measurement}/>
|
||||
</Grid>
|
||||
<Grid item xs={8}>
|
||||
<DataProcessingPlots default_tab={"1"} height={700} type={PlotType.INDEXING_RATE}/>
|
||||
@@ -121,7 +144,7 @@ class App extends Component<MyProps, MyState> {
|
||||
this.renderTitleWithSwitch("Live image preview", this.state.show_preview, this.showPreviewToggle)
|
||||
}
|
||||
<Grid item xs={12}>
|
||||
{this.state.show_preview ? <PreviewImage/> : ""}
|
||||
{this.state.show_preview ? <PreviewImage measuring={this.isMeasuring()}/> : ""}
|
||||
</Grid>
|
||||
<br/><br/>
|
||||
{
|
||||
@@ -129,7 +152,7 @@ class App extends Component<MyProps, MyState> {
|
||||
this.state.show_module_calibration, this.showModuleCalibrationToggle)
|
||||
}
|
||||
<Grid item xs={12}>
|
||||
{this.state.show_module_calibration ? <Calibration/> : ""}
|
||||
{this.state.show_module_calibration ? <Calibration s={this.state.s.calibration}/> : ""}
|
||||
</Grid><br/><br/>
|
||||
{
|
||||
this.renderTitleWithSwitch("Jungfraujoch expert configuration",
|
||||
@@ -142,7 +165,7 @@ class App extends Component<MyProps, MyState> {
|
||||
{this.state.show_detector_setup ?
|
||||
<Stack spacing={2}>
|
||||
<DetectorSelection/>
|
||||
<DetectorStatus/>
|
||||
<DetectorStatus s={this.state.s.detector}/>
|
||||
</Stack> : ""}
|
||||
</Grid>
|
||||
<Grid item xs={4}>
|
||||
@@ -166,7 +189,7 @@ class App extends Component<MyProps, MyState> {
|
||||
this.state.show_fpga_status, this.showFPGAStatusToggle)
|
||||
}
|
||||
<Grid item xs={12}>
|
||||
{this.state.show_fpga_status ? <FpgaStatus/> : ""}
|
||||
{this.state.show_fpga_status ? <FpgaStatus s={this.state.s.fpga}/> : ""}
|
||||
</Grid>
|
||||
</Grid>
|
||||
</div>
|
||||
|
||||
@@ -6,127 +6,12 @@ import {DataGrid, GridColDef} from "@mui/x-data-grid";
|
||||
import {calibration_statistics, DefaultService} from "../openapi";
|
||||
|
||||
type MyProps = {
|
||||
s?: calibration_statistics
|
||||
};
|
||||
|
||||
type MyState = {
|
||||
calib: calibration_statistics | undefined | null;
|
||||
connection_error: boolean;
|
||||
};
|
||||
type MyState = {};
|
||||
|
||||
class Calibration extends React.Component<MyProps, MyState> {
|
||||
interval: ReturnType<typeof setInterval> | undefined;
|
||||
|
||||
state : MyState = {
|
||||
calib: [
|
||||
{
|
||||
module_number: 0,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 1,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 2,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 3,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 4,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 5,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 6,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
},
|
||||
{
|
||||
module_number: 7,
|
||||
storage_cell_number: 0,
|
||||
pedestal_g0_mean: 3500,
|
||||
pedestal_g1_mean: 14000,
|
||||
pedestal_g2_mean: 15000,
|
||||
gain_g0_mean: 30,
|
||||
gain_g1_mean: 11,
|
||||
gain_g2_mean: 10,
|
||||
masked_pixels: 80
|
||||
}
|
||||
],
|
||||
connection_error : true
|
||||
}
|
||||
|
||||
getValues() {
|
||||
DefaultService.getStatisticsCalibration()
|
||||
.then(data => this.setState({calib: data, connection_error: false}))
|
||||
.catch(error => {
|
||||
console.log(error);
|
||||
this.setState({connection_error: true});
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
this.getValues();
|
||||
this.interval = setInterval(() => this.getValues(), 1000);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
|
||||
columns : GridColDef[] = [
|
||||
{ field: 'module_number', type: 'number', headerName: 'Module' },
|
||||
{ field: 'storage_cell_number', type: 'number', headerName: 'SC'},
|
||||
@@ -141,10 +26,10 @@ class Calibration extends React.Component<MyProps, MyState> {
|
||||
|
||||
render() {
|
||||
return <Paper style={{textAlign: 'center'}} sx={{ height: 527, width: '100%' }}>
|
||||
{((this.state.calib !== undefined) && (this.state.calib !== null) && (this.state.calib.length > 0)) ?
|
||||
{((this.props.s !== undefined) && (this.props.s.length > 0)) ?
|
||||
<DataGrid
|
||||
getRowId={(row) => Number(row.module_number) * 64 + Number(row.storage_cell_number)}
|
||||
rows={this.state.calib}
|
||||
rows={this.props.s}
|
||||
columns={this.columns}
|
||||
initialState={{
|
||||
pagination: { paginationModel: { pageSize: 8 } },
|
||||
|
||||
@@ -4,13 +4,12 @@ import Paper from '@mui/material/Paper';
|
||||
import {Grid, Table, TableBody, TableCell, TableContainer, TableRow,} from "@mui/material";
|
||||
import {DefaultService, detector_status, detector_state, detector_power_state} from "../openapi";
|
||||
|
||||
type MyProps = {}
|
||||
|
||||
type MyState = {
|
||||
s: detector_status,
|
||||
connection_error: boolean
|
||||
type MyProps = {
|
||||
s?: detector_status
|
||||
}
|
||||
|
||||
type MyState = {}
|
||||
|
||||
function powerchipToString(s : detector_status) : string {
|
||||
switch (s.powerchip) {
|
||||
case detector_power_state.POWER_ON:
|
||||
@@ -36,47 +35,18 @@ function reduce_array(arr: number[], unit: string) : string {
|
||||
}
|
||||
|
||||
class DetectorStatus extends Component<MyProps, MyState> {
|
||||
interval: ReturnType<typeof setInterval> | undefined;
|
||||
|
||||
state : MyState = {
|
||||
s: {
|
||||
state: detector_state.NOT_CONNECTED,
|
||||
powerchip: detector_power_state.POWER_OFF,
|
||||
server_version: "N/A",
|
||||
number_of_triggers_left: 0,
|
||||
fpga_temp_degC: [-1],
|
||||
high_voltage_V: [-1]
|
||||
},
|
||||
connection_error: true
|
||||
}
|
||||
|
||||
getValues() {
|
||||
DefaultService.getDetectorStatus()
|
||||
.then(data => this.setState({
|
||||
s: data,
|
||||
connection_error: false
|
||||
}))
|
||||
.catch(error => {
|
||||
this.setState({
|
||||
s: {
|
||||
state: detector_state.NOT_CONNECTED,
|
||||
powerchip: detector_power_state.POWER_OFF,
|
||||
server_version: "N/A",
|
||||
number_of_triggers_left: 0,
|
||||
fpga_temp_degC: [-1],
|
||||
high_voltage_V: [-1]
|
||||
},
|
||||
connection_error: true
|
||||
});
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
this.getValues();
|
||||
this.interval = setInterval(() => this.getValues(), 1000);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.interval);
|
||||
det() {
|
||||
if (this.props.s === undefined)
|
||||
return {
|
||||
state: detector_state.NOT_CONNECTED,
|
||||
powerchip: detector_power_state.POWER_OFF,
|
||||
server_version: "N/A",
|
||||
number_of_triggers_left: 0,
|
||||
fpga_temp_degC: [],
|
||||
high_voltage_V: []
|
||||
}
|
||||
else
|
||||
return this.props.s;
|
||||
}
|
||||
|
||||
render() {
|
||||
@@ -91,27 +61,27 @@ class DetectorStatus extends Component<MyProps, MyState> {
|
||||
<TableBody>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Detector state: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.state.toString())}</TableCell>
|
||||
<TableCell align="right">{(this.det().state.toString())}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Detector ASIC power: </TableCell>
|
||||
<TableCell align="right">{powerchipToString(this.state.s)}</TableCell>
|
||||
<TableCell align="right">{powerchipToString(this.det())}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Triggers remaining: </TableCell>
|
||||
<TableCell align="right">{this.state.s.number_of_triggers_left}</TableCell>
|
||||
<TableCell align="right">{this.det().number_of_triggers_left}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> FPGA temperature: </TableCell>
|
||||
<TableCell align="right">{reduce_array(this.state.s.fpga_temp_degC, "degC")}</TableCell>
|
||||
<TableCell component="th" scope="row"> FPGA temp.erature: </TableCell>
|
||||
<TableCell align="right">{reduce_array(this.det().fpga_temp_degC, "degC")}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> High voltage: </TableCell>
|
||||
<TableCell align="right">{reduce_array(this.state.s.high_voltage_V, "V")}</TableCell>
|
||||
<TableCell align="right">{reduce_array(this.det().high_voltage_V, "V")}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Detector server version: </TableCell>
|
||||
<TableCell align="right">{this.state.s.server_version} </TableCell>
|
||||
<TableCell align="right">{this.det().server_version} </TableCell>
|
||||
</TableRow>
|
||||
</TableBody>
|
||||
</Table>
|
||||
|
||||
@@ -52,36 +52,12 @@ function DataVolume(count_4kib: number) : string {
|
||||
|
||||
|
||||
type MyProps = {
|
||||
s?: fpga_status;
|
||||
};
|
||||
|
||||
type MyState = {
|
||||
status: fpga_status;
|
||||
connection_error: boolean;
|
||||
};
|
||||
type MyState = {};
|
||||
|
||||
class FpgaStatus extends React.Component<MyProps, MyState> {
|
||||
interval: ReturnType<typeof setInterval> | undefined;
|
||||
|
||||
state : MyState = {
|
||||
status: [],
|
||||
connection_error : true
|
||||
}
|
||||
|
||||
getValues() {
|
||||
DefaultService.getFpgaStatus()
|
||||
.then(data => this.setState({status: data, connection_error: false}))
|
||||
.catch(error => {
|
||||
this.setState({connection_error: true});
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
this.getValues();
|
||||
this.interval = setInterval(() => this.getValues(), 1000);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
|
||||
columns : GridColDef[] = [
|
||||
{ field: 'pci_dev_id', type: 'string', headerName: 'PCIe ID' },
|
||||
@@ -102,9 +78,9 @@ class FpgaStatus extends React.Component<MyProps, MyState> {
|
||||
|
||||
render() {
|
||||
return <Paper style={{textAlign: 'center'}} sx={{ height: 500, width: '100%' }}>
|
||||
{(this.state.status.length > 0) ?
|
||||
{((this.props.s !== undefined) && (this.props.s.length > 0)) ?
|
||||
<DataGrid
|
||||
rows={this.state.status}
|
||||
rows={this.props.s}
|
||||
columns={this.columns}
|
||||
getRowId={(row) => row.pci_dev_id}
|
||||
autosizeOnMount={true}
|
||||
|
||||
@@ -4,51 +4,14 @@ import Paper from '@mui/material/Paper';
|
||||
import {Grid, Table, TableBody, TableCell, TableContainer, TableRow,} from "@mui/material";
|
||||
import {DefaultService, measurement_statistics} from "../openapi";
|
||||
|
||||
type MyProps = {};
|
||||
|
||||
type MyState = {
|
||||
type MyProps = {
|
||||
s: measurement_statistics,
|
||||
connection_error: boolean
|
||||
};
|
||||
|
||||
type MyState = {};
|
||||
|
||||
class MeasurementStatistics extends Component<MyProps, MyState> {
|
||||
interval: ReturnType<typeof setInterval> | undefined;
|
||||
state : MyState = {
|
||||
s: {
|
||||
run_number: undefined,
|
||||
file_prefix: undefined,
|
||||
experiment_group: undefined,
|
||||
images_expected: 0,
|
||||
images_collected: 0,
|
||||
images_sent: 0,
|
||||
images_discarded_lossy_compression: 0,
|
||||
collection_efficiency : undefined,
|
||||
compression_ratio: undefined,
|
||||
max_receiver_delay: undefined,
|
||||
indexing_rate: undefined
|
||||
},
|
||||
connection_error: true
|
||||
}
|
||||
|
||||
getValues() {
|
||||
DefaultService.getStatisticsDataCollection()
|
||||
.then(data => this.setState({
|
||||
s: data,
|
||||
connection_error: false
|
||||
}))
|
||||
.catch(error => {
|
||||
this.setState({connection_error: true});
|
||||
});
|
||||
}
|
||||
componentDidMount() {
|
||||
this.getValues();
|
||||
this.interval = setInterval(() => this.getValues(), 1000);
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
clearInterval(this.interval);
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
return <Paper style={{textAlign: 'center'}} sx={{ height: 550, width: '100%' }}>
|
||||
<Grid container spacing={0}>
|
||||
@@ -61,57 +24,57 @@ class MeasurementStatistics extends Component<MyProps, MyState> {
|
||||
<TableBody>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> File prefix: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.file_prefix !== undefined) ? this.state.s.file_prefix : "(images not written)"}</TableCell>
|
||||
<TableCell align="right">{(this.props.s.file_prefix !== undefined) ? this.props.s.file_prefix : "(images not written)"}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Run number: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.run_number !== undefined) ? this.state.s.run_number : "(not set)"}</TableCell>
|
||||
<TableCell align="right">{(this.props.s.run_number !== undefined) ? this.props.s.run_number : "(not set)"}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Experiment group: </TableCell>
|
||||
<TableCell align="right">{this.state.s.experiment_group}</TableCell>
|
||||
<TableCell align="right">{this.props.s.experiment_group}</TableCell>
|
||||
</TableRow>
|
||||
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Images expected: </TableCell>
|
||||
<TableCell align="right">{this.state.s.images_expected}</TableCell>
|
||||
<TableCell align="right">{this.props.s.images_expected}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Images collected: </TableCell>
|
||||
<TableCell align="right">{this.state.s.images_collected}</TableCell>
|
||||
<TableCell align="right">{this.props.s.images_collected}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Images sent to writer: </TableCell>
|
||||
<TableCell align="right">{this.state.s.images_sent}</TableCell>
|
||||
<TableCell align="right">{this.props.s.images_sent}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Images discarded by lossy compression: </TableCell>
|
||||
<TableCell align="right">{this.state.s.images_discarded_lossy_compression}</TableCell>
|
||||
<TableCell align="right">{this.props.s.images_discarded_lossy_compression}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Compression ratio: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.compression_ratio !== undefined)
|
||||
? (this.state.s.compression_ratio.toFixed(1)) + "x" : "-" } </TableCell>
|
||||
<TableCell align="right">{(this.props.s.compression_ratio !== undefined)
|
||||
? (this.props.s.compression_ratio.toFixed(1)) + "x" : "-" } </TableCell>
|
||||
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Data acquisition efficiency: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.collection_efficiency !== undefined)
|
||||
? (Math.floor(this.state.s.collection_efficiency * 1000.0) / 1000.0).toFixed(3) : "-"}</TableCell>
|
||||
<TableCell align="right">{(this.props.s.collection_efficiency !== undefined)
|
||||
? (Math.floor(this.props.s.collection_efficiency * 1000.0) / 1000.0).toFixed(3) : "-"}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Indexing rate: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.indexing_rate !== undefined)
|
||||
? this.state.s.indexing_rate.toFixed(2) : "-"}</TableCell>
|
||||
<TableCell align="right">{(this.props.s.indexing_rate !== undefined)
|
||||
? this.props.s.indexing_rate.toFixed(2) : "-"}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Background estimate: </TableCell>
|
||||
<TableCell align="right">{(this.state.s.bkg_estimate !== undefined)
|
||||
? this.state.s.bkg_estimate.toPrecision(7) : "-"}</TableCell>
|
||||
<TableCell align="right">{(this.props.s.bkg_estimate !== undefined)
|
||||
? this.props.s.bkg_estimate.toPrecision(7) : "-"}</TableCell>
|
||||
</TableRow>
|
||||
<TableRow>
|
||||
<TableCell component="th" scope="row"> Unit cell: </TableCell>
|
||||
<TableCell align="right">{this.state.s.unit_cell}</TableCell>
|
||||
<TableCell align="right">{this.props.s.unit_cell}</TableCell>
|
||||
</TableRow>
|
||||
</TableBody>
|
||||
</Table>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user