Compare commits

..

8 Commits

Author SHA1 Message Date
e6eb7af5ae Merge branch '2410-1.0.0.rc-18.fixes' into 'main'
Fixes to version 1.0.0-rc.18

See merge request jungfraujoch/nextgendcu!88
2024-10-17 16:29:39 +02:00
c9eb2ca65d Fixes to version 1.0.0-rc.18 2024-10-17 16:29:38 +02:00
3d9c93c32a Merge branch '2410-1.0.0-rc.18' into 'main'
version 1.0.0-rc.18

See merge request jungfraujoch/nextgendcu!87
2024-10-16 19:52:01 +02:00
1d7e5f173d version 1.0.0-rc.18 2024-10-16 19:52:01 +02:00
bc8afdcb55 Merge branch '2410-fpga-8x10g' into 'main'
Fixes to 8x10g FPGA image and frontend

See merge request jungfraujoch/nextgendcu!86
2024-10-16 09:12:24 +02:00
4ae0668f2f Fixes to 8x10g FPGA image and frontend 2024-10-16 09:12:24 +02:00
4cf20ae71b Merge branch '2410-rc.17-fixes' into 'main'
xbflash.qspi: Add tool from Xilinx to flash cards (it is a nightmare to...

See merge request jungfraujoch/nextgendcu!85
2024-10-15 09:27:22 +02:00
c7d255de6f xbflash.qspi: Add tool from Xilinx to flash cards (it is a nightmare to... 2024-10-15 09:27:22 +02:00
234 changed files with 8720 additions and 989 deletions

View File

@@ -15,7 +15,7 @@ build:x86:gcc:
script:
- mkdir build
- cd build
- source /opt/rh/gcc-toolset-12/enable
- source /opt/rh/gcc-toolset-12/enable
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j48
@@ -111,7 +111,7 @@ test:x86:gcc:
- gcc
- x86
script:
- source /opt/rh/gcc-toolset-12/enable
- source /opt/rh/gcc-toolset-12/enable
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
@@ -139,7 +139,7 @@ test:x86:crystfel:
- x86
- crystfel
script:
- source /opt/rh/gcc-toolset-12/enable
- source /opt/rh/gcc-toolset-12/enable
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
@@ -162,7 +162,7 @@ test:x86:xds_durin:
- x86
- xds
script:
- source /opt/rh/gcc-toolset-12/enable
- source /opt/rh/gcc-toolset-12/enable
- mkdir -p build
- cd build
- cmake -DCMAKE_BUILD_TYPE=Release ..
@@ -208,7 +208,7 @@ test:x86:xia2.ssx:
- x86
- xds
script:
- source /opt/rh/gcc-toolset-12/enable
- source /opt/rh/gcc-toolset-12/enable
- mkdir -p build
- mkdir -p dials_test
- cd build

View File

@@ -2,8 +2,8 @@
To deploy Jungfraujoch, one needs to follow four steps:
1. Flash the U55C FPGA card with a proper image and install Linux kernel driver
2. Install main Jungfraujoch code and frontend web interface
1. Install main Jungfraujoch code and frontend web interface
2. Flash the U55C FPGA card with a proper image and install Linux kernel driver
3. Install Jungfraujoch writer
4. Install Python OpenAPI client
@@ -11,21 +11,38 @@ Installation procedure depend a lot on the operating system. For RedHat Enterpri
installation can be done with prebuilt RPMs and is relatively straightforward. For other systems one needs to build
software from source. Both ways will be presented.
## Install main Jungfraujoch code and frontend web interface
On RHEL 8 systems there is a `jfjoch-<version>-1.el8.x86_64.rpm` that needs to be installed and contains all the necessary software and web interface.
On other OSes one needs to compile Jungfraujoch from source (from the repo directory):
```
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=<directory to install>
$ make
$ sudo make install
```
For manual installation, we recommend to use non-standard directory (like `/opt/jfjoch`), to facilitate upgrades and removal.
Frontend web user interface has to be built separately with:
```
$ cd build
$ make frontend
```
Frontend files (.html and .js) will be placed in `frontend/dist` (outside of `build/` directory!) and has to be copied to a general location, e.g. `/usr/local/jfjoch/frontend` or `/opt/jfjoch/frotend`.
## Flash the U55C FPGA card with a proper image and install Linux kernel driver.
### Firmware flashing
1. Install the `xbflash2` tool from Xilinx, which allows to flash the firmware through PCIe connector.
It can be downloaded as RPM/DEB file from [Alveo product page](https://www.xilinx.com/products/boards-and-kits/alveo/u55c.html#xbflash2). For RHEL9 this needs to built from source - [Xilinx/XRT github repository](https://github.com/Xilinx/XRT).
2. Check that the card is detected by OS with "lspci |grep Xilinx" and check the PCIe slot number (`11:00.0` in this case):
1. Check that the card is detected by OS with "lspci |grep Xilinx" and check the PCIe bus/device/function (BDF) number, `11:00.0` in this case:
```
$ lspci |grep Xilinx
23:00.0 Processing accelerators: Xilinx Corporation Device 3450 (rev 58)
23:00.0 Processing accelerators: Xilinx Corporation Device 3450 (rev 2)
```
Note the device number `3450` that identifies Jungfraujoch device (Jungfraujoch pass is 3450 m above sea level) and `rev 58` identifying release of the firmware.
3. Check the speed of the card, that it is detected as PCIe Gen4x8 device (needs to be done as root, otherwise configuration details are not given):
Note the device number `3450` that identifies Jungfraujoch device (Jungfraujoch pass is 3450 m above sea level) and `rev 2` identifying release of the firmware.
2. Check the speed of the card, that it is detected as PCIe Gen4x8 device (needs to be done as root, otherwise configuration details are not given):
```
$ sudo lspci -vv -s <PCIe slot number>
23:00.0 Processing accelerators: Xilinx Corporation Device 3450
@@ -34,20 +51,20 @@ LnkSta: Speed 16GT/s (ok), Width x8 (ok)
(...)
```
4. Download the MCS image from release files or build it using Vivado (WARNING! building time can be about 8 hours and doesn't allways reach correct timing).
5. Flash the card with xbflash2. For fresh card use:
3. Download the MCS image from release files or build it using Vivado (WARNING! building time can be about 8 hours and doesn't allways reach correct timing).
4. Flash the card with `xbflash.qspi` tool (part of Jungfraujoch). For fresh card use:
```
sudo xbflash2 program --spi --image <path to MCS file> --bar-offset 0x1f06000 -d <PCIe slot from above>
sudo xbflash.qspi --primary <path to MCS file> --card <PCIe slot from above> --bar-offset 0x1f06000
```
For card that was already flashed with Jungfraujoch images:
```
sudo xbflash2 program --spi --image <path to MCS file> -d <PCIe slot from above>
sudo xbflash.qspi --primary <path to MCS file> --card <PCIe slot from above>
```
It is necessary to confirm the operation by pressing `Y` key.
It is necessary to confirm the operation by pressing `Y` key or one can add `--force` option to avoid confirmation.
It is safe to run multiple flashing processes in parallel for different cards, for example in separate screen sessions.
6. Cold reboot:
5. Cold reboot:
```
sudo ipmitool chassis power cycle
```
@@ -82,27 +99,6 @@ $ sudo dracut -f
Configure switch according to [FPGA network guide](fpga/NETWORK.md) - specifically set manual speed and turn off auto-negotiation
for the port used to connect U55C card and connect card to switch.
## Install main Jungfraujoch code and frontend web interface
On RHEL 8 systems there is a `jfjoch-<version>-1.el8.x86_64.rpm` that needs to be installed and contains all the necessary software and web interface.
On other OSes one needs to compile Jungfraujoch from source (from the repo directory):
```
$ mkdir build
$ cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=<directory to install>
$ make
$ sudo make install
```
For manual installation, we recommend to use non-standard directory (like `/opt/jfjoch`), to facilitate upgrades and removal.
Frontend web user interface has to be built separately with:
```
$ cd build
$ make frontend
```
Frontend files (.html and .js) will be placed in `frontend/dist` (outside of `build/` directory!) and has to be copied to a general location, e.g. `/usr/local/jfjoch/frontend` or `/opt/jfjoch/frotend`.
### Running Jungfraujoch software
Main Jungfraujoch service is called `jfjoch_broker`. It is responsible for handling data from FPGAs, doing processing, analysis, compression and sending images on ZeroMQ output.
It is recommended to run the service as `systemd` service.

View File

@@ -1 +1 @@
1.0.0-rc.17
1.0.0-rc.18

View File

@@ -493,9 +493,30 @@ void JFJochBrokerHttp::statistics_get(const std::optional<bool> &compression, Pi
if (det_status.has_value())
statistics.setDetector(Convert(det_status.value()));
statistics.setDetectorSettings(Convert(state_machine.GetDetectorSettings()));
statistics.setDetectorList(Convert(state_machine.GetDetectorsList()));
statistics.setDataProcessingSettings(Convert(state_machine.GetSpotFindingSettings()));
statistics.setInstrumentMetadata(Convert(state_machine.GetInstrumentMetadata()));
statistics.setImageFormatSettings(Convert(state_machine.GetImageFormatSettings()));
auto zeromq_prev = state_machine.GetPreviewSocketSettings();
if (!zeromq_prev.address.empty())
statistics.setZeromqPreview(Convert(zeromq_prev));
nlohmann::json j = statistics;
if (!compression.has_value() || compression.value())
response.setCompression(Pistache::Http::Header::Encoding::Deflate);
response.send(Pistache::Http::Code::Ok, j.dump(), MIME(Application, Json));
}
void JFJochBrokerHttp::config_zeromq_preview_get(Pistache::Http::ResponseWriter &response) {
ProcessOutput(Convert(state_machine.GetPreviewSocketSettings()), response);
}
void JFJochBrokerHttp::config_zeromq_preview_put(
const org::openapitools::server::model::Zeromq_preview_settings &zeromqPreviewSettings,
Pistache::Http::ResponseWriter &response) {
state_machine.SetPreviewSocketSettings(Convert(zeromqPreviewSettings));
response.send(Pistache::Http::Code::Ok);
}

View File

@@ -163,6 +163,12 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi {
void statistics_get(const std::optional<bool> &compression, Pistache::Http::ResponseWriter &response) override;
void config_zeromq_preview_get(Pistache::Http::ResponseWriter &response) override;
void
config_zeromq_preview_put(const org::openapitools::server::model::Zeromq_preview_settings &zeromqPreviewSettings,
Pistache::Http::ResponseWriter &response) override;
public:
JFJochBrokerHttp(const DiffractionExperiment& experiment, std::shared_ptr<Pistache::Rest::Router> &rtr);
void AddDetectorSetup(const DetectorSetup &setup);

View File

@@ -89,7 +89,9 @@ DetectorSetup ParseDetectorSetup(const org::openapitools::server::model::Detecto
.SensorThickness_um(d.getSensorThicknessUm())
// .PixelSize_um(GET_FLOAT(j, "pixel_size_um", 75.0f))
.SensorMaterial(d.getSensorMaterial())
.SerialNumber(d.getSerialNumber());
.SerialNumber(d.getSerialNumber())
.ModuleSync(d.isModuleSync());
if (d.baseDataIpv4AddressIsSet())
setup.BaseIPv4Addr(d.getBaseDataIpv4Address());
if (d.txDelayIsSet())
@@ -128,9 +130,6 @@ std::unique_ptr<ImagePusher> ParseZMQImagePusher(const org::openapitools::server
send_watermark,
send_buffer_size);
if (j.getZeromq().previewSocketIsSet())
tmp->PreviewSocket(j.getZeromq().getPreviewSocket());
if (j.getZeromq().writerNotificationSocketIsSet())
tmp->WriterNotificationSocket(j.getZeromq().getWriterNotificationSocket());
return std::move(tmp);
@@ -162,3 +161,17 @@ void ParseAcquisitionDeviceGroup(const org::openapitools::server::model::Jfjoch_
aq_devices.AddPCIeDevice(p.getBlk(), ipv4_addr);
}
}
void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settings &input, JFJochReceiverService &service) {
std::string numa_policy = input.getNumaPolicy();
if (!numa_policy.empty())
service.NUMAPolicy(numa_policy);
// Using default in case
service.NumThreads(input.getReceiverThreads());
if (input.zeromqPreviewIsSet()) {
service.PreviewSocket(input.getZeromqPreview().getSocketAddress());
service.PreviewSocketSettings(Convert(input.getZeromqPreview()));
}
}

View File

@@ -6,7 +6,7 @@
#include "../common/DiffractionExperiment.h"
#include "../acquisition_device/AcquisitionDeviceGroup.h"
#include "../image_pusher/ImagePusher.h"
#include "../receiver/JFJochReceiverService.h"
#include "gen/model/Jfjoch_settings.h"
DetectorGeometry ParseStandardDetectorGeometry(const org::openapitools::server::model::Detector &j);
@@ -19,5 +19,6 @@ void ParseFacilityConfiguration(const org::openapitools::server::model::Jfjoch_s
std::unique_ptr<ImagePusher> ParseImagePusher(const org::openapitools::server::model::Jfjoch_settings &j);
void ParseAcquisitionDeviceGroup(const org::openapitools::server::model::Jfjoch_settings &input, AcquisitionDeviceGroup &aq_devices);
void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settings &input, JFJochReceiverService &service);
#endif //JUNGFRAUJOCH_JFJOCHBROKERPARSER_H

View File

@@ -199,4 +199,16 @@ std::vector<DeviceStatus> JFJochServices::GetDeviceStatus() const {
if (receiver)
ret = receiver->GetDeviceStatus();
return ret;
}
}
ZMQPreviewSettings JFJochServices::GetPreviewSocketSettings() {
if (receiver)
return receiver->GetPreviewSocketSettings();
else
return {};
}
void JFJochServices::SetPreviewSocketSettings(const ZMQPreviewSettings &input) {
if (receiver)
receiver->PreviewSocketSettings(input);
}

View File

@@ -49,6 +49,9 @@ public:
void GetXFELEventCode(std::vector<uint64_t> &v) const;
std::vector<DeviceStatus> GetDeviceStatus() const;
void SetPreviewSocketSettings(const ZMQPreviewSettings &input);
ZMQPreviewSettings GetPreviewSocketSettings();
};

View File

@@ -46,6 +46,13 @@ bool JFJochStateMachine::ImportPedestalG1G2(const JFJochReceiverOutput &receiver
}
void JFJochStateMachine::TakePedestalInternalAll(std::unique_lock<std::mutex> &ul) {
if (experiment.GetDetectorSetup().GetDetectorType() == DetectorType::EIGER) {
logger.Info("EIGER configuration");
services.ConfigureDetector(experiment);
logger.Info(" ... done ");
return;
}
calibration = std::make_unique<JFCalibration>(experiment);
if (!gain_calibration.empty()) {
@@ -704,4 +711,12 @@ void JFJochStateMachine::ConvImageFormatSettings() {
std::vector<DeviceStatus> JFJochStateMachine::GetDeviceStatus() const {
return services.GetDeviceStatus();
}
}
void JFJochStateMachine::SetPreviewSocketSettings(const ZMQPreviewSettings &input) {
services.SetPreviewSocketSettings(input);
}
ZMQPreviewSettings JFJochStateMachine::GetPreviewSocketSettings() {
return services.GetPreviewSocketSettings();
}

View File

@@ -176,6 +176,9 @@ public:
std::string GetUserPixelMaskTIFF() const;
void SetUserPixelMask(const std::string &v);
std::vector<DeviceStatus> GetDeviceStatus() const;
void SetPreviewSocketSettings(const ZMQPreviewSettings &input);
ZMQPreviewSettings GetPreviewSocketSettings();
};

View File

@@ -556,3 +556,22 @@ std::vector<org::openapitools::server::model::Fpga_status_inner> Convert(const s
}
return ret;
}
ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_preview_settings &input) {
ZMQPreviewSettings ret;
if (input.isEnabled())
ret.period = std::chrono::milliseconds(input.getPeriodMs());
else
ret.period = {};
ret.address = "";
return ret;
}
org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPreviewSettings &settings) {
org::openapitools::server::model::Zeromq_preview_settings ret;
ret.setEnabled(settings.period.has_value());
if (settings.period.has_value())
ret.setPeriodMs(settings.period.value().count() / 1000);
ret.setSocketAddress(settings.address);
return ret;
}

View File

@@ -28,6 +28,7 @@
#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);
@@ -57,4 +58,7 @@ org::openapitools::server::model::Image_format_settings Convert(const ImageForma
DatasetSettings Convert(const org::openapitools::server::model::Dataset_settings& input);
std::vector<org::openapitools::server::model::Fpga_status_inner> Convert(const std::vector<DeviceStatus> &input);
org::openapitools::server::model::Zeromq_preview_settings Convert(const ZMQPreviewSettings& settings);
ZMQPreviewSettings Convert(const org::openapitools::server::model::Zeromq_preview_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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -53,6 +53,8 @@ void DefaultApi::setupRoutes() {
Routes::Put(*router, base + "/config/spot_finding", Routes::bind(&DefaultApi::config_spot_finding_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_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));
Routes::Get(*router, base + "/detector/status", Routes::bind(&DefaultApi::detector_status_get_handler, this));
Routes::Get(*router, base + "/fpga_status", Routes::bind(&DefaultApi::fpga_status_get_handler, this));
@@ -572,6 +574,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_preview_get_handler(const Pistache::Rest::Request &, Pistache::Http::ResponseWriter response) {
try {
try {
this->config_zeromq_preview_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_preview_put_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
try {
// Getting the body param
Zeromq_preview_settings zeromqPreviewSettings;
try {
nlohmann::json::parse(request.body()).get_to(zeromqPreviewSettings);
zeromqPreviewSettings.validate();
} catch (std::exception &e) {
this->handleParsingException(e, response);
return;
}
try {
this->config_zeromq_preview_put(zeromqPreviewSettings, 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::deactivate_post_handler(const Pistache::Rest::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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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_preview_settings.h"
#include <string>
#include <vector>
@@ -84,6 +85,8 @@ private:
void config_spot_finding_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_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);
void detector_status_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void fpga_status_get_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
@@ -297,6 +300,21 @@ private:
/// </remarks>
virtual void config_user_mask_tiff_put(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Get ZeroMQ preview settings
/// </summary>
/// <remarks>
///
/// </remarks>
virtual void config_zeromq_preview_get(Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Set ZeroMQ preview settings
/// </summary>
/// <remarks>
/// Jungfraujoch can generate preview message stream on ZeroMQ SUB socket. 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. Options set with this PUT request have no effect on HTTP based preview.
/// </remarks>
/// <param name="zeromqPreviewSettings"> (optional)</param>
virtual void config_zeromq_preview_put(const org::openapitools::server::model::Zeromq_preview_settings &zeromqPreviewSettings, Pistache::Http::ResponseWriter &response) = 0;
/// <summary>
/// Prepare detector to turn off
/// </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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -28,6 +28,8 @@ Detector::Detector()
m_High_voltage_VIsSet = false;
m_Udp_interface_count = 1L;
m_Udp_interface_countIsSet = false;
m_Module_sync = true;
m_Module_syncIsSet = false;
m_Sensor_thickness_um = 320.0f;
m_Sensor_thickness_umIsSet = false;
m_Calibration_fileIsSet = false;
@@ -129,7 +131,7 @@ bool Detector::validate(std::stringstream& msg, const std::string& pathPrefix) c
}
}
if (sensorThicknessUmIsSet())
{
const float& value = m_Sensor_thickness_um;
@@ -252,6 +254,9 @@ bool Detector::operator==(const Detector& rhs) const
((!udpInterfaceCountIsSet() && !rhs.udpInterfaceCountIsSet()) || (udpInterfaceCountIsSet() && rhs.udpInterfaceCountIsSet() && getUdpInterfaceCount() == rhs.getUdpInterfaceCount())) &&
((!moduleSyncIsSet() && !rhs.moduleSyncIsSet()) || (moduleSyncIsSet() && rhs.moduleSyncIsSet() && isModuleSync() == rhs.isModuleSync())) &&
((!sensorThicknessUmIsSet() && !rhs.sensorThicknessUmIsSet()) || (sensorThicknessUmIsSet() && rhs.sensorThicknessUmIsSet() && getSensorThicknessUm() == rhs.getSensorThicknessUm())) &&
@@ -297,6 +302,8 @@ void to_json(nlohmann::json& j, const Detector& o)
j["high_voltage_V"] = o.m_High_voltage_V;
if(o.udpInterfaceCountIsSet())
j["udp_interface_count"] = o.m_Udp_interface_count;
if(o.moduleSyncIsSet())
j["module_sync"] = o.m_Module_sync;
if(o.sensorThicknessUmIsSet())
j["sensor_thickness_um"] = o.m_Sensor_thickness_um;
if(o.calibrationFileIsSet() || !o.m_Calibration_file.empty())
@@ -337,6 +344,11 @@ void from_json(const nlohmann::json& j, Detector& o)
j.at("udp_interface_count").get_to(o.m_Udp_interface_count);
o.m_Udp_interface_countIsSet = true;
}
if(j.find("module_sync") != j.end())
{
j.at("module_sync").get_to(o.m_Module_sync);
o.m_Module_syncIsSet = true;
}
if(j.find("sensor_thickness_um") != j.end())
{
j.at("sensor_thickness_um").get_to(o.m_Sensor_thickness_um);
@@ -452,6 +464,23 @@ void Detector::unsetUdp_interface_count()
{
m_Udp_interface_countIsSet = false;
}
bool Detector::isModuleSync() const
{
return m_Module_sync;
}
void Detector::setModuleSync(bool const value)
{
m_Module_sync = value;
m_Module_syncIsSet = true;
}
bool Detector::moduleSyncIsSet() const
{
return m_Module_syncIsSet;
}
void Detector::unsetModule_sync()
{
m_Module_syncIsSet = false;
}
float Detector::getSensorThicknessUm() const
{
return m_Sensor_thickness_um;

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -94,6 +94,13 @@ public:
bool udpInterfaceCountIsSet() const;
void unsetUdp_interface_count();
/// <summary>
/// Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER).
/// </summary>
bool isModuleSync() const;
void setModuleSync(bool const value);
bool moduleSyncIsSet() const;
void unsetModule_sync();
/// <summary>
///
/// </summary>
float getSensorThicknessUm() const;
@@ -170,6 +177,8 @@ protected:
bool m_High_voltage_VIsSet;
int64_t m_Udp_interface_count;
bool m_Udp_interface_countIsSet;
bool m_Module_sync;
bool m_Module_syncIsSet;
float m_Sensor_thickness_um;
bool m_Sensor_thickness_umIsSet;
std::vector<std::string> m_Calibration_file;

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -26,7 +26,6 @@ Detector_list_detectors_inner::Detector_list_detectors_inner()
m_Serial_number = "";
m_Base_ipv4_addr = "";
m_Udp_interface_count = 0L;
m_Udp_interface_countIsSet = false;
m_Nmodules = 0L;
m_Width = 0L;
m_Height = 0L;
@@ -87,8 +86,8 @@ bool Detector_list_detectors_inner::operator==(const Detector_list_detectors_inn
(getBaseIpv4Addr() == rhs.getBaseIpv4Addr())
&&
((!udpInterfaceCountIsSet() && !rhs.udpInterfaceCountIsSet()) || (udpInterfaceCountIsSet() && rhs.udpInterfaceCountIsSet() && getUdpInterfaceCount() == rhs.getUdpInterfaceCount())) &&
(getUdpInterfaceCount() == rhs.getUdpInterfaceCount())
&&
(getNmodules() == rhs.getNmodules())
&&
@@ -114,8 +113,7 @@ void to_json(nlohmann::json& j, const Detector_list_detectors_inner& o)
j["description"] = o.m_Description;
j["serial_number"] = o.m_Serial_number;
j["base_ipv4_addr"] = o.m_Base_ipv4_addr;
if(o.udpInterfaceCountIsSet())
j["udp_interface_count"] = o.m_Udp_interface_count;
j["udp_interface_count"] = o.m_Udp_interface_count;
j["nmodules"] = o.m_Nmodules;
j["width"] = o.m_Width;
j["height"] = o.m_Height;
@@ -128,11 +126,7 @@ void from_json(const nlohmann::json& j, Detector_list_detectors_inner& o)
j.at("description").get_to(o.m_Description);
j.at("serial_number").get_to(o.m_Serial_number);
j.at("base_ipv4_addr").get_to(o.m_Base_ipv4_addr);
if(j.find("udp_interface_count") != j.end())
{
j.at("udp_interface_count").get_to(o.m_Udp_interface_count);
o.m_Udp_interface_countIsSet = true;
}
j.at("udp_interface_count").get_to(o.m_Udp_interface_count);
j.at("nmodules").get_to(o.m_Nmodules);
j.at("width").get_to(o.m_Width);
j.at("height").get_to(o.m_Height);
@@ -178,15 +172,6 @@ int64_t Detector_list_detectors_inner::getUdpInterfaceCount() const
void Detector_list_detectors_inner::setUdpInterfaceCount(int64_t const value)
{
m_Udp_interface_count = value;
m_Udp_interface_countIsSet = true;
}
bool Detector_list_detectors_inner::udpInterfaceCountIsSet() const
{
return m_Udp_interface_countIsSet;
}
void Detector_list_detectors_inner::unsetUdp_interface_count()
{
m_Udp_interface_countIsSet = false;
}
int64_t Detector_list_detectors_inner::getNmodules() const
{

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -83,8 +83,6 @@ public:
/// </summary>
int64_t getUdpInterfaceCount() const;
void setUdpInterfaceCount(int64_t const value);
bool udpInterfaceCountIsSet() const;
void unsetUdp_interface_count();
/// <summary>
///
/// </summary>
@@ -113,7 +111,7 @@ protected:
std::string m_Base_ipv4_addr;
int64_t m_Udp_interface_count;
bool m_Udp_interface_countIsSet;
int64_t m_Nmodules;
int64_t m_Width;

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -34,6 +34,7 @@ Jfjoch_settings::Jfjoch_settings()
m_Numa_policy = "";
m_Numa_policyIsSet = false;
m_Frontend_directory = "";
m_Zeromq_previewIsSet = false;
}
@@ -131,7 +132,7 @@ bool Jfjoch_settings::validate(std::stringstream& msg, const std::string& pathPr
}
}
return success;
}
@@ -174,8 +175,11 @@ bool Jfjoch_settings::operator==(const Jfjoch_settings& rhs) const
&&
(getImagePusher() == rhs.getImagePusher())
&&
((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview()))
;
}
@@ -208,6 +212,8 @@ void to_json(nlohmann::json& j, const Jfjoch_settings& o)
j["numa_policy"] = o.m_Numa_policy;
j["frontend_directory"] = o.m_Frontend_directory;
j["image_pusher"] = o.m_Image_pusher;
if(o.zeromqPreviewIsSet())
j["zeromq_preview"] = o.m_Zeromq_preview;
}
@@ -261,6 +267,11 @@ void from_json(const nlohmann::json& j, Jfjoch_settings& o)
}
j.at("frontend_directory").get_to(o.m_Frontend_directory);
j.at("image_pusher").get_to(o.m_Image_pusher);
if(j.find("zeromq_preview") != j.end())
{
j.at("zeromq_preview").get_to(o.m_Zeromq_preview);
o.m_Zeromq_previewIsSet = true;
}
}
@@ -441,6 +452,23 @@ void Jfjoch_settings::setImagePusher(org::openapitools::server::model::Image_pus
{
m_Image_pusher = value;
}
org::openapitools::server::model::Zeromq_preview_settings Jfjoch_settings::getZeromqPreview() const
{
return m_Zeromq_preview;
}
void Jfjoch_settings::setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value)
{
m_Zeromq_preview = value;
m_Zeromq_previewIsSet = true;
}
bool Jfjoch_settings::zeromqPreviewIsSet() const
{
return m_Zeromq_previewIsSet;
}
void Jfjoch_settings::unsetZeromq_preview()
{
m_Zeromq_previewIsSet = 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -20,6 +20,7 @@
#include "Detector.h"
#include "Zeromq_preview_settings.h"
#include "Image_pusher_type.h"
#include "Pcie_devices_inner.h"
#include <string>
@@ -145,6 +146,13 @@ public:
/// </summary>
org::openapitools::server::model::Image_pusher_type getImagePusher() const;
void setImagePusher(org::openapitools::server::model::Image_pusher_type const& value);
/// <summary>
///
/// </summary>
org::openapitools::server::model::Zeromq_preview_settings getZeromqPreview() const;
void setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value);
bool zeromqPreviewIsSet() const;
void unsetZeromq_preview();
friend void to_json(nlohmann::json& j, const Jfjoch_settings& o);
friend void from_json(const nlohmann::json& j, Jfjoch_settings& o);
@@ -173,6 +181,8 @@ protected:
org::openapitools::server::model::Image_pusher_type m_Image_pusher;
org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview;
bool m_Zeromq_previewIsSet;
};

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -22,10 +22,16 @@ namespace org::openapitools::server::model
Jfjoch_statistics::Jfjoch_statistics()
{
m_DetectorIsSet = false;
m_Detector_listIsSet = false;
m_Detector_settingsIsSet = false;
m_Image_format_settingsIsSet = false;
m_Instrument_metadataIsSet = false;
m_Data_processing_settingsIsSet = false;
m_MeasurementIsSet = false;
m_BrokerIsSet = false;
m_FpgaIsSet = false;
m_CalibrationIsSet = false;
m_Zeromq_previewIsSet = false;
}
@@ -48,7 +54,7 @@ bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& path
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Jfjoch_statistics" : pathPrefix;
if (fpgaIsSet())
{
const std::vector<org::openapitools::server::model::Fpga_status_inner>& value = m_Fpga;
@@ -90,7 +96,7 @@ bool Jfjoch_statistics::validate(std::stringstream& msg, const std::string& path
}
}
return success;
}
@@ -103,6 +109,21 @@ bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const
((!detectorIsSet() && !rhs.detectorIsSet()) || (detectorIsSet() && rhs.detectorIsSet() && getDetector() == rhs.getDetector())) &&
((!detectorListIsSet() && !rhs.detectorListIsSet()) || (detectorListIsSet() && rhs.detectorListIsSet() && getDetectorList() == rhs.getDetectorList())) &&
((!detectorSettingsIsSet() && !rhs.detectorSettingsIsSet()) || (detectorSettingsIsSet() && rhs.detectorSettingsIsSet() && getDetectorSettings() == rhs.getDetectorSettings())) &&
((!imageFormatSettingsIsSet() && !rhs.imageFormatSettingsIsSet()) || (imageFormatSettingsIsSet() && rhs.imageFormatSettingsIsSet() && getImageFormatSettings() == rhs.getImageFormatSettings())) &&
((!instrumentMetadataIsSet() && !rhs.instrumentMetadataIsSet()) || (instrumentMetadataIsSet() && rhs.instrumentMetadataIsSet() && getInstrumentMetadata() == rhs.getInstrumentMetadata())) &&
((!dataProcessingSettingsIsSet() && !rhs.dataProcessingSettingsIsSet()) || (dataProcessingSettingsIsSet() && rhs.dataProcessingSettingsIsSet() && getDataProcessingSettings() == rhs.getDataProcessingSettings())) &&
((!measurementIsSet() && !rhs.measurementIsSet()) || (measurementIsSet() && rhs.measurementIsSet() && getMeasurement() == rhs.getMeasurement())) &&
@@ -112,7 +133,10 @@ bool Jfjoch_statistics::operator==(const Jfjoch_statistics& rhs) const
((!fpgaIsSet() && !rhs.fpgaIsSet()) || (fpgaIsSet() && rhs.fpgaIsSet() && getFpga() == rhs.getFpga())) &&
((!calibrationIsSet() && !rhs.calibrationIsSet()) || (calibrationIsSet() && rhs.calibrationIsSet() && getCalibration() == rhs.getCalibration()))
((!calibrationIsSet() && !rhs.calibrationIsSet()) || (calibrationIsSet() && rhs.calibrationIsSet() && getCalibration() == rhs.getCalibration())) &&
((!zeromqPreviewIsSet() && !rhs.zeromqPreviewIsSet()) || (zeromqPreviewIsSet() && rhs.zeromqPreviewIsSet() && getZeromqPreview() == rhs.getZeromqPreview()))
;
}
@@ -127,6 +151,16 @@ void to_json(nlohmann::json& j, const Jfjoch_statistics& o)
j = nlohmann::json::object();
if(o.detectorIsSet())
j["detector"] = o.m_Detector;
if(o.detectorListIsSet())
j["detector_list"] = o.m_Detector_list;
if(o.detectorSettingsIsSet())
j["detector_settings"] = o.m_Detector_settings;
if(o.imageFormatSettingsIsSet())
j["image_format_settings"] = o.m_Image_format_settings;
if(o.instrumentMetadataIsSet())
j["instrument_metadata"] = o.m_Instrument_metadata;
if(o.dataProcessingSettingsIsSet())
j["data_processing_settings"] = o.m_Data_processing_settings;
if(o.measurementIsSet())
j["measurement"] = o.m_Measurement;
if(o.brokerIsSet())
@@ -135,6 +169,8 @@ void to_json(nlohmann::json& j, const Jfjoch_statistics& o)
j["fpga"] = o.m_Fpga;
if(o.calibrationIsSet() || !o.m_Calibration.empty())
j["calibration"] = o.m_Calibration;
if(o.zeromqPreviewIsSet())
j["zeromq_preview"] = o.m_Zeromq_preview;
}
@@ -145,6 +181,31 @@ void from_json(const nlohmann::json& j, Jfjoch_statistics& o)
j.at("detector").get_to(o.m_Detector);
o.m_DetectorIsSet = true;
}
if(j.find("detector_list") != j.end())
{
j.at("detector_list").get_to(o.m_Detector_list);
o.m_Detector_listIsSet = true;
}
if(j.find("detector_settings") != j.end())
{
j.at("detector_settings").get_to(o.m_Detector_settings);
o.m_Detector_settingsIsSet = true;
}
if(j.find("image_format_settings") != j.end())
{
j.at("image_format_settings").get_to(o.m_Image_format_settings);
o.m_Image_format_settingsIsSet = true;
}
if(j.find("instrument_metadata") != j.end())
{
j.at("instrument_metadata").get_to(o.m_Instrument_metadata);
o.m_Instrument_metadataIsSet = true;
}
if(j.find("data_processing_settings") != j.end())
{
j.at("data_processing_settings").get_to(o.m_Data_processing_settings);
o.m_Data_processing_settingsIsSet = true;
}
if(j.find("measurement") != j.end())
{
j.at("measurement").get_to(o.m_Measurement);
@@ -165,6 +226,11 @@ void from_json(const nlohmann::json& j, Jfjoch_statistics& o)
j.at("calibration").get_to(o.m_Calibration);
o.m_CalibrationIsSet = true;
}
if(j.find("zeromq_preview") != j.end())
{
j.at("zeromq_preview").get_to(o.m_Zeromq_preview);
o.m_Zeromq_previewIsSet = true;
}
}
@@ -185,6 +251,91 @@ void Jfjoch_statistics::unsetDetector()
{
m_DetectorIsSet = false;
}
org::openapitools::server::model::Detector_list Jfjoch_statistics::getDetectorList() const
{
return m_Detector_list;
}
void Jfjoch_statistics::setDetectorList(org::openapitools::server::model::Detector_list const& value)
{
m_Detector_list = value;
m_Detector_listIsSet = true;
}
bool Jfjoch_statistics::detectorListIsSet() const
{
return m_Detector_listIsSet;
}
void Jfjoch_statistics::unsetDetector_list()
{
m_Detector_listIsSet = false;
}
org::openapitools::server::model::Detector_settings Jfjoch_statistics::getDetectorSettings() const
{
return m_Detector_settings;
}
void Jfjoch_statistics::setDetectorSettings(org::openapitools::server::model::Detector_settings const& value)
{
m_Detector_settings = value;
m_Detector_settingsIsSet = true;
}
bool Jfjoch_statistics::detectorSettingsIsSet() const
{
return m_Detector_settingsIsSet;
}
void Jfjoch_statistics::unsetDetector_settings()
{
m_Detector_settingsIsSet = false;
}
org::openapitools::server::model::Image_format_settings Jfjoch_statistics::getImageFormatSettings() const
{
return m_Image_format_settings;
}
void Jfjoch_statistics::setImageFormatSettings(org::openapitools::server::model::Image_format_settings const& value)
{
m_Image_format_settings = value;
m_Image_format_settingsIsSet = true;
}
bool Jfjoch_statistics::imageFormatSettingsIsSet() const
{
return m_Image_format_settingsIsSet;
}
void Jfjoch_statistics::unsetImage_format_settings()
{
m_Image_format_settingsIsSet = false;
}
org::openapitools::server::model::Instrument_metadata Jfjoch_statistics::getInstrumentMetadata() const
{
return m_Instrument_metadata;
}
void Jfjoch_statistics::setInstrumentMetadata(org::openapitools::server::model::Instrument_metadata const& value)
{
m_Instrument_metadata = value;
m_Instrument_metadataIsSet = true;
}
bool Jfjoch_statistics::instrumentMetadataIsSet() const
{
return m_Instrument_metadataIsSet;
}
void Jfjoch_statistics::unsetInstrument_metadata()
{
m_Instrument_metadataIsSet = false;
}
org::openapitools::server::model::Spot_finding_settings Jfjoch_statistics::getDataProcessingSettings() const
{
return m_Data_processing_settings;
}
void Jfjoch_statistics::setDataProcessingSettings(org::openapitools::server::model::Spot_finding_settings const& value)
{
m_Data_processing_settings = value;
m_Data_processing_settingsIsSet = true;
}
bool Jfjoch_statistics::dataProcessingSettingsIsSet() const
{
return m_Data_processing_settingsIsSet;
}
void Jfjoch_statistics::unsetData_processing_settings()
{
m_Data_processing_settingsIsSet = false;
}
org::openapitools::server::model::Measurement_statistics Jfjoch_statistics::getMeasurement() const
{
return m_Measurement;
@@ -253,6 +404,23 @@ void Jfjoch_statistics::unsetCalibration()
{
m_CalibrationIsSet = false;
}
org::openapitools::server::model::Zeromq_preview_settings Jfjoch_statistics::getZeromqPreview() const
{
return m_Zeromq_preview;
}
void Jfjoch_statistics::setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value)
{
m_Zeromq_preview = value;
m_Zeromq_previewIsSet = true;
}
bool Jfjoch_statistics::zeromqPreviewIsSet() const
{
return m_Zeromq_previewIsSet;
}
void Jfjoch_statistics::unsetZeromq_preview()
{
m_Zeromq_previewIsSet = 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -23,7 +23,13 @@
#include "Detector_status.h"
#include "Broker_status.h"
#include "Measurement_statistics.h"
#include "Spot_finding_settings.h"
#include "Zeromq_preview_settings.h"
#include "Detector_list.h"
#include "Fpga_status_inner.h"
#include "Image_format_settings.h"
#include "Detector_settings.h"
#include "Instrument_metadata.h"
#include <vector>
#include <nlohmann/json.hpp>
@@ -73,6 +79,41 @@ public:
/// <summary>
///
/// </summary>
org::openapitools::server::model::Detector_list getDetectorList() const;
void setDetectorList(org::openapitools::server::model::Detector_list const& value);
bool detectorListIsSet() const;
void unsetDetector_list();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Detector_settings getDetectorSettings() const;
void setDetectorSettings(org::openapitools::server::model::Detector_settings const& value);
bool detectorSettingsIsSet() const;
void unsetDetector_settings();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Image_format_settings getImageFormatSettings() const;
void setImageFormatSettings(org::openapitools::server::model::Image_format_settings const& value);
bool imageFormatSettingsIsSet() const;
void unsetImage_format_settings();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Instrument_metadata getInstrumentMetadata() const;
void setInstrumentMetadata(org::openapitools::server::model::Instrument_metadata const& value);
bool instrumentMetadataIsSet() const;
void unsetInstrument_metadata();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Spot_finding_settings getDataProcessingSettings() const;
void setDataProcessingSettings(org::openapitools::server::model::Spot_finding_settings const& value);
bool dataProcessingSettingsIsSet() const;
void unsetData_processing_settings();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Measurement_statistics getMeasurement() const;
void setMeasurement(org::openapitools::server::model::Measurement_statistics const& value);
bool measurementIsSet() const;
@@ -98,12 +139,29 @@ public:
void setCalibration(std::vector<org::openapitools::server::model::Calibration_statistics_inner> const& value);
bool calibrationIsSet() const;
void unsetCalibration();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Zeromq_preview_settings getZeromqPreview() const;
void setZeromqPreview(org::openapitools::server::model::Zeromq_preview_settings const& value);
bool zeromqPreviewIsSet() const;
void unsetZeromq_preview();
friend void to_json(nlohmann::json& j, const Jfjoch_statistics& o);
friend void from_json(const nlohmann::json& j, Jfjoch_statistics& o);
protected:
org::openapitools::server::model::Detector_status m_Detector;
bool m_DetectorIsSet;
org::openapitools::server::model::Detector_list m_Detector_list;
bool m_Detector_listIsSet;
org::openapitools::server::model::Detector_settings m_Detector_settings;
bool m_Detector_settingsIsSet;
org::openapitools::server::model::Image_format_settings m_Image_format_settings;
bool m_Image_format_settingsIsSet;
org::openapitools::server::model::Instrument_metadata m_Instrument_metadata;
bool m_Instrument_metadataIsSet;
org::openapitools::server::model::Spot_finding_settings m_Data_processing_settings;
bool m_Data_processing_settingsIsSet;
org::openapitools::server::model::Measurement_statistics m_Measurement;
bool m_MeasurementIsSet;
org::openapitools::server::model::Broker_status m_Broker;
@@ -112,6 +170,8 @@ protected:
bool m_FpgaIsSet;
std::vector<org::openapitools::server::model::Calibration_statistics_inner> m_Calibration;
bool m_CalibrationIsSet;
org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview;
bool m_Zeromq_previewIsSet;
};

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* 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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

View File

@@ -0,0 +1,134 @@
/**
* Jungfraujoch
* API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland). Jungfraujoch is 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.18
* 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_preview_settings.h"
#include "Helpers.h"
#include <sstream>
namespace org::openapitools::server::model
{
Zeromq_preview_settings::Zeromq_preview_settings()
{
m_Enabled = true;
m_Period_ms = 1000L;
m_Socket_address = "";
m_Socket_addressIsSet = false;
}
void Zeromq_preview_settings::validate() const
{
std::stringstream msg;
if (!validate(msg))
{
throw org::openapitools::server::helpers::ValidationException(msg.str());
}
}
bool Zeromq_preview_settings::validate(std::stringstream& msg) const
{
return validate(msg, "");
}
bool Zeromq_preview_settings::validate(std::stringstream& msg, const std::string& pathPrefix) const
{
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Zeromq_preview_settings" : pathPrefix;
return success;
}
bool Zeromq_preview_settings::operator==(const Zeromq_preview_settings& rhs) const
{
return
(isEnabled() == rhs.isEnabled())
&&
(getPeriodMs() == rhs.getPeriodMs())
&&
((!socketAddressIsSet() && !rhs.socketAddressIsSet()) || (socketAddressIsSet() && rhs.socketAddressIsSet() && getSocketAddress() == rhs.getSocketAddress()))
;
}
bool Zeromq_preview_settings::operator!=(const Zeromq_preview_settings& rhs) const
{
return !(*this == rhs);
}
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.socketAddressIsSet())
j["socket_address"] = o.m_Socket_address;
}
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("socket_address") != j.end())
{
j.at("socket_address").get_to(o.m_Socket_address);
o.m_Socket_addressIsSet = true;
}
}
bool Zeromq_preview_settings::isEnabled() const
{
return m_Enabled;
}
void Zeromq_preview_settings::setEnabled(bool const value)
{
m_Enabled = value;
}
int64_t Zeromq_preview_settings::getPeriodMs() const
{
return m_Period_ms;
}
void Zeromq_preview_settings::setPeriodMs(int64_t const value)
{
m_Period_ms = value;
}
std::string Zeromq_preview_settings::getSocketAddress() const
{
return m_Socket_address;
}
void Zeromq_preview_settings::setSocketAddress(std::string const& value)
{
m_Socket_address = value;
m_Socket_addressIsSet = true;
}
bool Zeromq_preview_settings::socketAddressIsSet() const
{
return m_Socket_addressIsSet;
}
void Zeromq_preview_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.18
* 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_preview_settings.h
*
*
*/
#ifndef Zeromq_preview_settings_H_
#define Zeromq_preview_settings_H_
#include <string>
#include <nlohmann/json.hpp>
namespace org::openapitools::server::model
{
/// <summary>
///
/// </summary>
class Zeromq_preview_settings
{
public:
Zeromq_preview_settings();
virtual ~Zeromq_preview_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_preview_settings& rhs) const;
bool operator!=(const Zeromq_preview_settings& rhs) const;
/////////////////////////////////////////////
/// Zeromq_preview_settings members
/// <summary>
/// ZeroMQ preview socket is enabled.
/// </summary>
bool isEnabled() const;
void setEnabled(bool const value);
/// <summary>
/// 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.
/// </summary>
int64_t getPeriodMs() const;
void setPeriodMs(int64_t const value);
/// <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.
/// </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_preview_settings& o);
friend void from_json(const nlohmann::json& j, Zeromq_preview_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_preview_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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -26,8 +26,6 @@ Zeromq_settings::Zeromq_settings()
m_Send_buffer_size = 0L;
m_Send_buffer_sizeIsSet = false;
m_Image_socketIsSet = false;
m_Preview_socket = "";
m_Preview_socketIsSet = false;
m_Writer_notification_socket = "";
m_Writer_notification_socketIsSet = false;
@@ -92,7 +90,7 @@ bool Zeromq_settings::validate(std::stringstream& msg, const std::string& pathPr
}
}
return success;
}
@@ -111,9 +109,6 @@ bool Zeromq_settings::operator==(const Zeromq_settings& rhs) const
((!imageSocketIsSet() && !rhs.imageSocketIsSet()) || (imageSocketIsSet() && rhs.imageSocketIsSet() && getImageSocket() == rhs.getImageSocket())) &&
((!previewSocketIsSet() && !rhs.previewSocketIsSet()) || (previewSocketIsSet() && rhs.previewSocketIsSet() && getPreviewSocket() == rhs.getPreviewSocket())) &&
((!writerNotificationSocketIsSet() && !rhs.writerNotificationSocketIsSet()) || (writerNotificationSocketIsSet() && rhs.writerNotificationSocketIsSet() && getWriterNotificationSocket() == rhs.getWriterNotificationSocket()))
;
@@ -133,8 +128,6 @@ void to_json(nlohmann::json& j, const Zeromq_settings& o)
j["send_buffer_size"] = o.m_Send_buffer_size;
if(o.imageSocketIsSet() || !o.m_Image_socket.empty())
j["image_socket"] = o.m_Image_socket;
if(o.previewSocketIsSet())
j["preview_socket"] = o.m_Preview_socket;
if(o.writerNotificationSocketIsSet())
j["writer_notification_socket"] = o.m_Writer_notification_socket;
@@ -157,11 +150,6 @@ void from_json(const nlohmann::json& j, Zeromq_settings& o)
j.at("image_socket").get_to(o.m_Image_socket);
o.m_Image_socketIsSet = true;
}
if(j.find("preview_socket") != j.end())
{
j.at("preview_socket").get_to(o.m_Preview_socket);
o.m_Preview_socketIsSet = true;
}
if(j.find("writer_notification_socket") != j.end())
{
j.at("writer_notification_socket").get_to(o.m_Writer_notification_socket);
@@ -221,23 +209,6 @@ void Zeromq_settings::unsetImage_socket()
{
m_Image_socketIsSet = false;
}
std::string Zeromq_settings::getPreviewSocket() const
{
return m_Preview_socket;
}
void Zeromq_settings::setPreviewSocket(std::string const& value)
{
m_Preview_socket = value;
m_Preview_socketIsSet = true;
}
bool Zeromq_settings::previewSocketIsSet() const
{
return m_Preview_socketIsSet;
}
void Zeromq_settings::unsetPreview_socket()
{
m_Preview_socketIsSet = false;
}
std::string Zeromq_settings::getWriterNotificationSocket() const
{
return m_Writer_notification_socket;

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.17
* The version of the OpenAPI document: 1.0.0-rc.18
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -81,13 +81,6 @@ public:
bool imageSocketIsSet() const;
void unsetImage_socket();
/// <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.
/// </summary>
std::string getPreviewSocket() const;
void setPreviewSocket(std::string const& value);
bool previewSocketIsSet() const;
void unsetPreview_socket();
/// <summary>
/// PULL ZeroMQ socket for notifications from writer that it finished operation. This allows Jungfraujoch to operate in a synchronous manner, with end of acquisition being also end of writing. 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 should be avoided, as this socket address is forwarded to the writer process via START ZerOMQ message and in case of multiple ineterfaces the address might be ambigous. Using * (star) instead of port number is allowed and it means a random free port number.
/// </summary>
std::string getWriterNotificationSocket() const;
@@ -104,8 +97,6 @@ protected:
bool m_Send_buffer_sizeIsSet;
std::vector<std::string> m_Image_socket;
bool m_Image_socketIsSet;
std::string m_Preview_socket;
bool m_Preview_socketIsSet;
std::string m_Writer_notification_socket;
bool m_Writer_notification_socketIsSet;

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.17
version: 1.0.0-rc.18
contact:
name: Filip Leonarski (Paul Scherrer Institute)
email: filip.leonarski@psi.ch
@@ -566,6 +566,7 @@ components:
- height
- serial_number
- base_ipv4_addr
- udp_interface_count
properties:
id:
type: integer
@@ -820,6 +821,16 @@ components:
properties:
detector:
$ref: '#/components/schemas/detector_status'
detector_list:
$ref: '#/components/schemas/detector_list'
detector_settings:
$ref: '#/components/schemas/detector_settings'
image_format_settings:
$ref: '#/components/schemas/image_format_settings'
instrument_metadata:
$ref: '#/components/schemas/instrument_metadata'
data_processing_settings:
$ref: '#/components/schemas/spot_finding_settings'
measurement:
$ref: '#/components/schemas/measurement_statistics'
broker:
@@ -828,6 +839,8 @@ components:
$ref: '#/components/schemas/fpga_status'
calibration:
$ref: '#/components/schemas/calibration_statistics'
zeromq_preview:
$ref: '#/components/schemas/zeromq_preview_settings'
preview_settings:
type: object
description: "Settings for JPEG rendering of preview images"
@@ -1080,6 +1093,10 @@ components:
minimum: 1
maximum: 2
default: 1
module_sync:
type: boolean
default: true
description: Use module 0 as master for timing. Only applies to JUNGFRAU detector (this cannot be turned off for EIGER).
sensor_thickness_um:
type: number
format: float
@@ -1147,14 +1164,6 @@ components:
Images are serialized using CBOR.
Address follows ZeroMQ convention for sockets - in practice ipc://<socket file> and tpc://<IP address>:<port> sockets are OK.
0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
preview_socket:
type: string
example: "tcp://1.2.3.4:6000"
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.
0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
writer_notification_socket:
type: string
example: "tcp://1.3.4.6:7000"
@@ -1226,6 +1235,33 @@ components:
description: Location of built JavaScript web frontend
image_pusher:
$ref: '#/components/schemas/image_pusher_type'
zeromq_preview:
$ref: '#/components/schemas/zeromq_preview_settings'
zeromq_preview_settings:
type: object
required:
- enabled
- period_ms
properties:
enabled:
type: boolean
default: true
description: ZeroMQ preview socket is enabled.
period_ms:
type: integer
format: int64
default: 1000
description: |
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.
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.
0.0.0.0 instead of IP address is accepted and means listening on all network interfaces.
paths:
/initialize:
post:
@@ -1677,6 +1713,44 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/detector_list'
/config/zeromq_preview:
put:
summary: Set ZeroMQ preview settings
description: |
Jungfraujoch can generate preview message stream on ZeroMQ SUB socket.
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.
Options set with this PUT request have no effect on HTTP based preview.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/zeromq_preview_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 preview settings
responses:
"200":
description: Everything OK
content:
application/json:
schema:
$ref: '#/components/schemas/zeromq_preview_settings'
/status:
get:
summary: Get Jungfraujoch status

View File

@@ -11,6 +11,7 @@
#include "JFJochBrokerHttp.h"
#include "JFJochBrokerParser.h"
#include "../writer/HDF5Objects.h"
static Pistache::Http::Endpoint *httpEndpoint;
@@ -43,6 +44,8 @@ static void setUpUnixSignals(std::vector<int> quitSignals) {
}
int main (int argc, char **argv) {
RegisterHDF5Filter();
if ((argc == 1) || (argc > 3)) {
std::cout << "Usage ./jfjoch_broker <JSON config> {<TCP http port>}" << std::endl;
exit(EXIT_FAILURE);
@@ -66,7 +69,6 @@ int main (int argc, char **argv) {
exit(EXIT_FAILURE);
}
std::unique_ptr<JFJochReceiverService> receiver;
std::unique_ptr<ImagePusher> image_pusher = ParseImagePusher(settings);
DiffractionExperiment experiment;
@@ -78,13 +80,9 @@ int main (int argc, char **argv) {
experiment.DataStreams(aq_devices.size());
int32_t send_buffer_size_MiB = settings.getImageBufferMiB();
receiver = std::make_unique<JFJochReceiverService>(aq_devices, logger, *image_pusher, send_buffer_size_MiB);
std::string numa_policy = settings.getNumaPolicy();
if (!numa_policy.empty())
receiver->NUMAPolicy(numa_policy);
receiver->NumThreads(settings.getReceiverThreads());
std::unique_ptr<JFJochReceiverService> receiver
= std::make_unique<JFJochReceiverService>(aq_devices, logger, *image_pusher, send_buffer_size_MiB);
ParseReceiverSettings(settings, *receiver);
Pistache::Address addr(Pistache::Ipv4::any(), Pistache::Port(http_port));

File diff suppressed because one or more lines are too long

View File

@@ -69,6 +69,7 @@ ADD_LIBRARY(JFJochCommon STATIC
DetectorSettings.h
AzimuthalIntegrationSettings.cpp
AzimuthalIntegrationSettings.h
CheckPath.h
)
TARGET_LINK_LIBRARIES(JFJochCommon JFJochLogger Compression JFCalibration Threads::Threads -lrt )

21
common/CheckPath.h Normal file
View File

@@ -0,0 +1,21 @@
// Copyright (2019-2024) Paul Scherrer Institute
#ifndef JFJOCH_CHECKPATH_H
#define JFJOCH_CHECKPATH_H
#include <string>
#include "JFJochException.h"
inline void CheckPath(const std::string &s) {
if (s.front() == '/')
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot start with slash");
if (s.substr(0,3) == "../")
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot start with ../");
if (s.find("/../") != std::string::npos)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot contain /../");
}
#endif //JFJOCH_CHECKPATH_H

View File

@@ -5,12 +5,12 @@
#include "DatasetSettings.h"
#include "Definitions.h"
#include "JFJochException.h"
#include "CheckPath.h"
#define check_max(param, val, max) if ((val) > (max)) throw JFJochException(JFJochExceptionCategory::InputParameterAboveMax, param)
#define check_min(param, val, min) if ((val) < (min)) throw JFJochException(JFJochExceptionCategory::InputParameterBelowMin, param)
#define check_finite(param, val) if (!std::isfinite(val)) throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, param)
DatasetSettings::DatasetSettings() {
photon_energy_keV = WVL_1A_IN_KEV;
detector_distance_mm = 100;
@@ -69,21 +69,13 @@ DatasetSettings &DatasetSettings::DetectorDistance_mm(float input) {
}
DatasetSettings &DatasetSettings::FilePrefix(std::string input) {
// File prefix with front slash is not allowed for security reasons
if (input.front() == '/')
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot start with slash");
if (input.substr(0,3) == "../")
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot start with ../");
if (input.find("/../") != std::string::npos)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Path cannot contain /../");
CheckPath(input);
if ((input.find("_master.h5") == input.length() - 10) && (input.length() > 10))
file_prefix = input.substr(0, input.length() - 10);
else
file_prefix = input;
return *this;
}

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