Compare commits

...

8 Commits

Author SHA1 Message Date
6ec126d65a Merge branch '2412-1.0.0-rc.28' into 'main'
version 1.0.0-rc.28

See merge request jungfraujoch/nextgendcu!106
2024-12-05 16:41:04 +01:00
e5a775b4a3 version 1.0.0-rc.28 2024-12-05 16:41:04 +01:00
381e44e944 Merge branch '2412-fix-no-cuda-compilation' into 'main'
version 1.0.0-rc.27 minor fixes

See merge request jungfraujoch/nextgendcu!105
2024-12-04 20:58:51 +01:00
89a77ceec7 version 1.0.0-rc.27 minor fixes 2024-12-04 20:58:51 +01:00
762bb1b9c0 Merge branch '2412-fix-one-test' into 'main'
version 1.0.0-rc.27 quick fix

See merge request jungfraujoch/nextgendcu!104
2024-12-03 09:27:54 +01:00
ed89fe2619 jfjoch_test: ZMQImageCommTest_NoWriter could potentially contain values that cannot be represented by CBOR 2024-12-03 08:57:56 +01:00
6f744fd86d Merge branch '2411-rc.1.0.0-rc.27' into 'main'
version 1.0.0-rc.27

See merge request jungfraujoch/nextgendcu!103
2024-12-02 21:17:14 +01:00
71290f374a version 1.0.0-rc.27 2024-12-02 21:17:14 +01:00
159 changed files with 711 additions and 419 deletions

View File

@@ -4,7 +4,23 @@ stages:
- synthesis
- release
build:x86:gcc:
build:x86:gcc-11:
stage: build
variables:
CC: gcc
CXX: g++
tags:
- gcc
- x86
needs: []
script:
- mkdir build
- cd build
- source /opt/rh/gcc-toolset-11/enable
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j48
build:x86:gcc-12:
stage: build
variables:
CC: gcc
@@ -20,6 +36,22 @@ build:x86:gcc:
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j48
build:x86:gcc-13:
stage: build
variables:
CC: gcc
CXX: g++
tags:
- gcc
- x86
needs: []
script:
- mkdir build
- cd build
- source /opt/rh/gcc-toolset-13/enable
- cmake -DCMAKE_BUILD_TYPE=Release ..
- make -j48
build:x86:gcc_writer:
stage: build
variables:
@@ -36,6 +68,22 @@ build:x86:gcc_writer:
- cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_WRITER_ONLY=ON ..
- make -j48
build:x86:gcc_nocuda:
stage: build
variables:
CC: gcc
CXX: g++
tags:
- gcc
- x86
needs: []
script:
- mkdir build
- cd build
- source /opt/rh/gcc-toolset-12/enable
- cmake -DCMAKE_BUILD_TYPE=Release -DJFJOCH_USE_CUDA=OFF ..
- make -j48
build:x86:driver:
stage: build
variables:
@@ -59,7 +107,7 @@ build:x86:python_client:
artifacts:
paths:
- jfjoch_client-*whl
- jfjoch-client-*tar.gz
- jfjoch_client-*tar.gz
expire_in: 1 week
build:x86:frontend:
@@ -104,7 +152,7 @@ test:x86:gcc:
CTEST_OUTPUT_ON_FAILURE: 1
CC: gcc
CXX: g++
needs: ["build:x86:gcc"]
needs: ["build:x86:gcc-12"]
dependencies: []
tags:
- gcc
@@ -131,7 +179,7 @@ test:x86:crystfel:
CTEST_OUTPUT_ON_FAILURE: 1
CC: gcc
CXX: g++
needs: ["build:x86:gcc"]
needs: ["build:x86:gcc-12"]
dependencies: []
tags:
- gcc
@@ -154,7 +202,7 @@ test:x86:xds_durin:
CTEST_OUTPUT_ON_FAILURE: 1
CC: gcc
CXX: g++
needs: ["build:x86:gcc"]
needs: ["build:x86:gcc-12"]
dependencies: []
tags:
- gcc
@@ -177,7 +225,7 @@ test:x86:xds_neggia:
CTEST_OUTPUT_ON_FAILURE: 1
CC: gcc
CXX: g++
needs: ["build:x86:gcc"]
needs: ["build:x86:gcc-12"]
dependencies: []
tags:
- gcc
@@ -200,7 +248,7 @@ test:x86:xia2.ssx:
CTEST_OUTPUT_ON_FAILURE: 1
CC: gcc
CXX: g++
needs: ["build:x86:gcc"]
needs: ["build:x86:gcc-12"]
dependencies: []
tags:
- gcc
@@ -236,7 +284,7 @@ synthesis:hls:
- cd build
- /usr/bin/cmake ..
- make hls
needs: ["build:x86:gcc", "test:x86:gcc"]
needs: ["build:x86:gcc-12", "test:x86:gcc"]
synthesis:100g:
stage: synthesis
@@ -262,7 +310,7 @@ synthesis:100g:
- /usr/bin/cmake ..
- make -j4 pcie_100g
- mv fpga/jfjoch_fpga_pcie_100g.mcs ..
needs: ["build:x86:gcc", "test:x86:gcc"]
needs: ["build:x86:gcc-12", "test:x86:gcc"]
synthesis:8x10g:
stage: synthesis
@@ -288,7 +336,7 @@ synthesis:8x10g:
- /usr/bin/cmake ..
- make -j4 pcie_8x10g
- mv fpga/jfjoch_fpga_pcie_8x10g.mcs ..
needs: [ "build:x86:gcc", "test:x86:gcc" ]
needs: [ "build:x86:gcc-12", "test:x86:gcc" ]
release:
stage: release

View File

@@ -11,6 +11,10 @@ SET(CMAKE_CXX_STANDARD_REQUIRED True)
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wno-deprecated-enum-enum-conversion")
SET(CMAKE_C_FLAGS_RELEASE "-O3")
SET(JFJOCH_WRITER_ONLY OFF CACHE BOOL "Compile HDF5 writer only")
SET(JFJOCH_INSTALL_DRIVER_SOURCE OFF CACHE BOOL "Install kernel driver source (ignored if building writer only; necessary for RPM building)")
SET(JFJOCH_USE_CUDA ON CACHE BOOL "Compile Jungfraujoch with CUDA")
SET(BUILD_SHARED_LIBS OFF)
SET(BUILD_TESTING OFF)
@@ -46,15 +50,19 @@ SET(CMAKE_CUDA_ARCHITECTURES 70 75 80 86 89) # V100, T4, A100, RTX A4000, L4
SET(CMAKE_CUDA_STANDARD 17)
SET(CMAKE_CUDA_FLAGS_RELEASE "-O3")
IF (CMAKE_CUDA_COMPILER)
ENABLE_LANGUAGE(CUDA)
MESSAGE(STATUS "CUDA VERSION: ${CMAKE_CUDA_COMPILER_VERSION}")
ADD_COMPILE_DEFINITIONS(JFJOCH_USE_CUDA)
FIND_LIBRARY(CUDART_LIBRARY cudart_static PATHS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES} REQUIRED)
ENDIF()
SET(JFJOCH_CUDA_AVAILABLE OFF)
SET(JFJOCH_WRITER_ONLY OFF CACHE BOOL "Compile HDF5 writer only")
SET(JFJOCH_INSTALL_DRIVER_SOURCE OFF CACHE BOOL "Install kernel driver source (ignored if building writer only; necessary for RPM building)")
IF (CMAKE_CUDA_COMPILER)
IF (JFJOCH_USE_CUDA)
ENABLE_LANGUAGE(CUDA)
MESSAGE(STATUS "CUDA VERSION: ${CMAKE_CUDA_COMPILER_VERSION}")
ADD_COMPILE_DEFINITIONS(JFJOCH_USE_CUDA)
FIND_LIBRARY(CUDART_LIBRARY cudart_static PATHS ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES} REQUIRED)
SET(JFJOCH_CUDA_AVAILABLE ON)
ELSE()
MESSAGE(WARNING "CUDA Available, but disabled by user")
ENDIF()
ENDIF()
INCLUDE_DIRECTORIES(include)
INCLUDE(CheckIncludeFile)
@@ -82,7 +90,7 @@ SET(PISTACHE_BUILD_TESTS OFF)
FetchContent_Declare(
pistache_http
GIT_REPOSITORY https://github.com/fleon-psi/pistache
GIT_TAG 784955df8bbef471924d1631606f0f2a2f93d570
GIT_TAG 280b0f6f28f81745870bccb31f4a3a59958807f6
EXCLUDE_FROM_ALL
)

View File

@@ -1,16 +1,4 @@
# Contributing
We actively welcome community contributions, please use a pull request feature.
To accept contributions into our codebase we need to have Contributor License Agreement (CLA) with you or your employer.
The CLA is necessary because you own the copyright to your changes, even after your contribution becomes part of our codebase.
Since Jungfraujoch development is supported by commercialization grant from the Innosuisse agency, which allows PSI to carry the development.
In return for the Innosuisse support, we need to allow our commercial partner (DECTRIS) to use the code without restrictions,
and we have to ensure community contributions don't violate this requirement.
The obligation applies only if your contributions are merged into PSI codebase.
If you like to make a bigger contribution, like for example new data analysis method beyond what is available currently,
please also contact us beforehand to figure out best licensing strategy.
Please contact [Filip Leonarski](mailto:filip.leonarski@psi.ch) for details.
We actively welcome community contributions.
Please contact [Filip Leonarski](mailto:filip.leonarski@psi.ch), if you like to contribute to the project.

View File

@@ -2,4 +2,5 @@
Application to receive data from the PSI JUNGFRAU and EIGER detectors.
All documentation is now placed in [docs/](docs/) subdirectory.
All documentation is now placed in [docs/](docs/) subdirectory and for the current version hosted on
[Jungfraujoch Read The Docs page](https://jungfraujoch.readthedocs.io).

View File

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

View File

@@ -60,18 +60,18 @@ void JFJochBrokerHttp::status_get(Pistache::Http::ResponseWriter &response) {
void JFJochBrokerHttp::wait_till_done_post(const std::optional<int32_t> &timeout,
Pistache::Http::ResponseWriter &response) {
JFJochState state;
BrokerStatus status;
if (!timeout)
state = state_machine.WaitTillMeasurementDone(std::chrono::minutes(1));
status = state_machine.WaitTillMeasurementDone(std::chrono::minutes(1));
else if ((timeout.value() > 3600) || (timeout.value() < 0)) {
response.send(Pistache::Http::Code::Bad_Request);
return;
} else if (timeout.value() == 0)
state = state_machine.GetState();
status = state_machine.GetStatus();
else
state = state_machine.WaitTillMeasurementDone(std::chrono::seconds(timeout.value()));
status = state_machine.WaitTillMeasurementDone(std::chrono::seconds(timeout.value()));
switch (state) {
switch (status.state) {
case JFJochState::Idle:
response.send(Pistache::Http::Code::Ok);
break;
@@ -79,8 +79,7 @@ void JFJochBrokerHttp::wait_till_done_post(const std::optional<int32_t> &timeout
response.send(Pistache::Http::Code::Bad_Gateway);
break;
case JFJochState::Error:
response.send(Pistache::Http::Code::Internal_Server_Error);
break;
throw WrongDAQStateException(status.error.value_or("Unknown error"));
case JFJochState::Measuring:
case JFJochState::Busy:
case JFJochState::Pedestal:

View File

@@ -82,7 +82,7 @@ void JFJochStateMachine::TakePedestalInternalAll(std::unique_lock<std::mutex> &u
UpdatePixelMaskStatistics(pixel_mask.GetStatistics());
} catch (const std::exception &e) {
logger.Error("Pedestal sequence error {}", e.what());
state = JFJochState::Error;
SetState(JFJochState::Error, e.what());
throw;
}
logger.Info("Pedestal sequence done");
@@ -102,15 +102,15 @@ void JFJochStateMachine::TakePedestalInternalG0(std::unique_lock<std::mutex> &ul
local_experiment.StorageCellStart(0);
if (cancel_sequence) {
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
return;
}
if (local_experiment.GetPedestalG0Frames() == 0) {
state = JFJochState::Idle;
SetState(JFJochState::Idle);
return;
}
state = JFJochState::Pedestal;
SetState(JFJochState::Pedestal);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
@@ -123,9 +123,9 @@ void JFJochStateMachine::TakePedestalInternalG0(std::unique_lock<std::mutex> &ul
ul.lock();
if (ImportPedestalG0(pedestal_output.receiver_output))
state = JFJochState::Idle;
SetState(JFJochState::Idle);
else
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
}
void JFJochStateMachine::TakePedestalInternalG1(std::unique_lock<std::mutex> &ul, int32_t storage_cell) {
@@ -139,16 +139,16 @@ void JFJochStateMachine::TakePedestalInternalG1(std::unique_lock<std::mutex> &ul
if (cancel_sequence) {
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
return;
}
if (local_experiment.GetPedestalG1Frames() == 0) {
state = JFJochState::Idle;
SetState(JFJochState::Idle);
return;
}
state = JFJochState::Pedestal;
SetState(JFJochState::Pedestal);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
@@ -161,9 +161,9 @@ void JFJochStateMachine::TakePedestalInternalG1(std::unique_lock<std::mutex> &ul
ul.lock();
if (ImportPedestalG1G2(pedestal_output.receiver_output, 1, storage_cell))
state = JFJochState::Idle;
SetState(JFJochState::Idle);
else
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
}
@@ -177,16 +177,16 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock<std::mutex> &ul
local_experiment.StorageCellStart(15);
if (cancel_sequence) {
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
return;
}
if (local_experiment.GetPedestalG2Frames() == 0) {
state = JFJochState::Idle;
SetState(JFJochState::Idle);
return;
}
state = JFJochState::Pedestal;
SetState(JFJochState::Pedestal);
services.ConfigureDetector(local_experiment);
services.Start(local_experiment, pixel_mask, *calibration);
@@ -199,9 +199,9 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock<std::mutex> &ul
ul.lock();
if (ImportPedestalG1G2(pedestal_output.receiver_output, 2, storage_cell))
state = JFJochState::Idle;
SetState(JFJochState::Idle);
else
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
}
void JFJochStateMachine::Initialize() {
@@ -213,11 +213,11 @@ void JFJochStateMachine::Initialize() {
if (detector_setup.empty())
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid, "Detector information not provided");
CheckError(); // Clear error, we don't care what was it
ResetError(); // Clear error, we don't care what was it
logger.Info("Initialize");
state = JFJochState::Busy;
SetState(JFJochState::Busy);
measurement = std::async(std::launch::async, &JFJochStateMachine::InitializeThread, this, std::move(ul));
}
@@ -239,8 +239,8 @@ void JFJochStateMachine::PedestalThread(std::unique_lock<std::mutex> ul) {
void JFJochStateMachine::InitializeThread(std::unique_lock<std::mutex> ul) {
try {
services.On(experiment);
} catch (...) {
state = JFJochState::Error;
} catch (const std::exception& e) {
SetState(JFJochState::Error, e.what());
throw;
}
TakePedestalInternalAll(ul);
@@ -272,14 +272,14 @@ void JFJochStateMachine::Start(const DatasetSettings& settings) {
experiment.IncrementRunNumber();
try {
state = JFJochState::Busy;
SetState(JFJochState::Busy);
services.SetSpotFindingSettings(GetSpotFindingSettings());
services.Start(experiment, pixel_mask, *calibration);
state = JFJochState::Measuring;
SetState(JFJochState::Measuring);
measurement = std::async(std::launch::async, &JFJochStateMachine::MeasurementThread, this);
} catch (...) {
state = JFJochState::Error;
} catch (const std::exception &e) {
SetState(JFJochState::Error, e.what());
services.Cancel();
throw;
}
@@ -300,11 +300,11 @@ void JFJochStateMachine::MeasurementThread() {
auto tmp_output = services.Stop();
{
std::unique_lock ul(m);
state = JFJochState::Idle;
SetState(JFJochState::Idle);
}
} catch (...) {
} catch (const std::exception &e) {
std::unique_lock ul(m);
state = JFJochState::Error;
SetState(JFJochState::Error, e.what());
}
c.notify_all();
}
@@ -318,9 +318,9 @@ void JFJochStateMachine::Cancel() {
}
}
void JFJochStateMachine::DebugOnly_SetState(JFJochState in_state) {
void JFJochStateMachine::DebugOnly_SetState(JFJochState in_state, const std::optional<std::string> &error_message) {
std::unique_lock ul(m);
state = in_state;
SetState(in_state, error_message);
}
void JFJochStateMachine::Deactivate() {
@@ -329,18 +329,15 @@ void JFJochStateMachine::Deactivate() {
if (measurement.valid())
measurement.get();
services.Off();
state = JFJochState::Inactive;
} catch (...) {
state = JFJochState::Error;
SetState(JFJochState::Inactive);
} catch (const std::exception &e) {
SetState(JFJochState::Error, e.what());
throw;
}
}
JFJochStateMachine::~JFJochStateMachine() {
try {
if (measurement.valid())
measurement.get();
} catch (...) {}
ResetError();
}
std::optional<MeasurementStatistics> JFJochStateMachine::GetMeasurementStatistics() const {
@@ -400,7 +397,7 @@ void JFJochStateMachine::LoadDetectorSettings(const DetectorSettings &settings)
ImportDetectorSettings(settings);
break;
case JFJochState::Idle:
state = JFJochState::Busy;
SetState(JFJochState::Busy);
ImportDetectorSettings(settings);
measurement = std::async(std::launch::async, &JFJochStateMachine::PedestalThread, this, std::move(ul));
break;
@@ -416,12 +413,22 @@ DiffractionExperiment &JFJochStateMachine::NotThreadSafe_Experiment() {
}
BrokerStatus JFJochStateMachine::GetStatus() const {
BrokerStatus ret{};
ret.broker_state = state;
std::unique_lock ul(broker_status_mutex);
BrokerStatus ret = broker_status;
ret.progress = services.GetReceiverProgress();
return ret;
}
void JFJochStateMachine::SetState(JFJochState curr_state, const std::optional<std::string> &error_message) {
std::unique_lock ul(broker_status_mutex);
state = curr_state;
broker_status.state = curr_state;
if (error_message && curr_state == JFJochState::Error)
broker_status.error = error_message;
else
broker_status.error = {};
}
MultiLinePlot JFJochStateMachine::GetPlots(const PlotRequest &request) const {
return services.GetPlots(request);
}
@@ -438,10 +445,6 @@ SpotFindingSettings JFJochStateMachine::GetSpotFindingSettings() const {
return data_processing_settings;
}
JFJochState JFJochStateMachine::GetState() const {
return state;
}
void JFJochStateMachine::AddDetectorSetup(const DetectorSetup &setup) {
std::unique_lock ul(m);
@@ -491,11 +494,12 @@ void JFJochStateMachine::SelectDetector(int64_t id) {
experiment.Detector(detector_setup[id]);
gain_calibration = detector_setup[id].GetGainCalibration();
pixel_mask = PixelMask(experiment);
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
current_detector_setup = id;
} catch (JFJochException &e) {
} catch (const JFJochException &e) {
logger.ErrorException(e);
state = JFJochState::Inactive;
SetState(JFJochState::Inactive);
throw; // re-throw the exception, so it is populated to caller
}
}
@@ -528,30 +532,27 @@ bool JFJochStateMachine::IsRunning() const {
}
}
JFJochState JFJochStateMachine::WaitTillMeasurementDone() {
BrokerStatus JFJochStateMachine::WaitTillMeasurementDone() {
std::unique_lock ul(m);
c.wait(ul, [&] { return !IsRunning(); });
return state;
return GetStatus();
}
JFJochState JFJochStateMachine::WaitTillMeasurementDone(std::chrono::milliseconds timeout) {
BrokerStatus JFJochStateMachine::WaitTillMeasurementDone(std::chrono::milliseconds timeout) {
std::unique_lock ul(m);
c.wait_for(ul, timeout, [&] { return !IsRunning(); });
return state;
return GetStatus();
}
std::optional<std::string> JFJochStateMachine::CheckError() {
void JFJochStateMachine::ResetError() noexcept {
try {
if (measurement.valid())
measurement.get();
} catch (JFJochException &e) {
return e.what();
}
return {};
} catch (...) {}
}
std::string JFJochStateMachine::GetPreviewJPEG(const PreviewJPEGSettings& settings) const {

View File

@@ -19,8 +19,9 @@
enum class JFJochState {Inactive, Idle, Measuring, Error, Busy, Pedestal};
struct BrokerStatus {
JFJochState broker_state;
JFJochState state = JFJochState::Inactive;
std::optional<float> progress;
std::optional<std::string> error;
};
struct DetectorListElement {
@@ -77,7 +78,7 @@ class JFJochStateMachine {
std::condition_variable c;
// mutex m is protecting:
volatile JFJochState state = JFJochState::Inactive;
volatile JFJochState state = JFJochState::Inactive; // state should not be set directly, but through SetState function
volatile bool cancel_sequence = false;
std::unique_ptr<JFCalibration> calibration;
PixelMask pixel_mask;
@@ -97,16 +98,20 @@ class JFJochStateMachine {
mutable std::mutex pixel_mask_statistics_mutex;
PixelMaskStatistics pixel_mask_statistics;
mutable std::mutex broker_status_mutex;
BrokerStatus broker_status;
void UpdatePixelMaskStatistics(const PixelMaskStatistics &input);
// Private functions assume that lock m is acquired
void SetState(JFJochState curr_state, const std::optional<std::string> &error_message = {});
void MeasurementThread();
void PedestalThread(std::unique_lock<std::mutex> ul);
void InitializeThread(std::unique_lock<std::mutex> ul);
bool ImportPedestalG1G2(const JFJochReceiverOutput &receiver_output, size_t gain_level, size_t storage_cell = 0);
bool ImportPedestalG0(const JFJochReceiverOutput &receiver_output);
bool IsRunning() const; // Is state Busy/Pedestal/Measure
std::optional<std::string> CheckError();
void ResetError() noexcept;
void TakePedestalInternalAll(std::unique_lock<std::mutex> &ul);
void TakePedestalInternalG0(std::unique_lock<std::mutex> &ul);
void TakePedestalInternalG1(std::unique_lock<std::mutex> &ul, int32_t storage_cell = 0);
@@ -120,8 +125,8 @@ public:
void Pedestal();
void Deactivate();
void Start(const DatasetSettings& settings);
JFJochState WaitTillMeasurementDone();
JFJochState WaitTillMeasurementDone(std::chrono::milliseconds timeout);
BrokerStatus WaitTillMeasurementDone();
BrokerStatus WaitTillMeasurementDone(std::chrono::milliseconds timeout);
void Trigger();
void Cancel();
@@ -149,8 +154,6 @@ public:
void SetSpotFindingSettings(const SpotFindingSettings& settings);
SpotFindingSettings GetSpotFindingSettings() const;
JFJochState GetState() const;
void AddDetectorSetup(const DetectorSetup& setup);
DetectorList GetDetectorsList() const;
void SelectDetector(int64_t id);
@@ -170,7 +173,7 @@ public:
DiffractionExperiment& NotThreadSafe_Experiment();
// Function for debug only - UNSAFE for real operation
void DebugOnly_SetState(JFJochState state);
void DebugOnly_SetState(JFJochState state, const std::optional<std::string> &error_message = {});
void SetBoxROI(const std::vector<ROIBox>& input);
void SetCircleROI(const std::vector<ROICircle>& input);

View File

@@ -186,7 +186,7 @@ org::openapitools::server::model::Detector_settings Convert(const DetectorSettin
org::openapitools::server::model::Broker_status Convert(const BrokerStatus& input) {
org::openapitools::server::model::Broker_status ret;
switch (input.broker_state) {
switch (input.state) {
case JFJochState::Inactive:
ret.setState("Inactive");
break;
@@ -198,6 +198,7 @@ org::openapitools::server::model::Broker_status Convert(const BrokerStatus& inpu
break;
case JFJochState::Error:
ret.setState("Error");
ret.setErrorMessage(input.error.value_or("Unknown error"));
break;
case JFJochState::Busy:
ret.setState("Busy");
@@ -242,6 +243,7 @@ org::openapitools::server::model::Instrument_metadata Convert(const InstrumentMe
output.setSourceName(input.GetSourceName());
output.setSourceType(input.GetSourceType());
output.setPulsedSource(input.IsPulsedSource());
output.setElectronSource(input.IsElectronSource());
return output;
}
@@ -250,7 +252,8 @@ InstrumentMetadata Convert(const org::openapitools::server::model::Instrument_me
output.InstrumentName(input.getInstrumentName())
.SourceName(input.getSourceName())
.SourceType(input.getSourceType())
.PulsedSource(input.isPulsedSource());
.PulsedSource(input.isPulsedSource())
.ElectronSource(input.isElectronSource());
return output;
}

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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -24,6 +24,8 @@ Broker_status::Broker_status()
m_State = "";
m_Progress = 0.0f;
m_ProgressIsSet = false;
m_Error_message = "";
m_Error_messageIsSet = false;
}
@@ -65,7 +67,7 @@ bool Broker_status::validate(std::stringstream& msg, const std::string& pathPref
}
}
return success;
}
@@ -78,7 +80,10 @@ bool Broker_status::operator==(const Broker_status& rhs) const
&&
((!progressIsSet() && !rhs.progressIsSet()) || (progressIsSet() && rhs.progressIsSet() && getProgress() == rhs.getProgress()))
((!progressIsSet() && !rhs.progressIsSet()) || (progressIsSet() && rhs.progressIsSet() && getProgress() == rhs.getProgress())) &&
((!errorMessageIsSet() && !rhs.errorMessageIsSet()) || (errorMessageIsSet() && rhs.errorMessageIsSet() && getErrorMessage() == rhs.getErrorMessage()))
;
}
@@ -94,6 +99,8 @@ void to_json(nlohmann::json& j, const Broker_status& o)
j["state"] = o.m_State;
if(o.progressIsSet())
j["progress"] = o.m_Progress;
if(o.errorMessageIsSet())
j["error_message"] = o.m_Error_message;
}
@@ -105,6 +112,11 @@ void from_json(const nlohmann::json& j, Broker_status& o)
j.at("progress").get_to(o.m_Progress);
o.m_ProgressIsSet = true;
}
if(j.find("error_message") != j.end())
{
j.at("error_message").get_to(o.m_Error_message);
o.m_Error_messageIsSet = true;
}
}
@@ -133,6 +145,23 @@ void Broker_status::unsetProgress()
{
m_ProgressIsSet = false;
}
std::string Broker_status::getErrorMessage() const
{
return m_Error_message;
}
void Broker_status::setErrorMessage(std::string const& value)
{
m_Error_message = value;
m_Error_messageIsSet = true;
}
bool Broker_status::errorMessageIsSet() const
{
return m_Error_messageIsSet;
}
void Broker_status::unsetError_message()
{
m_Error_messageIsSet = 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -70,6 +70,13 @@ public:
void setProgress(float const value);
bool progressIsSet() const;
void unsetProgress();
/// <summary>
/// Last error message in case detector is in the Error state This matters especially for async functions (start/initialize), where API won&#39;t return reason for the error during async operation.
/// </summary>
std::string getErrorMessage() const;
void setErrorMessage(std::string const& value);
bool errorMessageIsSet() const;
void unsetError_message();
friend void to_json(nlohmann::json& j, const Broker_status& o);
friend void from_json(const nlohmann::json& j, Broker_status& o);
@@ -78,6 +85,8 @@ protected:
float m_Progress;
bool m_ProgressIsSet;
std::string m_Error_message;
bool m_Error_messageIsSet;
};

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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -27,6 +27,8 @@ Instrument_metadata::Instrument_metadata()
m_Instrument_name = "";
m_Pulsed_source = false;
m_Pulsed_sourceIsSet = false;
m_Electron_source = false;
m_Electron_sourceIsSet = false;
}
@@ -49,7 +51,7 @@ bool Instrument_metadata::validate(std::stringstream& msg, const std::string& pa
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Instrument_metadata" : pathPrefix;
return success;
}
@@ -68,7 +70,10 @@ bool Instrument_metadata::operator==(const Instrument_metadata& rhs) const
&&
((!pulsedSourceIsSet() && !rhs.pulsedSourceIsSet()) || (pulsedSourceIsSet() && rhs.pulsedSourceIsSet() && isPulsedSource() == rhs.isPulsedSource()))
((!pulsedSourceIsSet() && !rhs.pulsedSourceIsSet()) || (pulsedSourceIsSet() && rhs.pulsedSourceIsSet() && isPulsedSource() == rhs.isPulsedSource())) &&
((!electronSourceIsSet() && !rhs.electronSourceIsSet()) || (electronSourceIsSet() && rhs.electronSourceIsSet() && isElectronSource() == rhs.isElectronSource()))
;
}
@@ -87,6 +92,8 @@ void to_json(nlohmann::json& j, const Instrument_metadata& o)
j["instrument_name"] = o.m_Instrument_name;
if(o.pulsedSourceIsSet())
j["pulsed_source"] = o.m_Pulsed_source;
if(o.electronSourceIsSet())
j["electron_source"] = o.m_Electron_source;
}
@@ -104,6 +111,11 @@ void from_json(const nlohmann::json& j, Instrument_metadata& o)
j.at("pulsed_source").get_to(o.m_Pulsed_source);
o.m_Pulsed_sourceIsSet = true;
}
if(j.find("electron_source") != j.end())
{
j.at("electron_source").get_to(o.m_Electron_source);
o.m_Electron_sourceIsSet = true;
}
}
@@ -157,6 +169,23 @@ void Instrument_metadata::unsetPulsed_source()
{
m_Pulsed_sourceIsSet = false;
}
bool Instrument_metadata::isElectronSource() const
{
return m_Electron_source;
}
void Instrument_metadata::setElectronSource(bool const value)
{
m_Electron_source = value;
m_Electron_sourceIsSet = true;
}
bool Instrument_metadata::electronSourceIsSet() const
{
return m_Electron_sourceIsSet;
}
void Instrument_metadata::unsetElectron_source()
{
m_Electron_sourceIsSet = 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.26
* The version of the OpenAPI document: 1.0.0-rc.28
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -76,12 +76,19 @@ public:
std::string getInstrumentName() const;
void setInstrumentName(std::string const& value);
/// <summary>
/// Settings specific to XFEL (e.g., every image has to come from TTL trigger, save pulse ID and event code)
/// Settings specific to XFEL (e.g., every image has to come from TTL trigger, save pulse ID and event code)
/// </summary>
bool isPulsedSource() const;
void setPulsedSource(bool const value);
bool pulsedSourceIsSet() const;
void unsetPulsed_source();
/// <summary>
/// Settings specific to electron source (e.g., wavelength definition)
/// </summary>
bool isElectronSource() const;
void setElectronSource(bool const value);
bool electronSourceIsSet() const;
void unsetElectron_source();
friend void to_json(nlohmann::json& j, const Instrument_metadata& o);
friend void from_json(const nlohmann::json& j, Instrument_metadata& o);
@@ -94,6 +101,8 @@ protected:
bool m_Pulsed_source;
bool m_Pulsed_sourceIsSet;
bool m_Electron_source;
bool m_Electron_sourceIsSet;
};

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

View File

@@ -5,7 +5,7 @@ info:
API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).
Jungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.
Jungfraujoch uses FPGA boards to acquire data at high data rates.
version: 1.0.0-rc.26
version: 1.0.0-rc.28
contact:
name: Filip Leonarski (Paul Scherrer Institute)
email: filip.leonarski@psi.ch
@@ -806,6 +806,12 @@ components:
example: 1.0
minimum: 0.0
maximum: 1.0
error_message:
type: string
description: |
Last error message in case detector is in the Error state
This matters especially for async functions (start/initialize), where API won't return reason
for the error during async operation.
plot:
type: object
required:
@@ -1083,7 +1089,13 @@ components:
example: CristallinaMX
pulsed_source:
type: boolean
description: "Settings specific to XFEL (e.g., every image has to come from TTL trigger, save pulse ID and event code)"
description: |
Settings specific to XFEL (e.g., every image has to come from TTL trigger, save pulse ID and event code)
default: false
electron_source:
type: boolean
description: |
Settings specific to electron source (e.g., wavelength definition)
default: false
detector_module_direction:
type: string

File diff suppressed because one or more lines are too long

View File

@@ -79,7 +79,7 @@ TARGET_LINK_LIBRARIES(JFJochCommon JFJochLogger Compression JFCalibration Thread
TARGET_LINK_LIBRARIES(JFJochZMQ "$<BUILD_INTERFACE:libzmq-static>")
IF (CMAKE_CUDA_COMPILER)
IF (JFJOCH_CUDA_AVAILABLE)
TARGET_SOURCES(JFJochCommon PRIVATE CUDAWrapper.cu )
TARGET_LINK_LIBRARIES(JFJochCommon ${CUDART_LIBRARY} ${CMAKE_DL_LIBS} rt)
ENDIF()

View File

@@ -94,7 +94,7 @@ DiffractionExperiment &DiffractionExperiment::PedestalG2Frames(int64_t input) {
}
DiffractionExperiment &DiffractionExperiment::PhotonEnergy_keV(float input) {
DiffractionExperiment &DiffractionExperiment::IncidentEnergy_keV(float input) {
dataset.PhotonEnergy_keV(input);
return *this;
}
@@ -310,11 +310,16 @@ int64_t DiffractionExperiment::GetPedestalG2Frames() const {
return detector_settings.GetPedestalG2Frames();
}
float DiffractionExperiment::GetPhotonEnergy_keV() const {
float DiffractionExperiment::GetIncidentEnergy_keV() const {
return dataset.GetPhotonEnergy_keV();
}
float DiffractionExperiment::GetWavelength_A() const {
if (instrument.IsElectronSource()) {
const double hc = WVL_1A_IN_KEV;
const double me_c2 = 511; // in keV
return static_cast<float>(hc / sqrt(dataset.GetPhotonEnergy_keV() * (dataset.GetPhotonEnergy_keV() + 2 * me_c2)));
}
return WVL_1A_IN_KEV / dataset.GetPhotonEnergy_keV();
}
@@ -588,7 +593,7 @@ void DiffractionExperiment::FillMessage(StartMessage &message) const {
message.beam_center_y = GetBeamY_pxl();
message.detector_distance = GetDetectorDistance_mm() * 1e-3f;
message.incident_wavelength = GetWavelength_A();
message.incident_energy = GetPhotonEnergy_keV() * 1e3f;
message.incident_energy = GetIncidentEnergy_keV() * 1e3f;
message.image_size_x = GetXPixelsNum();
message.image_size_y = GetYPixelsNum();
message.saturation_value = GetOverflow() - 1;
@@ -933,7 +938,7 @@ float DiffractionExperiment::GetPhotonEnergyForConversion_keV() const {
if (val.has_value())
return val.value();
else
return GetPhotonEnergy_keV();
return GetIncidentEnergy_keV();
}
DiffractionExperiment &DiffractionExperiment::InternalPacketGeneratorImages(int64_t input) {
@@ -1256,3 +1261,12 @@ bool DiffractionExperiment::IsCPUSummation() const {
return true;
return cpu_summation;
}
DiffractionExperiment & DiffractionExperiment::ElectronSource(bool input) {
instrument.ElectronSource(input);
return *this;
}
bool DiffractionExperiment::IsElectronSource() const {
return instrument.IsElectronSource();
}

View File

@@ -109,7 +109,7 @@ public:
DiffractionExperiment& ImagesPerTrigger(int64_t input);
DiffractionExperiment& NumTriggers(int64_t triggers);
DiffractionExperiment& PhotonEnergy_keV(float input);
DiffractionExperiment& IncidentEnergy_keV(float input);
DiffractionExperiment& BeamX_pxl(float input);
DiffractionExperiment& BeamY_pxl(float input);
DiffractionExperiment& DetectorDistance_mm(float input);
@@ -134,6 +134,7 @@ public:
DiffractionExperiment& EigerBitDepth(const std::optional<int64_t> &input);
DiffractionExperiment& ImportInstrumentMetadata(const InstrumentMetadata& input);
DiffractionExperiment& ApplyPixelMask(bool input);
DiffractionExperiment& ElectronSource(bool input);
InstrumentMetadata GetInstrumentMetadata() const;
@@ -253,6 +254,7 @@ public:
const DetectorSetup& GetDetectorSetup() const;
bool IsPulsedSource() const;
bool IsElectronSource() const;
bool IsSpotFindingEnabled() const;
@@ -272,7 +274,7 @@ public:
int64_t GetSummation() const;
int64_t GetFPGASummation() const;
std::string GetSampleName() const;
float GetPhotonEnergy_keV() const;
float GetIncidentEnergy_keV() const;
float GetWavelength_A() const;
float GetBeamX_pxl() const;
float GetBeamY_pxl() const;

View File

@@ -6,6 +6,7 @@
InstrumentMetadata::InstrumentMetadata() {
pulsed_source = false;
electron_source = false;
}
InstrumentMetadata &InstrumentMetadata::SourceName(const std::string &input) {
@@ -28,6 +29,15 @@ InstrumentMetadata &InstrumentMetadata::PulsedSource(bool input) {
return *this;
}
InstrumentMetadata & InstrumentMetadata::ElectronSource(bool input) {
electron_source = input;
return *this;
}
bool InstrumentMetadata::IsElectronSource() const {
return electron_source;
}
std::string InstrumentMetadata::GetSourceName() const {
return source_name;
}

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