version 1.0.0-rc.26

This commit is contained in:
2024-11-26 16:04:38 +01:00
parent 9ab5206c12
commit b3e745a8dd
203 changed files with 2969 additions and 1509 deletions

View File

@@ -114,11 +114,11 @@ test:x86:gcc:
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j48 jfjoch_test HDF5DatasetWriteTest
- make -j48 jfjoch_test jfjoch_hdf5_test
- cd tests
- ./jfjoch_test -r junit -o report.xml
- cd ../tools
- ./HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5
- ./jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5
artifacts:
expire_in: 1 week
reports:
@@ -142,9 +142,9 @@ test:x86:crystfel:
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j8 HDF5DatasetWriteTest
- make -j8 jfjoch_hdf5_test
- cd ../tests/crystfel
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 10
- ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 10
- indexamajig -i writing_test.lst -g jf4m.geom -o x.stream --indexing=xgandalf
test:x86:xds_durin:
@@ -165,9 +165,9 @@ test:x86:xds_durin:
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j8 HDF5DatasetWriteTest
- make -j8 jfjoch_hdf5_test
- cd ../tests/xds_durin
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25
- ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25
- xds_par |grep -a1 ISa |tail -n1
test:x86:xds_neggia:
@@ -188,9 +188,9 @@ test:x86:xds_neggia:
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j8 HDF5DatasetWriteTest
- make -j8 jfjoch_hdf5_test
- cd ../tests/xds_neggia
- HDF5DATASET_WRITE_TEST_IMAGES_PER_FILE=0 ../../build/tools/HDF5DatasetWriteTest ../../tests/test_data/compression_benchmark.h5 25
- ../../build/tools/jfjoch_hdf5_test ../../tests/test_data/compression_benchmark.h5 25
- xds_par |grep -a1 ISa |tail -n1
test:x86:xia2.ssx:
@@ -212,9 +212,9 @@ test:x86:xia2.ssx:
- mkdir -p dials_test
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j8 HDF5DatasetWriteTest
- make -j8 jfjoch_hdf5_test
- cd ../dials_test
- ../build/tools/HDF5DatasetWriteTest ../tests/test_data/compression_benchmark.h5 100
- ../build/tools/jfjoch_hdf5_test ../tests/test_data/compression_benchmark.h5 100
- source /usr/local/dials-v3-17-0/dials_env.sh
- xia2.ssx image=writing_test_master.h5 space_group=P43212 unit_cell=78.551,78.551,36.914,90.000,90.000,90.000

View File

@@ -1 +1 @@
1.0.0-rc.25
1.0.0-rc.26

View File

@@ -11,7 +11,7 @@ AcquisitionCounters::AcquisitionCounters()
total_packets(0), expected_frames(0), acquisition_finished(false) {}
void AcquisitionCounters::Reset(const DiffractionExperiment &experiment, uint16_t data_stream) {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
acquisition_finished = false;
slowest_frame_number = 0;
@@ -47,7 +47,7 @@ void AcquisitionCounters::Reset(const DiffractionExperiment &experiment, uint16_
}
void AcquisitionCounters::UpdateCounters(const Completion *c) {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
if (c->module_number >= nmodules)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
@@ -83,7 +83,7 @@ void AcquisitionCounters::UpdateCounters(const Completion *c) {
}
void AcquisitionCounters::SetAcquisitionFinished() {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
acquisition_finished = true;
data_updated.notify_all();
}
@@ -100,7 +100,7 @@ uint64_t AcquisitionCounters::GetBufferHandle(size_t frame, uint16_t module_numb
}
uint64_t AcquisitionCounters::GetBufferHandleAndClear(size_t frame, uint16_t module_number) {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
if (frame >= expected_frames)
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,
"GetBufferHandleAndClear Wrong frame number: " + std::to_string(frame));
@@ -114,7 +114,7 @@ uint64_t AcquisitionCounters::GetBufferHandleAndClear(size_t frame, uint16_t mod
}
uint64_t AcquisitionCounters::GetPedestalBufferHandle(size_t storage_cell, uint16_t module_number) const {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
if (storage_cell >= 16)
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,
"GetBufferHandleAndClear Wrong frame number: " + std::to_string(storage_cell));
@@ -197,7 +197,7 @@ uint64_t AcquisitionCounters::GetTotalPackets() const {
}
uint64_t AcquisitionCounters::GetTotalPackets(uint16_t module_number) const {
std::unique_lock<std::shared_mutex> ul(m);
std::unique_lock ul(m);
if (module_number >= nmodules)
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds,

View File

@@ -380,6 +380,18 @@ void JFJochBrokerHttp::plot_indexing_rate_get(const std::optional<int32_t> &binn
GenericPlot(PlotType::IndexingRate, binning, compression, response);
}
void JFJochBrokerHttp::plot_indexing_unit_cell_get(const std::optional<int32_t> &binning,
const std::optional<bool> &compression,
Pistache::Http::ResponseWriter &response) {
GenericPlot(PlotType::IndexingUnitCellLength, binning, compression, response);
}
void JFJochBrokerHttp::plot_indexing_unit_cell_angle_get(const std::optional<int32_t> &binning,
const std::optional<bool> &compression,
Pistache::Http::ResponseWriter &response) {
GenericPlot(PlotType::IndexingUnitCellAngle, binning, compression, response);
}
void JFJochBrokerHttp::plot_receiver_delay_get(const std::optional<int32_t> &binning,
const std::optional<bool>& compression,
Pistache::Http::ResponseWriter &response) {
@@ -542,6 +554,10 @@ void JFJochBrokerHttp::statistics_get(const std::optional<bool> &compression, Pi
if (!zeromq_prev.address.empty())
statistics.setZeromqPreview(Convert(zeromq_prev));
auto zeromq_metadata = state_machine.GetMetadataSocketSettings();
if (!zeromq_metadata.address.empty())
statistics.setZeromqMetadata(Convert(zeromq_metadata));
nlohmann::json j = statistics;
if (!compression.has_value() || compression.value())
response.setCompression(Pistache::Http::Header::Encoding::Deflate);
@@ -560,4 +576,13 @@ void JFJochBrokerHttp::config_zeromq_preview_put(
response.send(Pistache::Http::Code::Ok);
}
void JFJochBrokerHttp::config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) {
ProcessOutput(Convert(state_machine.GetMetadataSocketSettings()), response);
}
void JFJochBrokerHttp::config_zeromq_metadata_put(
const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings,
Pistache::Http::ResponseWriter &response) {
state_machine.SetMetadataSocketSettings(Convert(zeromqMetadataSettings));
response.send(Pistache::Http::Code::Ok);
}

View File

@@ -170,6 +170,12 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi {
config_zeromq_preview_put(const org::openapitools::server::model::Zeromq_preview_settings &zeromqPreviewSettings,
Pistache::Http::ResponseWriter &response) override;
void config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) override;
void config_zeromq_metadata_put(
const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings,
Pistache::Http::ResponseWriter &response) override;
void config_mask_get(Pistache::Http::ResponseWriter &response) override;
void config_user_mask_get(Pistache::Http::ResponseWriter &response) override;
@@ -177,6 +183,11 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi {
void config_user_mask_put(const Pistache::Rest::Request &request,
Pistache::Http::ResponseWriter &response) override;
void plot_indexing_unit_cell_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression,
Pistache::Http::ResponseWriter &response) override;
void plot_indexing_unit_cell_angle_get(const std::optional<int32_t> &binning, 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);

View File

@@ -175,4 +175,9 @@ void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settin
service.PreviewSocket(input.getZeromqPreview().getSocketAddress());
service.PreviewSocketSettings(Convert(input.getZeromqPreview()));
}
if (input.zeromqMetadataIsSet()) {
service.MetadataSocket(input.getZeromqMetadata().getSocketAddress());
service.MetadataSocketSettings(Convert(input.getZeromqMetadata()));
}
}

View File

@@ -205,11 +205,21 @@ std::vector<DeviceStatus> JFJochServices::GetDeviceStatus() const {
ZMQPreviewSettings JFJochServices::GetPreviewSocketSettings() {
if (receiver)
return receiver->GetPreviewSocketSettings();
else
return {};
return {};
}
ZMQMetadataSettings JFJochServices::GetMetadataSocketSettings() {
if (receiver)
return receiver->GetMetadataSocketSettings();
return {};
}
void JFJochServices::SetPreviewSocketSettings(const ZMQPreviewSettings &input) {
if (receiver)
receiver->PreviewSocketSettings(input);
}
void JFJochServices::SetMetadataSocketSettings(const ZMQMetadataSettings &input) {
if (receiver)
receiver->MetadataSocketSettings(input);
}

View File

@@ -53,6 +53,9 @@ public:
void SetPreviewSocketSettings(const ZMQPreviewSettings &input);
ZMQPreviewSettings GetPreviewSocketSettings();
void SetMetadataSocketSettings(const ZMQMetadataSettings &input);
ZMQMetadataSettings GetMetadataSocketSettings();
};

View File

@@ -7,10 +7,12 @@
#include "../preview/JFJochTIFF.h"
JFJochStateMachine::JFJochStateMachine(JFJochServices &in_services, Logger &in_logger)
: services(in_services),
logger(in_logger),
data_processing_settings(DiffractionExperiment::DefaultDataProcessingSettings()),
pixel_mask(experiment) {
: logger(in_logger),
services(in_services),
pixel_mask(experiment),
current_detector_setup(0),
data_processing_settings(DiffractionExperiment::DefaultDataProcessingSettings()),
pixel_mask_statistics({0,0,0}) {
SupressTIFFErrors();
}
@@ -203,7 +205,7 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock<std::mutex> &ul
}
void JFJochStateMachine::Initialize() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot initialize during measurement");
@@ -221,7 +223,7 @@ void JFJochStateMachine::Initialize() {
}
void JFJochStateMachine::Pedestal() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("Must be idle to take pedestal");
@@ -245,13 +247,13 @@ void JFJochStateMachine::InitializeThread(std::unique_lock<std::mutex> ul) {
}
void JFJochStateMachine::Trigger() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state == JFJochState::Measuring)
services.Trigger();
}
void JFJochStateMachine::Start(const DatasetSettings& settings) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("Must be idle to start measurement");
@@ -297,11 +299,11 @@ void JFJochStateMachine::MeasurementThread() {
try {
auto tmp_output = services.Stop();
{
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
state = JFJochState::Idle;
}
} catch (...) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
state = JFJochState::Error;
}
c.notify_all();
@@ -309,7 +311,7 @@ void JFJochStateMachine::MeasurementThread() {
void JFJochStateMachine::Cancel() {
// This is inconsistency in naming - need to solve later
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if ((state == JFJochState::Pedestal) || (state == JFJochState::Measuring)) {
services.Cancel();
cancel_sequence = true;
@@ -317,12 +319,12 @@ void JFJochStateMachine::Cancel() {
}
void JFJochStateMachine::DebugOnly_SetState(JFJochState in_state) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
state = in_state;
}
void JFJochStateMachine::Deactivate() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
try {
if (measurement.valid())
measurement.get();
@@ -371,27 +373,27 @@ std::optional<MeasurementStatistics> JFJochStateMachine::GetMeasurementStatistic
}
std::vector<JFCalibrationModuleStatistics> JFJochStateMachine::GetCalibrationStatistics() const {
std::unique_lock<std::mutex> ul(calibration_statistics_mutex);
std::unique_lock ul(calibration_statistics_mutex);
return calibration_statistics;
}
void JFJochStateMachine::SetCalibrationStatistics(const std::vector<JFCalibrationModuleStatistics> &input) {
std::unique_lock<std::mutex> ul(calibration_statistics_mutex);
std::unique_lock ul(calibration_statistics_mutex);
calibration_statistics = input;
}
DetectorSettings JFJochStateMachine::GetDetectorSettings() const {
std::unique_lock<std::mutex> ul(experiment_detector_settings_mutex);
std::unique_lock ul(experiment_detector_settings_mutex);
return experiment.GetDetectorSettings();
}
void JFJochStateMachine::ImportDetectorSettings(const DetectorSettings &input) {
std::unique_lock<std::mutex> ul(experiment_detector_settings_mutex);
std::unique_lock ul(experiment_detector_settings_mutex);
experiment.ImportDetectorSettings(input);
}
void JFJochStateMachine::LoadDetectorSettings(const DetectorSettings &settings) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
switch (state) {
case JFJochState::Inactive:
case JFJochState::Error:
@@ -425,14 +427,14 @@ MultiLinePlot JFJochStateMachine::GetPlots(const PlotRequest &request) const {
}
void JFJochStateMachine::SetSpotFindingSettings(const SpotFindingSettings &settings) {
std::unique_lock<std::mutex> ul(data_processing_settings_mutex);
std::unique_lock ul(data_processing_settings_mutex);
DiffractionExperiment::CheckDataProcessingSettings(settings);
data_processing_settings = settings;
services.SetSpotFindingSettings(settings);
}
SpotFindingSettings JFJochStateMachine::GetSpotFindingSettings() const {
std::unique_lock<std::mutex> ul(data_processing_settings_mutex);
std::unique_lock ul(data_processing_settings_mutex);
return data_processing_settings;
}
@@ -441,7 +443,7 @@ JFJochState JFJochStateMachine::GetState() const {
}
void JFJochStateMachine::AddDetectorSetup(const DetectorSetup &setup) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (detector_setup.empty()) {
experiment.Detector(setup);
@@ -453,7 +455,7 @@ void JFJochStateMachine::AddDetectorSetup(const DetectorSetup &setup) {
}
DetectorList JFJochStateMachine::GetDetectorsList() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
DetectorList ret;
for (const auto & i : detector_setup) {
@@ -477,7 +479,7 @@ std::optional<DetectorStatus> JFJochStateMachine::GetDetectorStatus() const {
}
void JFJochStateMachine::SelectDetector(int64_t id) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if ((id < 0) || (id >= detector_setup.size()))
throw JFJochException(JFJochExceptionCategory::ArrayOutOfBounds, "Detector doesn't exist");
@@ -498,7 +500,7 @@ void JFJochStateMachine::SelectDetector(int64_t id) {
}
void JFJochStateMachine::SetRadialIntegrationSettings(const AzimuthalIntegrationSettings &settings) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot change radial integration settings during data collection");
@@ -507,7 +509,7 @@ void JFJochStateMachine::SetRadialIntegrationSettings(const AzimuthalIntegration
}
AzimuthalIntegrationSettings JFJochStateMachine::GetRadialIntegrationSettings() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return experiment.GetRadialIntegrationSettings();
}
@@ -527,7 +529,7 @@ bool JFJochStateMachine::IsRunning() const {
}
JFJochState JFJochStateMachine::WaitTillMeasurementDone() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
c.wait(ul, [&] { return !IsRunning(); });
@@ -535,7 +537,7 @@ JFJochState JFJochStateMachine::WaitTillMeasurementDone() {
}
JFJochState JFJochStateMachine::WaitTillMeasurementDone(std::chrono::milliseconds timeout) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
c.wait_for(ul, timeout, [&] { return !IsRunning(); });
@@ -561,7 +563,7 @@ std::string JFJochStateMachine::GetPreviewTIFF(bool calibration) const {
}
std::string JFJochStateMachine::GetPedestalTIFF(size_t gain_level, size_t sc) const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("Pedestal can be only retrieved in Idle state");
@@ -575,7 +577,7 @@ std::string JFJochStateMachine::GetPedestalTIFF(size_t gain_level, size_t sc) co
}
void JFJochStateMachine::LoadInternalGeneratorImage(const void *data, size_t size, uint64_t image_number) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("Can change internal generator image only when detector in Idle state");
@@ -595,7 +597,7 @@ void JFJochStateMachine::LoadInternalGeneratorImage(const void *data, size_t siz
}
void JFJochStateMachine::LoadInternalGeneratorImageTIFF(const std::string &s, uint64_t image_number) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("Can change internal generator image only when detector in Idle state");
@@ -610,7 +612,7 @@ void JFJochStateMachine::LoadInternalGeneratorImageTIFF(const std::string &s, ui
}
void JFJochStateMachine::SetBoxROI(const std::vector<ROIBox> &input) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("ROI can be modified only when detector is not running");
@@ -619,7 +621,7 @@ void JFJochStateMachine::SetBoxROI(const std::vector<ROIBox> &input) {
}
void JFJochStateMachine::SetCircleROI(const std::vector<ROICircle> &input) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("ROI can be modified only when detector is not running");
@@ -628,12 +630,12 @@ void JFJochStateMachine::SetCircleROI(const std::vector<ROICircle> &input) {
}
std::vector<ROIBox> JFJochStateMachine::GetBoxROI() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return experiment.ROI().GetROIBox();
}
std::vector<ROICircle> JFJochStateMachine::GetCircleROI() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return experiment.ROI().GetROICircle();
}
@@ -650,31 +652,31 @@ std::vector<uint64_t> JFJochStateMachine::GetXFELEventCode() const {
}
std::string JFJochStateMachine::GetFullPixelMaskTIFF() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
std::vector v = pixel_mask.GetMask(experiment);
return WriteTIFFToString(v.data(), experiment.GetXPixelsNum(), experiment.GetYPixelsNum(),
sizeof(uint32_t), false);
}
std::string JFJochStateMachine::GetUserPixelMaskTIFF() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
std::vector v = pixel_mask.GetUserMask(experiment);
return WriteTIFFToString(v.data(), experiment.GetXPixelsNum(), experiment.GetYPixelsNum(),
sizeof(uint32_t), false);
}
std::vector<uint32_t> JFJochStateMachine::GetFullPixelMask() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return pixel_mask.GetMask(experiment);
}
std::vector<uint32_t> JFJochStateMachine::GetUserPixelMask() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return pixel_mask.GetUserMask(experiment);
}
void JFJochStateMachine::SetUserPixelMask(const std::vector<uint32_t> &v) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (state != JFJochState::Idle)
throw WrongDAQStateException ("User mask can be only modified in Idle state");
@@ -689,12 +691,12 @@ void JFJochStateMachine::SetUserPixelMask(const std::vector<uint32_t> &v) {
}
InstrumentMetadata JFJochStateMachine::GetInstrumentMetadata() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return experiment.GetInstrumentMetadata();
}
void JFJochStateMachine::LoadInstrumentMetadata(const InstrumentMetadata &settings) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot change instrument metadata during data collection");
@@ -703,15 +705,15 @@ void JFJochStateMachine::LoadInstrumentMetadata(const InstrumentMetadata &settin
}
ImageFormatSettings JFJochStateMachine::GetImageFormatSettings() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
return experiment.GetImageFormatSettings();
}
void JFJochStateMachine::LoadImageFormatSettings(const ImageFormatSettings &settings) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot change instrument metadata during data collection");
throw WrongDAQStateException ("Cannot change image format settings during data collection");
experiment.ImportImageFormatSettings(settings);
pixel_mask.Update(settings);
@@ -719,7 +721,7 @@ void JFJochStateMachine::LoadImageFormatSettings(const ImageFormatSettings &sett
}
void JFJochStateMachine::RawImageFormatSettings() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot change instrument metadata during data collection");
@@ -728,7 +730,7 @@ void JFJochStateMachine::RawImageFormatSettings() {
}
void JFJochStateMachine::ConvImageFormatSettings() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (IsRunning())
throw WrongDAQStateException ("Cannot change instrument metadata during data collection");
@@ -747,3 +749,11 @@ void JFJochStateMachine::SetPreviewSocketSettings(const ZMQPreviewSettings &inpu
ZMQPreviewSettings JFJochStateMachine::GetPreviewSocketSettings() {
return services.GetPreviewSocketSettings();
}
void JFJochStateMachine::SetMetadataSocketSettings(const ZMQMetadataSettings &input) {
services.SetMetadataSocketSettings(input);
}
ZMQMetadataSettings JFJochStateMachine::GetMetadataSocketSettings() {
return services.GetMetadataSocketSettings();
}

View File

@@ -193,6 +193,9 @@ public:
void SetPreviewSocketSettings(const ZMQPreviewSettings &input);
ZMQPreviewSettings GetPreviewSocketSettings();
void SetMetadataSocketSettings(const ZMQMetadataSettings &input);
ZMQMetadataSettings GetMetadataSocketSettings();
PixelMaskStatistics GetPixelMaskStatistics() const;
};

View File

@@ -574,7 +574,16 @@ ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_previe
ret.period = std::chrono::milliseconds(input.getPeriodMs());
else
ret.period = {};
ret.send_start_message = input.isSendStartMessage();
ret.address = "";
return ret;
}
ZMQMetadataSettings Convert(const org::openapitools::server::model::Zeromq_metadata_settings &input) {
ZMQMetadataSettings ret;
if (input.isEnabled())
ret.period = std::chrono::milliseconds(input.getPeriodMs());
else
ret.period = {};
ret.address = "";
return ret;
}
@@ -585,7 +594,15 @@ org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPrevi
if (settings.period.has_value())
ret.setPeriodMs(settings.period.value().count() / 1000);
ret.setSocketAddress(settings.address);
ret.setSendStartMessage(settings.send_start_message);
return ret;
}
org::openapitools::server::model::Zeromq_metadata_settings Convert(const ZMQMetadataSettings &settings) {
org::openapitools::server::model::Zeromq_metadata_settings ret;
ret.setEnabled(settings.period.has_value());
if (settings.period.has_value())
ret.setPeriodMs(settings.period.value().count() / 1000);
ret.setSocketAddress(settings.address);
return ret;
}

View File

@@ -22,6 +22,8 @@
#include "gen/model/Dataset_settings.h"
#include "gen/model/Fpga_status_inner.h"
#include "gen/model/Pixel_mask_statistics.h"
#include "gen/model/Zeromq_preview_settings.h"
#include "gen/model/Zeromq_metadata_settings.h"
#include "../common/DatasetSettings.h"
#include "../common/ImageFormatSettings.h"
@@ -30,7 +32,6 @@
#include "../common/DetectorSettings.h"
#include "../jungfrau/JFCalibration.h"
#include "../common/InstrumentMetadata.h"
#include "Zeromq_preview_settings.h"
SpotFindingSettings Convert(const org::openapitools::server::model::Spot_finding_settings &input);
org::openapitools::server::model::Spot_finding_settings Convert(const SpotFindingSettings &input);
@@ -63,5 +64,7 @@ org::openapitools::server::model::Pixel_mask_statistics Convert(const PixelMaskS
org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPreviewSettings& settings);
ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_preview_settings& input);
org::openapitools::server::model::Zeromq_metadata_settings Convert(const ZMQMetadataSettings& settings);
ZMQMetadataSettings Convert(const org::openapitools::server::model::Zeromq_metadata_settings& input);
#endif //JFJOCH_OPENAPICONVERT_H

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -56,6 +56,8 @@ void DefaultApi::setupRoutes() {
Routes::Put(*router, base + "/config/user_mask", Routes::bind(&DefaultApi::config_user_mask_put_handler, this));
Routes::Get(*router, base + "/config/user_mask.tiff", Routes::bind(&DefaultApi::config_user_mask_tiff_get_handler, this));
Routes::Put(*router, base + "/config/user_mask.tiff", Routes::bind(&DefaultApi::config_user_mask_tiff_put_handler, this));
Routes::Get(*router, base + "/config/zeromq_metadata", Routes::bind(&DefaultApi::config_zeromq_metadata_get_handler, this));
Routes::Put(*router, base + "/config/zeromq_metadata", Routes::bind(&DefaultApi::config_zeromq_metadata_put_handler, this));
Routes::Get(*router, base + "/config/zeromq_preview", Routes::bind(&DefaultApi::config_zeromq_preview_get_handler, this));
Routes::Put(*router, base + "/config/zeromq_preview", Routes::bind(&DefaultApi::config_zeromq_preview_put_handler, this));
Routes::Post(*router, base + "/deactivate", Routes::bind(&DefaultApi::deactivate_post_handler, this));
@@ -68,6 +70,8 @@ void DefaultApi::setupRoutes() {
Routes::Get(*router, base + "/plot/error_pixel", Routes::bind(&DefaultApi::plot_error_pixel_get_handler, this));
Routes::Get(*router, base + "/plot/image_collection_efficiency", Routes::bind(&DefaultApi::plot_image_collection_efficiency_get_handler, this));
Routes::Get(*router, base + "/plot/indexing_rate", Routes::bind(&DefaultApi::plot_indexing_rate_get_handler, this));
Routes::Get(*router, base + "/plot/indexing_unit_cell_angle", Routes::bind(&DefaultApi::plot_indexing_unit_cell_angle_get_handler, this));
Routes::Get(*router, base + "/plot/indexing_unit_cell", Routes::bind(&DefaultApi::plot_indexing_unit_cell_get_handler, this));
Routes::Get(*router, base + "/plot/receiver_delay", Routes::bind(&DefaultApi::plot_receiver_delay_get_handler, this));
Routes::Get(*router, base + "/plot/receiver_free_send_buffers", Routes::bind(&DefaultApi::plot_receiver_free_send_buffers_get_handler, this));
Routes::Get(*router, base + "/plot/roi_max_count", Routes::bind(&DefaultApi::plot_roi_max_count_get_handler, this));
@@ -633,6 +637,56 @@ void DefaultApi::config_user_mask_tiff_put_handler(const Pistache::Rest::Request
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
}
}
void DefaultApi::config_zeromq_metadata_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
try {
try {
this->config_zeromq_metadata_get(response);
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<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::config_zeromq_metadata_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
try {
// Getting the body param
Zeromq_metadata_settings zeromqMetadataSettings;
try {
nlohmann::json::parse(request.body()).get_to(zeromqMetadataSettings);
zeromqMetadataSettings.validate();
} catch (std::exception &e) {
this->handleParsingException(e, response);
return;
}
try {
this->config_zeromq_metadata_put(zeromqMetadataSettings, response);
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<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::config_zeromq_preview_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
try {
@@ -955,6 +1009,80 @@ void DefaultApi::plot_indexing_rate_get_handler(const Pistache::Rest::Request &r
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
}
}
void DefaultApi::plot_indexing_unit_cell_angle_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
try {
// Getting the query params
auto binningQuery = request.query().get("binning");
std::optional<int32_t> binning;
if(binningQuery.has_value()){
int32_t valueQuery_instance;
if(fromStringValue(binningQuery.value(), valueQuery_instance)){
binning = valueQuery_instance;
}
}
auto compressionQuery = request.query().get("compression");
std::optional<bool> compression;
if(compressionQuery.has_value()){
bool valueQuery_instance;
if(fromStringValue(compressionQuery.value(), valueQuery_instance)){
compression = valueQuery_instance;
}
}
try {
this->plot_indexing_unit_cell_angle_get(binning, compression, response);
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<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::plot_indexing_unit_cell_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
try {
// Getting the query params
auto binningQuery = request.query().get("binning");
std::optional<int32_t> binning;
if(binningQuery.has_value()){
int32_t valueQuery_instance;
if(fromStringValue(binningQuery.value(), valueQuery_instance)){
binning = valueQuery_instance;
}
}
auto compressionQuery = request.query().get("compression");
std::optional<bool> compression;
if(compressionQuery.has_value()){
bool valueQuery_instance;
if(fromStringValue(compressionQuery.value(), valueQuery_instance)){
compression = valueQuery_instance;
}
}
try {
this->plot_indexing_unit_cell_get(binning, compression, response);
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<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::plot_receiver_delay_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
try {

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -47,6 +47,7 @@
#include "Roi_box_list.h"
#include "Roi_circle_list.h"
#include "Spot_finding_settings.h"
#include "Zeromq_metadata_settings.h"
#include "Zeromq_preview_settings.h"
#include <string>
#include <vector>
@@ -88,6 +89,8 @@ private:
void config_user_mask_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_user_mask_tiff_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_user_mask_tiff_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_zeromq_metadata_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_zeromq_metadata_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_zeromq_preview_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void config_zeromq_preview_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void deactivate_post_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
@@ -100,6 +103,8 @@ private:
void plot_error_pixel_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_image_collection_efficiency_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_indexing_rate_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_indexing_unit_cell_angle_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_indexing_unit_cell_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_receiver_delay_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_receiver_free_send_buffers_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void plot_roi_max_count_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
@@ -324,6 +329,21 @@ private:
/// </remarks>
virtual void config_user_mask_tiff_put(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Get ZeroMQ metadata socket settings
/// </summary>
/// <remarks>
///
/// </remarks>
virtual void config_zeromq_metadata_get(Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Set ZeroMQ metadata settings
/// </summary>
/// <remarks>
/// Jungfraujoch can generate metadata message stream on ZeroMQ PUB socket. This stream covers all images. Here settings of the socket can be adjusted. While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request.
/// </remarks>
/// <param name="zeromqMetadataSettings"> (optional)</param>
virtual void config_zeromq_metadata_put(const org::openapitools::server::model::Zeromq_metadata_settings &zeromqMetadataSettings, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Get ZeroMQ preview settings
/// </summary>
/// <remarks>
@@ -418,6 +438,24 @@ private:
/// <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 indexing unit cell angle plot
/// </summary>
/// <remarks>
/// Crystal unit cell based on indexing results; binning is configurable
/// </remarks>
/// <param name="binning">Binning of frames for the plot (0 &#x3D; default binning) (optional, default to 0)</param>
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
virtual void plot_indexing_unit_cell_angle_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Generate indexing unit cell length plots
/// </summary>
/// <remarks>
/// Crystal unit cell based on indexing results; binning is configurable
/// </remarks>
/// <param name="binning">Binning of frames for the plot (0 &#x3D; default binning) (optional, default to 0)</param>
/// <param name="compression">Enable DEFLATE compression of output data. (optional, default to true)</param>
virtual void plot_indexing_unit_cell_get(const std::optional<int32_t> &binning, const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Generate receiver delay plot
/// </summary>
/// <remarks>

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -35,6 +35,7 @@ Jfjoch_settings::Jfjoch_settings()
m_Numa_policyIsSet = false;
m_Frontend_directory = "";
m_Zeromq_previewIsSet = false;
m_Zeromq_metadataIsSet = false;
}
@@ -132,7 +133,7 @@ bool Jfjoch_settings::validate(std::stringstream& msg, const std::string& pathPr
}
}
return success;
}
@@ -178,7 +179,10 @@ bool Jfjoch_settings::operator==(const Jfjoch_settings& rhs) const
&&
((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview()))
((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview())) &&
((!zeromqMetadataIsSet() && !rhs.zeromqMetadataIsSet()) || (zeromqMetadataIsSet() && rhs.zeromqMetadataIsSet() && getZeromqMetadata() == rhs.getZeromqMetadata()))
;
}
@@ -214,6 +218,8 @@ void to_json(nlohmann::json& j, const Jfjoch_settings& o)
j["image_pusher"] = o.m_Image_pusher;
if(o.zeromqPreviewIsSet())
j["zeromq_preview"] = o.m_Zeromq_preview;
if(o.zeromqMetadataIsSet())
j["zeromq_metadata"] = o.m_Zeromq_metadata;
}
@@ -272,6 +278,11 @@ void from_json(const nlohmann::json& j, Jfjoch_settings& o)
j.at("zeromq_preview").get_to(o.m_Zeromq_preview);
o.m_Zeromq_previewIsSet = true;
}
if(j.find("zeromq_metadata") != j.end())
{
j.at("zeromq_metadata").get_to(o.m_Zeromq_metadata);
o.m_Zeromq_metadataIsSet = true;
}
}
@@ -469,6 +480,23 @@ void Jfjoch_settings::unsetZeromq_preview()
{
m_Zeromq_previewIsSet = false;
}
org::openapitools::server::model::Zeromq_metadata_settings Jfjoch_settings::getZeromqMetadata() const
{
return m_Zeromq_metadata;
}
void Jfjoch_settings::setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value)
{
m_Zeromq_metadata = value;
m_Zeromq_metadataIsSet = true;
}
bool Jfjoch_settings::zeromqMetadataIsSet() const
{
return m_Zeromq_metadataIsSet;
}
void Jfjoch_settings::unsetZeromq_metadata()
{
m_Zeromq_metadataIsSet = false;
}
} // namespace org::openapitools::server::model

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -27,6 +27,7 @@
#include "Zeromq_settings.h"
#include "Azim_int_settings.h"
#include "Image_format_settings.h"
#include "Zeromq_metadata_settings.h"
#include "Detector_settings.h"
#include "Instrument_metadata.h"
#include <vector>
@@ -153,6 +154,13 @@ public:
void setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value);
bool zeromqPreviewIsSet() const;
void unsetZeromq_preview();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Zeromq_metadata_settings getZeromqMetadata() const;
void setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value);
bool zeromqMetadataIsSet() const;
void unsetZeromq_metadata();
friend void to_json(nlohmann::json& j, const Jfjoch_settings& o);
friend void from_json(const nlohmann::json& j, Jfjoch_settings& o);
@@ -183,6 +191,8 @@ protected:
org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview;
bool m_Zeromq_previewIsSet;
org::openapitools::server::model::Zeromq_metadata_settings m_Zeromq_metadata;
bool m_Zeromq_metadataIsSet;
};

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -32,6 +32,7 @@ Jfjoch_statistics::Jfjoch_statistics()
m_FpgaIsSet = false;
m_CalibrationIsSet = false;
m_Zeromq_previewIsSet = false;
m_Zeromq_metadataIsSet = false;
m_Pixel_maskIsSet = false;
}
@@ -97,7 +98,7 @@ bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& path
}
}
return success;
}
@@ -140,6 +141,9 @@ bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const
((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview())) &&
((!zeromqMetadataIsSet() && !rhs.zeromqMetadataIsSet()) || (zeromqMetadataIsSet() && rhs.zeromqMetadataIsSet() && getZeromqMetadata() == rhs.getZeromqMetadata())) &&
((!pixelMaskIsSet() && !rhs.pixelMaskIsSet()) || (pixelMaskIsSet() && rhs.pixelMaskIsSet() && getPixelMask() == rhs.getPixelMask()))
;
@@ -175,6 +179,8 @@ void to_json(nlohmann::json& j, const Jfjoch_statistics& o)
j["calibration"] = o.m_Calibration;
if(o.zeromqPreviewIsSet())
j["zeromq_preview"] = o.m_Zeromq_preview;
if(o.zeromqMetadataIsSet())
j["zeromq_metadata"] = o.m_Zeromq_metadata;
if(o.pixelMaskIsSet())
j["pixel_mask"] = o.m_Pixel_mask;
@@ -237,6 +243,11 @@ void from_json(const nlohmann::json& j, Jfjoch_statistics& o)
j.at("zeromq_preview").get_to(o.m_Zeromq_preview);
o.m_Zeromq_previewIsSet = true;
}
if(j.find("zeromq_metadata") != j.end())
{
j.at("zeromq_metadata").get_to(o.m_Zeromq_metadata);
o.m_Zeromq_metadataIsSet = true;
}
if(j.find("pixel_mask") != j.end())
{
j.at("pixel_mask").get_to(o.m_Pixel_mask);
@@ -432,6 +443,23 @@ void Jfjoch_statistics::unsetZeromq_preview()
{
m_Zeromq_previewIsSet = false;
}
org::openapitools::server::model::Zeromq_metadata_settings Jfjoch_statistics::getZeromqMetadata() const
{
return m_Zeromq_metadata;
}
void Jfjoch_statistics::setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value)
{
m_Zeromq_metadata = value;
m_Zeromq_metadataIsSet = true;
}
bool Jfjoch_statistics::zeromqMetadataIsSet() const
{
return m_Zeromq_metadataIsSet;
}
void Jfjoch_statistics::unsetZeromq_metadata()
{
m_Zeromq_metadataIsSet = false;
}
org::openapitools::server::model::Pixel_mask_statistics Jfjoch_statistics::getPixelMask() const
{
return m_Pixel_mask;

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -27,6 +27,7 @@
#include "Zeromq_preview_settings.h"
#include "Detector_list.h"
#include "Image_format_settings.h"
#include "Zeromq_metadata_settings.h"
#include "Detector_settings.h"
#include <vector>
#include "Detector_status.h"
@@ -150,6 +151,13 @@ public:
/// <summary>
///
/// </summary>
org::openapitools::server::model::Zeromq_metadata_settings getZeromqMetadata() const;
void setZeromqMetadata(org::openapitools::server::model::Zeromq_metadata_settings const& value);
bool zeromqMetadataIsSet() const;
void unsetZeromq_metadata();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Pixel_mask_statistics getPixelMask() const;
void setPixelMask(org::openapitools::server::model::Pixel_mask_statistics const& value);
bool pixelMaskIsSet() const;
@@ -180,6 +188,8 @@ protected:
bool m_CalibrationIsSet;
org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview;
bool m_Zeromq_previewIsSet;
org::openapitools::server::model::Zeromq_metadata_settings m_Zeromq_metadata;
bool m_Zeromq_metadataIsSet;
org::openapitools::server::model::Pixel_mask_statistics m_Pixel_mask;
bool m_Pixel_maskIsSet;

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -0,0 +1,148 @@
/**
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
#include "Zeromq_metadata_settings.h"
#include "Helpers.h"
#include <sstream>
namespace org::openapitools::server::model
{
Zeromq_metadata_settings::Zeromq_metadata_settings()
{
m_Enabled = true;
m_Period_ms = 1000L;
m_Socket_address = "";
m_Socket_addressIsSet = false;
}
void Zeromq_metadata_settings::validate() const
{
std::stringstream msg;
if (!validate(msg))
{
throw org::openapitools::server::helpers::ValidationException(msg.str());
}
}
bool Zeromq_metadata_settings::validate(std::stringstream& msg) const
{
return validate(msg, "");
}
bool Zeromq_metadata_settings::validate(std::stringstream& msg, const std::string& pathPrefix) const
{
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Zeromq_metadata_settings" : pathPrefix;
/* Period_ms */ {
const int64_t& value = m_Period_ms;
const std::string currentValuePath = _pathPrefix + ".periodMs";
if (value < 1ll)
{
success = false;
msg << currentValuePath << ": must be greater than or equal to 1;";
}
}
return success;
}
bool Zeromq_metadata_settings::operator==(const Zeromq_metadata_settings& rhs) const
{
return
(isEnabled() == rhs.isEnabled())
&&
(getPeriodMs() == rhs.getPeriodMs())
&&
((!socketAddressIsSet() && !rhs.socketAddressIsSet()) || (socketAddressIsSet() && rhs.socketAddressIsSet() && getSocketAddress() == rhs.getSocketAddress()))
;
}
bool Zeromq_metadata_settings::operator!=(const Zeromq_metadata_settings& rhs) const
{
return !(*this == rhs);
}
void to_json(nlohmann::json& j, const Zeromq_metadata_settings& o)
{
j = nlohmann::json::object();
j["enabled"] = o.m_Enabled;
j["period_ms"] = o.m_Period_ms;
if(o.socketAddressIsSet())
j["socket_address"] = o.m_Socket_address;
}
void from_json(const nlohmann::json& j, Zeromq_metadata_settings& o)
{
j.at("enabled").get_to(o.m_Enabled);
j.at("period_ms").get_to(o.m_Period_ms);
if(j.find("socket_address") != j.end())
{
j.at("socket_address").get_to(o.m_Socket_address);
o.m_Socket_addressIsSet = true;
}
}
bool Zeromq_metadata_settings::isEnabled() const
{
return m_Enabled;
}
void Zeromq_metadata_settings::setEnabled(bool const value)
{
m_Enabled = value;
}
int64_t Zeromq_metadata_settings::getPeriodMs() const
{
return m_Period_ms;
}
void Zeromq_metadata_settings::setPeriodMs(int64_t const value)
{
m_Period_ms = value;
}
std::string Zeromq_metadata_settings::getSocketAddress() const
{
return m_Socket_address;
}
void Zeromq_metadata_settings::setSocketAddress(std::string const& value)
{
m_Socket_address = value;
m_Socket_addressIsSet = true;
}
bool Zeromq_metadata_settings::socketAddressIsSet() const
{
return m_Socket_addressIsSet;
}
void Zeromq_metadata_settings::unsetSocket_address()
{
m_Socket_addressIsSet = false;
}
} // namespace org::openapitools::server::model

View File

@@ -0,0 +1,93 @@
/**
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
/*
* Zeromq_metadata_settings.h
*
*
*/
#ifndef Zeromq_metadata_settings_H_
#define Zeromq_metadata_settings_H_
#include <string>
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Zeromq_metadata_settings
{
public:
Zeromq_metadata_settings();
virtual ~Zeromq_metadata_settings() = 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 Zeromq_metadata_settings& rhs) const;
bool operator!=(const Zeromq_metadata_settings& rhs) const;
/////////////////////////////////////////////
/// Zeromq_metadata_settings members
/// <summary>
/// ZeroMQ metadata socket is enabled.
/// </summary>
bool isEnabled() const;
void setEnabled(bool const value);
/// <summary>
/// Period for generating metadata package sent to the ZeroMQ interface in milliseconds.
/// </summary>
int64_t getPeriodMs() const;
void setPeriodMs(int64_t const value);
/// <summary>
/// PUB ZeroMQ socket for image metadata information. Image metadata are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://&lt;socket file&gt; and tcp://&lt;IP address&gt;:&lt;port&gt; sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
/// </summary>
std::string getSocketAddress() const;
void setSocketAddress(std::string const& value);
bool socketAddressIsSet() const;
void unsetSocket_address();
friend void to_json(nlohmann::json& j, const Zeromq_metadata_settings& o);
friend void from_json(const nlohmann::json& j, Zeromq_metadata_settings& o);
protected:
bool m_Enabled;
int64_t m_Period_ms;
std::string m_Socket_address;
bool m_Socket_addressIsSet;
};
} // namespace org::openapitools::server::model
#endif /* Zeromq_metadata_settings_H_ */

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -23,8 +23,6 @@ Zeromq_preview_settings::Zeromq_preview_settings()
{
m_Enabled = true;
m_Period_ms = 1000L;
m_Send_start_message = true;
m_Send_start_messageIsSet = false;
m_Socket_address = "";
m_Socket_addressIsSet = false;
@@ -49,7 +47,7 @@ bool Zeromq_preview_settings::validate(std::stringstream& msg, const std::string
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Zeromq_preview_settings" : pathPrefix;
return success;
}
@@ -65,9 +63,6 @@ bool Zeromq_preview_settings::operator==(const Zeromq_preview_settings& rhs) con
&&
((!sendStartMessageIsSet() && !rhs.sendStartMessageIsSet()) || (sendStartMessageIsSet() && rhs.sendStartMessageIsSet() && isSendStartMessage() == rhs.isSendStartMessage())) &&
((!socketAddressIsSet() && !rhs.socketAddressIsSet()) || (socketAddressIsSet() && rhs.socketAddressIsSet() && getSocketAddress() == rhs.getSocketAddress()))
;
@@ -83,8 +78,6 @@ void to_json(nlohmann::json& j, const Zeromq_preview_settings& o)
j = nlohmann::json::object();
j["enabled"] = o.m_Enabled;
j["period_ms"] = o.m_Period_ms;
if(o.sendStartMessageIsSet())
j["send_start_message"] = o.m_Send_start_message;
if(o.socketAddressIsSet())
j["socket_address"] = o.m_Socket_address;
@@ -94,11 +87,6 @@ void from_json(const nlohmann::json& j, Zeromq_preview_settings& o)
{
j.at("enabled").get_to(o.m_Enabled);
j.at("period_ms").get_to(o.m_Period_ms);
if(j.find("send_start_message") != j.end())
{
j.at("send_start_message").get_to(o.m_Send_start_message);
o.m_Send_start_messageIsSet = true;
}
if(j.find("socket_address") != j.end())
{
j.at("socket_address").get_to(o.m_Socket_address);
@@ -123,23 +111,6 @@ void Zeromq_preview_settings::setPeriodMs(int64_t const value)
{
m_Period_ms = value;
}
bool Zeromq_preview_settings::isSendStartMessage() const
{
return m_Send_start_message;
}
void Zeromq_preview_settings::setSendStartMessage(bool const value)
{
m_Send_start_message = value;
m_Send_start_messageIsSet = true;
}
bool Zeromq_preview_settings::sendStartMessageIsSet() const
{
return m_Send_start_messageIsSet;
}
void Zeromq_preview_settings::unsetSend_start_message()
{
m_Send_start_messageIsSet = false;
}
std::string Zeromq_preview_settings::getSocketAddress() const
{
return m_Socket_address;

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -69,14 +69,7 @@ public:
int64_t getPeriodMs() const;
void setPeriodMs(int64_t const value);
/// <summary>
/// Publish start message on the preview ZeroMQ stream
/// </summary>
bool isSendStartMessage() const;
void setSendStartMessage(bool const value);
bool sendStartMessageIsSet() const;
void unsetSend_start_message();
/// <summary>
/// PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://&lt;socket file&gt; and tpc://&lt;IP address&gt;:&lt;port&gt; sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
/// PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate. Images are serialized using CBOR. Address follows ZeroMQ convention for sockets - in practice ipc://&lt;socket file&gt; and tcp://&lt;IP address&gt;:&lt;port&gt; sockets are OK. 0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
/// </summary>
std::string getSocketAddress() const;
void setSocketAddress(std::string const& value);
@@ -90,8 +83,6 @@ protected:
int64_t m_Period_ms;
bool m_Send_start_message;
bool m_Send_start_messageIsSet;
std::string m_Socket_address;
bool m_Socket_addressIsSet;

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -2,7 +2,7 @@
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU. Jungfraujoch uses FPGA boards to acquire data at high data rates.
*
* The version of the OpenAPI document: 1.0.0-rc.25
* The version of the OpenAPI document: 1.0.0-rc.26
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -5,7 +5,7 @@ info:
API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).
Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.
Jungfraujoch uses FPGA boards to acquire data at high data rates.
version: 1.0.0-rc.25
version: 1.0.0-rc.26
contact:
name: Filip Leonarski (Paul Scherrer Institute)
email: filip.leonarski@psi.ch
@@ -906,6 +906,8 @@ components:
$ref: '#/components/schemas/calibration_statistics'
zeromq_preview:
$ref: '#/components/schemas/zeromq_preview_settings'
zeromq_metadata:
$ref: '#/components/schemas/zeromq_metadata_settings'
pixel_mask:
$ref: '#/components/schemas/pixel_mask_statistics'
preview_settings:
@@ -1304,6 +1306,32 @@ components:
$ref: '#/components/schemas/image_pusher_type'
zeromq_preview:
$ref: '#/components/schemas/zeromq_preview_settings'
zeromq_metadata:
$ref: '#/components/schemas/zeromq_metadata_settings'
zeromq_metadata_settings:
type: object
required:
- enabled
- period_ms
properties:
enabled:
type: boolean
default: true
description: ZeroMQ metadata socket is enabled.
period_ms:
type: integer
format: int64
minimum: 1
default: 1000
description: |
Period for generating metadata package sent to the ZeroMQ interface in milliseconds.
socket_address:
type: string
description: |
PUB ZeroMQ socket for image metadata information.
Image metadata are serialized using CBOR.
Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tcp://<IP address>:<port> sockets are OK.
0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
zeromq_preview_settings:
type: object
required:
@@ -1322,17 +1350,12 @@ components:
Period for generating preview image sent to the ZeroMQ interface in milliseconds. Default is 1 second.
If set to zero, all images will be sent ZeroMQ (should be used only in case of relatively slow data collection).
This has no effect on HTTP based preview, which updates always at rate of 1 second.
send_start_message:
type: boolean
default: true
description: |
Publish start message on the preview ZeroMQ stream
socket_address:
type: string
description: |
PUB ZeroMQ socket for preview images. This socket operates at a reduced frame rate.
Images are serialized using CBOR.
Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tpc://<IP address>:<port> sockets are OK.
Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tcp://<IP address>:<port> sockets are OK.
0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
paths:
/initialize:
@@ -1823,6 +1846,43 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/zeromq_preview_settings'
/config/zeromq_metadata:
put:
summary: Set ZeroMQ metadata settings
description: |
Jungfraujoch can generate metadata message stream on ZeroMQ PUB socket. This stream covers all images.
Here settings of the socket can be adjusted.
While the data structure contains also socket_address, this cannot be changed via HTTP and is ignore in PUT request.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/zeromq_metadata_settings'
responses:
"200":
description: Everything OK
"400":
description: Input parsing or validation error
content:
text/plain:
schema:
type: string
description: Exception error
"500":
description: Error within Jungfraujoch code - see output message.
content:
application/json:
schema:
$ref: '#/components/schemas/error_message'
get:
summary: Get ZeroMQ metadata socket settings
responses:
"200":
description: Everything OK
content:
application/json:
schema:
$ref: '#/components/schemas/zeromq_metadata_settings'
/status:
get:
summary: Get Jungfraujoch status
@@ -2027,6 +2087,48 @@ paths:
schema:
type: string
description: Exception error
/plot/indexing_unit_cell:
get:
summary: Generate indexing unit cell length plots
description: Crystal unit cell based on indexing results; binning is configurable
parameters:
- $ref: '#/components/parameters/binning'
- $ref: '#/components/parameters/compression'
responses:
"200":
description: Response will be by default compressed with deflate algorithm, if using curl, use --compressed option.
content:
application/json:
schema:
$ref: '#/components/schemas/plots'
"400":
description: Input parsing or validation error
content:
text/plain:
schema:
type: string
description: Exception error
/plot/indexing_unit_cell_angle:
get:
summary: Generate indexing unit cell angle plot
description: Crystal unit cell based on indexing results; binning is configurable
parameters:
- $ref: '#/components/parameters/binning'
- $ref: '#/components/parameters/compression'
responses:
"200":
description: Response will be by default compressed with deflate algorithm, if using curl, use --compressed option.
content:
application/json:
schema:
$ref: '#/components/schemas/plots'
"400":
description: Input parsing or validation error
content:
text/plain:
schema:
type: string
description: Exception error
/plot/error_pixel:
get:
summary: Generate error pixels plot

File diff suppressed because one or more lines are too long

View File

@@ -8,7 +8,7 @@ ADUHistogram::ADUHistogram() : histogram(ADU_HISTO_BIN_COUNT) {
}
void ADUHistogram::Add(const std::vector<uint64_t>& input) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
if (input.size() != ADU_HISTO_BIN_COUNT)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Wrong vector input to ADUHistogram::Add");
for (int i = 0; i < ADU_HISTO_BIN_COUNT; i++)
@@ -16,7 +16,7 @@ void ADUHistogram::Add(const std::vector<uint64_t>& input) {
}
void ADUHistogram::Add(const DeviceOutput &output) {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
for (int i = 0; i < ADU_HISTO_BIN_COUNT; i++)
histogram[i] += output.adu_histogram[i];
}
@@ -26,7 +26,7 @@ const std::vector<uint64_t> &ADUHistogram::GetHistogram() const {
}
MultiLinePlot ADUHistogram::GetPlot() const {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
MultiLinePlot ret(1);
ret[0].x.resize(ADU_HISTO_BIN_COUNT);
ret[0].y.resize(ADU_HISTO_BIN_COUNT);
@@ -38,7 +38,7 @@ MultiLinePlot ADUHistogram::GetPlot() const {
}
void ADUHistogram::Restart() {
std::unique_lock<std::mutex> ul(m);
std::unique_lock ul(m);
for (int i = 0; i < ADU_HISTO_BIN_COUNT; i++)
histogram[i] = 0;
}

Some files were not shown because too many files have changed in this diff Show More