Merge branch '2410-eiger-test' into 'main'

version 1.0.0-rc.15

See merge request jungfraujoch/nextgendcu!80
This commit is contained in:
leonarski_f committed 2024-10-08 21:04:09 +02:00
commit 040c43084e
156 files changed
+402 -372

No files matched your search

+1 -1
View File
@@ -1 +1 @@
1.0.0-rc.14
1.0.0-rc.15
+2
View File
@@ -44,6 +44,8 @@ void JFJochBrokerHttp::initialize_post(Pistache::Http::ResponseWriter &response)
void JFJochBrokerHttp::start_post(const org::openapitools::server::model::Dataset_settings &datasetSettings,
Pistache::Http::ResponseWriter &response) {
nlohmann::json j = datasetSettings;
logger.Info("Start {}", j.dump());
state_machine.Start(Convert(datasetSettings));
response.send(Pistache::Http::Code::Ok);
}
+7 -1
View File
@@ -118,12 +118,18 @@ JFJochServices &JFJochServices::Receiver(JFJochReceiverService *input) {
return *this;
}
std::optional<JFJochReceiverStatus> JFJochServices::GetReceiverStatus() {
std::optional<JFJochReceiverStatus> JFJochServices::GetReceiverStatus() const {
if (receiver == nullptr)
return {};
return receiver->GetStatus();
}
std::optional<float> JFJochServices::GetReceiverProgress() const {
if (receiver == nullptr)
return {};
return receiver->GetProgress();
}
MultiLinePlot JFJochServices::GetPlots(const PlotRequest &request) {
if (receiver == nullptr)
return {};
+2 -1
View File
@@ -33,7 +33,8 @@ public:
void LoadInternalGeneratorImage(const DiffractionExperiment &experiment,
const std::vector<uint16_t> &image,
uint64_t image_number);
std::optional<JFJochReceiverStatus> GetReceiverStatus();
std::optional<JFJochReceiverStatus> GetReceiverStatus() const;
std::optional<float> GetReceiverProgress() const;
MultiLinePlot GetPlots(const PlotRequest &request);
void SetSpotFindingSettings(const SpotFindingSettings &settings);
+6 -76
View File
@@ -54,7 +54,7 @@ void JFJochStateMachine::TakePedestalInternalAll(std::unique_lock<std::mutex> &u
for (int i = 0; i < gain_calibration.size(); i++)
calibration->GainCalibration(i) = gain_calibration[i];
}
cancel_sequence = false;
logger.Info("Pedestal sequence started");
@@ -111,7 +111,6 @@ void JFJochStateMachine::TakePedestalInternalG0(std::unique_lock<std::mutex> &ul
auto pedestal_output = services.Stop();
ul.lock();
SetFullMeasurementOutput(pedestal_output);
if (ImportPedestalG0(pedestal_output.receiver_output))
state = JFJochState::Idle;
else
@@ -150,7 +149,6 @@ void JFJochStateMachine::TakePedestalInternalG1(std::unique_lock<std::mutex> &ul
auto pedestal_output = services.Stop();
ul.lock();
SetFullMeasurementOutput(pedestal_output);
if (ImportPedestalG1G2(pedestal_output.receiver_output, 1, storage_cell))
state = JFJochState::Idle;
else
@@ -189,7 +187,6 @@ void JFJochStateMachine::TakePedestalInternalG2(std::unique_lock<std::mutex> &ul
auto pedestal_output = services.Stop();
ul.lock();
SetFullMeasurementOutput(pedestal_output);
if (ImportPedestalG1G2(pedestal_output.receiver_output, 2, storage_cell))
state = JFJochState::Idle;
else
@@ -211,7 +208,6 @@ void JFJochStateMachine::Initialize() {
state = JFJochState::Busy;
ClearMeasurementStatistics();
measurement = std::async(std::launch::async, &JFJochStateMachine::InitializeThread, this, std::move(ul));
}
@@ -256,8 +252,6 @@ void JFJochStateMachine::Start(const DatasetSettings& settings) {
experiment.ImportDatasetSettings(settings);
ClearAndSetMeasurementStatistics();
cancel_sequence = false;
if (experiment.GetStorageCellNumber() == 1)
experiment.StorageCellStart(15);
@@ -283,7 +277,6 @@ void JFJochStateMachine::Start(const DatasetSettings& settings) {
void JFJochStateMachine::MeasurementThread() {
try {
auto tmp_output = services.Stop();
SetFullMeasurementOutput(tmp_output);
{
std::unique_lock<std::mutex> ul(m);
state = JFJochState::Idle;
@@ -329,10 +322,8 @@ JFJochStateMachine::~JFJochStateMachine() {
} catch (...) {}
}
void JFJochStateMachine::SetFullMeasurementOutput(const JFJochServicesOutput &output) {
std::unique_lock<std::mutex> ul(last_receiver_output_mutex);
MeasurementStatistics tmp{}; // reset last measurement statistics
std::optional<MeasurementStatistics> JFJochStateMachine::GetMeasurementStatistics() const {
MeasurementStatistics tmp{};
tmp.file_prefix = experiment.GetFilePrefix();
tmp.run_number = experiment.GetRunNumber();
@@ -344,59 +335,8 @@ void JFJochStateMachine::SetFullMeasurementOutput(const JFJochServicesOutput &ou
tmp.images_expected = experiment.GetImageNum();
tmp.unit_cell = experiment.GetUnitCellString();
tmp.compression_ratio = output.receiver_output.status.compressed_ratio;
tmp.collection_efficiency = output.receiver_output.efficiency;
tmp.images_collected = output.receiver_output.status.images_collected;
tmp.images_sent = output.receiver_output.status.images_sent;
tmp.images_skipped = output.receiver_output.status.images_skipped;
tmp.cancelled = output.receiver_output.status.cancelled;
tmp.max_image_number_sent = output.receiver_output.status.max_image_number_sent;
tmp.max_receive_delay = output.receiver_output.status.max_receive_delay;
tmp.indexing_rate = output.receiver_output.status.indexing_rate;
tmp.bkg_estimate = output.receiver_output.status.bkg_estimate;
measurement_statistics = tmp;
}
void JFJochStateMachine::ClearAndSetMeasurementStatistics() {
std::unique_lock<std::mutex> ul(last_receiver_output_mutex);
MeasurementStatistics tmp{};
tmp.file_prefix = experiment.GetFilePrefix();
tmp.run_number = experiment.GetRunNumber();
tmp.experiment_group = experiment.GetExperimentGroup();
tmp.detector_height = experiment.GetXPixelsNum();
tmp.detector_width = experiment.GetYPixelsNum();
tmp.detector_pixel_depth = experiment.GetByteDepthImage();
tmp.images_expected = experiment.GetImageNum();
tmp.unit_cell = experiment.GetUnitCellString();
measurement_statistics = tmp;
}
void JFJochStateMachine::ClearMeasurementStatistics() {
std::unique_lock<std::mutex> ul(last_receiver_output_mutex);
measurement_statistics.reset();
}
std::optional<MeasurementStatistics> JFJochStateMachine::GetMeasurementStatistics() const {
auto rcv_status = services.GetReceiverStatus();
if (rcv_status) {
MeasurementStatistics tmp;
tmp.file_prefix = experiment.GetFilePrefix();
tmp.run_number = experiment.GetRunNumber();
tmp.experiment_group = experiment.GetExperimentGroup();
tmp.detector_width = experiment.GetXPixelsNum();
tmp.detector_height = experiment.GetYPixelsNum();
tmp.detector_pixel_depth = experiment.GetByteDepthImage();
tmp.images_expected = experiment.GetImageNum();
tmp.unit_cell = experiment.GetUnitCellString();
tmp.compression_ratio = rcv_status->compressed_ratio;
tmp.images_collected = rcv_status->images_collected;
tmp.images_sent = rcv_status->images_sent;
@@ -406,11 +346,9 @@ std::optional<MeasurementStatistics> JFJochStateMachine::GetMeasurementStatistic
tmp.max_receive_delay = rcv_status->max_receive_delay;
tmp.indexing_rate = rcv_status->indexing_rate;
tmp.bkg_estimate = rcv_status->bkg_estimate;
return tmp;
} else {
std::unique_lock<std::mutex> ul(last_receiver_output_mutex);
return measurement_statistics;
tmp.collection_efficiency = rcv_status->efficiency;
}
return tmp;
}
std::vector<JFCalibrationModuleStatistics> JFJochStateMachine::GetCalibrationStatistics() const {
@@ -454,16 +392,8 @@ DiffractionExperiment &JFJochStateMachine::NotThreadSafe_Experiment() {
BrokerStatus JFJochStateMachine::GetStatus() const {
BrokerStatus ret{};
ret.broker_state = state;
try {
auto rcv_status = services.GetReceiverStatus();
if (rcv_status) {
ret.progress = rcv_status.value().progress;
ret.indexing_rate = rcv_status.value().indexing_rate;
}
} catch (JFJochException &e) {} // ignore exception in getting receiver status (don't really care, e.g. if receiver is down)
ret.progress = services.GetReceiverProgress();
return ret;
}
-7
View File
@@ -20,7 +20,6 @@ enum class JFJochState {Inactive, Idle, Measuring, Error, Busy, Pedestal};
struct BrokerStatus {
JFJochState broker_state;
std::optional<float> progress;
std::optional<float> indexing_rate;
};
struct DetectorListElement {
@@ -89,12 +88,6 @@ class JFJochStateMachine {
mutable std::mutex calibration_statistics_mutex;
std::vector<JFCalibrationModuleStatistics> calibration_statistics;
mutable std::mutex last_receiver_output_mutex;
std::optional<MeasurementStatistics> measurement_statistics;
void SetFullMeasurementOutput(const JFJochServicesOutput &output);
void ClearMeasurementStatistics();
void ClearAndSetMeasurementStatistics();
mutable std::mutex data_processing_settings_mutex;
SpotFindingSettings data_processing_settings;
+1 -2
View File
@@ -153,8 +153,6 @@ org::openapitools::server::model::Broker_status Convert(const BrokerStatus& inpu
}
if (input.progress.has_value())
ret.setProgress(input.progress.value());
if (input.indexing_rate.has_value() && (input.indexing_rate >= 0.0))
ret.setIndexingRate(input.indexing_rate.value());
return ret;
}
@@ -477,6 +475,7 @@ std::vector<org::openapitools::server::model::Fpga_status_inner> Convert(const s
tmp.setHbmTempC(static_cast<float>(d.hbm_0_temp_C));
tmp.setPowerUsageW(static_cast<float>(d.fpga_pcie_12V_I_mA * d.fpga_pcie_12V_V_mV + d.fpga_pcie_3p3V_I_mA
* d.fpga_pcie_3p3V_V_mV) / (1000.0f * 1000.0f));
tmp.setIdle(d.idle);
ret.emplace_back(std::move(tmp));
}
return ret;
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+2 -50
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -24,8 +24,6 @@ Broker_status::Broker_status()
m_State = "";
m_Progress = 0.0f;
m_ProgressIsSet = false;
m_Indexing_rate = 0.0f;
m_Indexing_rateIsSet = false;
}
@@ -55,25 +53,6 @@ bool Broker_status::validate(std::stringstream& msg, const std::string& pathPref
const std::string currentValuePath = _pathPrefix + ".progress";
if (value < static_cast<float>(0.0))
{
success = false;
msg << currentValuePath << ": must be greater than or equal to 0.0;";
}
if (value > static_cast<float>(1.0))
{
success = false;
msg << currentValuePath << ": must be less than or equal to 1.0;";
}
}
if (indexingRateIsSet())
{
const float& value = m_Indexing_rate;
const std::string currentValuePath = _pathPrefix + ".indexingRate";
if (value < static_cast<float>(0.0))
{
success = false;
@@ -99,10 +78,7 @@ bool Broker_status::operator==(const Broker_status& rhs) const
&&
((!progressIsSet() && !rhs.progressIsSet()) || (progressIsSet() && rhs.progressIsSet() && getProgress() == rhs.getProgress())) &&
((!indexingRateIsSet() && !rhs.indexingRateIsSet()) || (indexingRateIsSet() && rhs.indexingRateIsSet() && getIndexingRate() == rhs.getIndexingRate()))
((!progressIsSet() && !rhs.progressIsSet()) || (progressIsSet() && rhs.progressIsSet() && getProgress() == rhs.getProgress()))
;
}
@@ -118,8 +94,6 @@ 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.indexingRateIsSet())
j["indexing_rate"] = o.m_Indexing_rate;
}
@@ -131,11 +105,6 @@ 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("indexing_rate") != j.end())
{
j.at("indexing_rate").get_to(o.m_Indexing_rate);
o.m_Indexing_rateIsSet = true;
}
}
@@ -164,23 +133,6 @@ void Broker_status::unsetProgress()
{
m_ProgressIsSet = false;
}
float Broker_status::getIndexingRate() const
{
return m_Indexing_rate;
}
void Broker_status::setIndexingRate(float const value)
{
m_Indexing_rate = value;
m_Indexing_rateIsSet = true;
}
bool Broker_status::indexingRateIsSet() const
{
return m_Indexing_rateIsSet;
}
void Broker_status::unsetIndexing_rate()
{
m_Indexing_rateIsSet = false;
}
} // namespace org::openapitools::server::model
+2 -11
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -64,19 +64,12 @@ public:
std::string getState() const;
void setState(std::string const& value);
/// <summary>
///
/// Progress of data collection (only available if receiving is running)
/// </summary>
float getProgress() const;
void setProgress(float const value);
bool progressIsSet() const;
void unsetProgress();
/// <summary>
///
/// </summary>
float getIndexingRate() const;
void setIndexingRate(float const value);
bool indexingRateIsSet() const;
void unsetIndexing_rate();
friend void to_json(nlohmann::json& j, const Broker_status& o);
friend void from_json(const nlohmann::json& j, Broker_status& o);
@@ -85,8 +78,6 @@ protected:
float m_Progress;
bool m_ProgressIsSet;
float m_Indexing_rate;
bool m_Indexing_rateIsSet;
};
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+16 -2
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -31,6 +31,7 @@ Fpga_status_inner::Fpga_status_inner()
m_Hbm_temp_C = 0.0f;
m_Packets_udp = 0L;
m_Packets_sls = 0L;
m_Idle = false;
}
@@ -53,7 +54,7 @@ bool Fpga_status_inner::validate(std::stringstream& msg, const std::string& path
bool success = true;
const std::string _pathPrefix = pathPrefix.empty() ? "Fpga_status_inner" : pathPrefix;
return success;
}
@@ -90,6 +91,9 @@ bool Fpga_status_inner::operator==(const Fpga_status_inner& rhs) const
&&
(getPacketsSls() == rhs.getPacketsSls())
&&
(isIdle() == rhs.isIdle())
;
@@ -113,6 +117,7 @@ void to_json(nlohmann::json& j, const Fpga_status_inner& o)
j["hbm_temp_C"] = o.m_Hbm_temp_C;
j["packets_udp"] = o.m_Packets_udp;
j["packets_sls"] = o.m_Packets_sls;
j["idle"] = o.m_Idle;
}
@@ -128,6 +133,7 @@ void from_json(const nlohmann::json& j, Fpga_status_inner& o)
j.at("hbm_temp_C").get_to(o.m_Hbm_temp_C);
j.at("packets_udp").get_to(o.m_Packets_udp);
j.at("packets_sls").get_to(o.m_Packets_sls);
j.at("idle").get_to(o.m_Idle);
}
@@ -211,6 +217,14 @@ void Fpga_status_inner::setPacketsSls(int64_t const value)
{
m_Packets_sls = value;
}
bool Fpga_status_inner::isIdle() const
{
return m_Idle;
}
void Fpga_status_inner::setIdle(bool const value)
{
m_Idle = value;
}
} // namespace org::openapitools::server::model
+8 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -108,6 +108,11 @@ public:
/// </summary>
int64_t getPacketsSls() const;
void setPacketsSls(int64_t const value);
/// <summary>
///
/// </summary>
bool isIdle() const;
void setIdle(bool const value);
friend void to_json(nlohmann::json& j, const Fpga_status_inner& o);
friend void from_json(const nlohmann::json& j, Fpga_status_inner& o);
@@ -132,6 +137,8 @@ protected:
int64_t m_Packets_sls;
bool m_Idle;
};
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+1 -1
View File
@@ -2,7 +2,7 @@
* Jungfraujoch
* Jungfraujoch Broker Web API
*
* The version of the OpenAPI document: 1.0.0-rc.14
* The version of the OpenAPI document: 1.0.0-rc.15
* Contact: filip.leonarski@psi.ch
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+5 -8
View File
@@ -2,7 +2,7 @@ openapi: 3.0.3
info:
title: Jungfraujoch
description: Jungfraujoch Broker Web API
version: 1.0.0-rc.14
version: 1.0.0-rc.15
contact:
email: filip.leonarski@psi.ch
components:
@@ -665,6 +665,7 @@ components:
- hbm_temp_C
- packets_sls
- packets_udp
- idle
properties:
pci_dev_id:
type: string
@@ -693,11 +694,12 @@ components:
packets_sls:
type: integer
format: int64
idle:
type: boolean
broker_status:
type: object
required:
- state
- device
properties:
state:
type: string
@@ -705,15 +707,10 @@ components:
progress:
type: number
format: float
description: Progress of data collection (only available if receiving is running)
example: 1.0
minimum: 0.0
maximum: 1.0
indexing_rate:
type: number
format: float
example: 0.10
minimum: 0.0
maximum: 1.0
plot:
type: object
required:
+4 -4
View File
@@ -367,7 +367,7 @@ data-styled.g137[id="sc-kqGpvY"]{content:"bAFwPb,"}/*!sc*/
55.627 l 55.6165,55.627 -231.245496,231.24803 c -127.185,127.1864
-231.5279,231.248 -231.873,231.248 -0.3451,0 -104.688,
-104.0616 -231.873,-231.248 z
" fill="currentColor"></path></g></svg></div></div><div class="sc-lnPyOc exixUa api-content"><div class="sc-dcJtft gWwwsw"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo api-info"><h1 class="sc-imWZod sc-fTFkHh cDCvoe hJudwp">Jungfraujoch<!-- --> <span>(<!-- -->1.0.0-rc.14<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:<a download="openapi.json" target="_blank" class="sc-ktJcvw dyWjRw">Download</a></p><div class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"><div class="sc-kMkwmO knZeAO"><div class="sc-fiCwYx foAXyM"><span class="sc-gmgEyz fOljxM">E-mail<!-- -->:<!-- --> <a href="mailto:filip.leonarski@psi.ch">filip.leonarski@psi.ch</a></span> <!-- --> <!-- --> </div></div></div><div data-role="redoc-summary" html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"></div><div data-role="redoc-description" html="&lt;p&gt;Jungfraujoch Broker Web API&lt;/p&gt;
" fill="currentColor"></path></g></svg></div></div><div class="sc-lnPyOc exixUa api-content"><div class="sc-dcJtft gWwwsw"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo api-info"><h1 class="sc-imWZod sc-fTFkHh cDCvoe hJudwp">Jungfraujoch<!-- --> <span>(<!-- -->1.0.0-rc.15<!-- -->)</span></h1><p>Download OpenAPI specification<!-- -->:<a download="openapi.json" target="_blank" class="sc-ktJcvw dyWjRw">Download</a></p><div class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"><div class="sc-kMkwmO knZeAO"><div class="sc-fiCwYx foAXyM"><span class="sc-gmgEyz fOljxM">E-mail<!-- -->:<!-- --> <a href="mailto:filip.leonarski@psi.ch">filip.leonarski@psi.ch</a></span> <!-- --> <!-- --> </div></div></div><div data-role="redoc-summary" html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"></div><div data-role="redoc-description" html="&lt;p&gt;Jungfraujoch Broker Web API&lt;/p&gt;
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"><p>Jungfraujoch Broker Web API</p>
</div></div></div></div><div id="/paths/~1initialize/post" data-section-id="/paths/~1initialize/post" class="sc-dcJtft dNqlFH"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo"><h2 class="sc-jXbVAB hXYRhd"><a class="sc-jlZhRR buKOug" href="#/paths/~1initialize/post" aria-label="/paths/~1initialize/post"></a>Initialize detector and data acquisition<!-- --> </h2><div class="sc-ePDMnc bFMrcX"><div html="&lt;p&gt;Should be used in two cases:&lt;/p&gt;
&lt;ul&gt;
@@ -777,9 +777,9 @@ Changing detector will set detector to <code>Inactive</code> state and will requ
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"><p>Status of the data acquisition</p>
</div></div><div><h3 class="sc-dSIJcR hePoiW">Responses</h3><div><button class="sc-gdyfxU hDzmxh"><svg class="sc-cwHqhk jqLwgG" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bVHBsO eBHfiv">200<!-- --> </strong><div html="&lt;p&gt;Everything OK&lt;/p&gt;
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES"><p>Everything OK</p>
</div></button></div></div></div><div class="sc-iGgVNO sc-gsFSjX hqwGrr ggsSF"><div class="sc-dkmVhU ciDfNo"><button class="sc-iEXLnV jJBChh"><span type="get" class="sc-EgOky fPaeRy http-verb get">get</span><span class="sc-ejfMNw gHPYVn">/status</span><svg class="sc-cwHqhk fxsrq" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eZYMKX fuVsyo"><div class="sc-dlWDvs kyqjNC"><div html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA"></div><div tabindex="0" role="button"><div class="sc-hHOBVR lhFNhe"><span></span>/status</div></div></div></div></div><div><h3 class="sc-kpDprT cgzTaG"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLgj tlGxN" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R9pca:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R9pca:0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel:R9pca:0" aria-labelledby="tab:R9pca:0"><div><div class="sc-bbSYpP kIESIX"><span class="sc-fjvwmM bLpZTa">Content type</span><div class="sc-JrEyx OirWV">application/json</div></div><div class="sc-uVXKs fszzxn"><div class="sc-esYjtY hxmTDe"><div class="sc-koYCI kEwLiZ"><button><div class="sc-fhzEvr gpWFPc">Copy</div></button></div><div class="sc-eeDSqt bSgSrX sc-fXSgRJ dXllNu"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"state"</span>: <span class="token string">&quot;Inactive&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"progress"</span>: <span class="token number">1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"indexing_rate"</span>: <span class="token number">0.1</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1fpga_status/get" data-section-id="/paths/~1fpga_status/get" class="sc-dcJtft dNqlFH"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo"><h2 class="sc-jXbVAB hXYRhd"><a class="sc-jlZhRR buKOug" href="#/paths/~1fpga_status/get" aria-label="/paths/~1fpga_status/get"></a>Get status of FPGA devices<!-- --> </h2><div><h3 class="sc-dSIJcR hePoiW">Responses</h3><div><button class="sc-gdyfxU hDzmxh"><svg class="sc-cwHqhk jqLwgG" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bVHBsO eBHfiv">200<!-- --> </strong><div html="&lt;p&gt;Everything OK&lt;/p&gt;
</div></button></div></div></div><div class="sc-iGgVNO sc-gsFSjX hqwGrr ggsSF"><div class="sc-dkmVhU ciDfNo"><button class="sc-iEXLnV jJBChh"><span type="get" class="sc-EgOky fPaeRy http-verb get">get</span><span class="sc-ejfMNw gHPYVn">/status</span><svg class="sc-cwHqhk fxsrq" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eZYMKX fuVsyo"><div class="sc-dlWDvs kyqjNC"><div html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA"></div><div tabindex="0" role="button"><div class="sc-hHOBVR lhFNhe"><span></span>/status</div></div></div></div></div><div><h3 class="sc-kpDprT cgzTaG"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLgj tlGxN" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R9pca:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R9pca:0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel:R9pca:0" aria-labelledby="tab:R9pca:0"><div><div class="sc-bbSYpP kIESIX"><span class="sc-fjvwmM bLpZTa">Content type</span><div class="sc-JrEyx OirWV">application/json</div></div><div class="sc-uVXKs fszzxn"><div class="sc-esYjtY hxmTDe"><div class="sc-koYCI kEwLiZ"><button><div class="sc-fhzEvr gpWFPc">Copy</div></button></div><div class="sc-eeDSqt bSgSrX sc-fXSgRJ dXllNu"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"state"</span>: <span class="token string">&quot;Inactive&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"progress"</span>: <span class="token number">1</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1fpga_status/get" data-section-id="/paths/~1fpga_status/get" class="sc-dcJtft dNqlFH"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo"><h2 class="sc-jXbVAB hXYRhd"><a class="sc-jlZhRR buKOug" href="#/paths/~1fpga_status/get" aria-label="/paths/~1fpga_status/get"></a>Get status of FPGA devices<!-- --> </h2><div><h3 class="sc-dSIJcR hePoiW">Responses</h3><div><button class="sc-gdyfxU hDzmxh"><svg class="sc-cwHqhk jqLwgG" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bVHBsO eBHfiv">200<!-- --> </strong><div html="&lt;p&gt;Everything OK&lt;/p&gt;
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES"><p>Everything OK</p>
</div></button></div></div></div><div class="sc-iGgVNO sc-gsFSjX hqwGrr ggsSF"><div class="sc-dkmVhU ciDfNo"><button class="sc-iEXLnV jJBChh"><span type="get" class="sc-EgOky fPaeRy http-verb get">get</span><span class="sc-ejfMNw gHPYVn">/fpga_status</span><svg class="sc-cwHqhk fxsrq" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eZYMKX fuVsyo"><div class="sc-dlWDvs kyqjNC"><div html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA"></div><div tabindex="0" role="button"><div class="sc-hHOBVR lhFNhe"><span></span>/fpga_status</div></div></div></div></div><div><h3 class="sc-kpDprT cgzTaG"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLgj tlGxN" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R9pcq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R9pcq:0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel:R9pcq:0" aria-labelledby="tab:R9pcq:0"><div><div class="sc-bbSYpP kIESIX"><span class="sc-fjvwmM bLpZTa">Content type</span><div class="sc-JrEyx OirWV">application/json</div></div><div class="sc-uVXKs fszzxn"><div class="sc-esYjtY hxmTDe"><div class="sc-koYCI kEwLiZ"><button><div class="sc-fhzEvr gpWFPc">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-eeDSqt bSgSrX sc-fXSgRJ dXllNu"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"pci_dev_id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"serial_number"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"base_mac_addr"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"eth_link_count"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"eth_link_status"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"power_usage_W"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fpga_temp_C"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hbm_temp_C"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"packets_udp"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"packets_sls"</span>: <span class="token number">0</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1xfel~1pulse_id/get" data-section-id="/paths/~1xfel~1pulse_id/get" class="sc-dcJtft dNqlFH"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo"><h2 class="sc-jXbVAB hXYRhd"><a class="sc-jlZhRR buKOug" href="#/paths/~1xfel~1pulse_id/get" aria-label="/paths/~1xfel~1pulse_id/get"></a>Return XFEL pulse IDs for the current data acquisition<!-- --> </h2><div class="sc-ePDMnc bFMrcX"><div html="&lt;p&gt;Return array of XFEL pulse IDs - (-1) if image not recorded&lt;/p&gt;
</div></button></div></div></div><div class="sc-iGgVNO sc-gsFSjX hqwGrr ggsSF"><div class="sc-dkmVhU ciDfNo"><button class="sc-iEXLnV jJBChh"><span type="get" class="sc-EgOky fPaeRy http-verb get">get</span><span class="sc-ejfMNw gHPYVn">/fpga_status</span><svg class="sc-cwHqhk fxsrq" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eZYMKX fuVsyo"><div class="sc-dlWDvs kyqjNC"><div html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA"></div><div tabindex="0" role="button"><div class="sc-hHOBVR lhFNhe"><span></span>/fpga_status</div></div></div></div></div><div><h3 class="sc-kpDprT cgzTaG"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLgj tlGxN" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab:R9pcq:0" aria-selected="true" aria-disabled="false" aria-controls="panel:R9pcq:0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel:R9pcq:0" aria-labelledby="tab:R9pcq:0"><div><div class="sc-bbSYpP kIESIX"><span class="sc-fjvwmM bLpZTa">Content type</span><div class="sc-JrEyx OirWV">application/json</div></div><div class="sc-uVXKs fszzxn"><div class="sc-esYjtY hxmTDe"><div class="sc-koYCI kEwLiZ"><button><div class="sc-fhzEvr gpWFPc">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div class="sc-eeDSqt bSgSrX sc-fXSgRJ dXllNu"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable "><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"pci_dev_id"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"serial_number"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"base_mac_addr"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"eth_link_count"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"eth_link_status"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"power_usage_W"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"fpga_temp_C"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"hbm_temp_C"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"packets_udp"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"packets_sls"</span>: <span class="token number">0</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"idle"</span>: <span class="token boolean">true</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1xfel~1pulse_id/get" data-section-id="/paths/~1xfel~1pulse_id/get" class="sc-dcJtft dNqlFH"><div class="sc-kAycRU NrBoN"><div class="sc-fqkwJk jLkFlo"><h2 class="sc-jXbVAB hXYRhd"><a class="sc-jlZhRR buKOug" href="#/paths/~1xfel~1pulse_id/get" aria-label="/paths/~1xfel~1pulse_id/get"></a>Return XFEL pulse IDs for the current data acquisition<!-- --> </h2><div class="sc-ePDMnc bFMrcX"><div html="&lt;p&gt;Return array of XFEL pulse IDs - (-1) if image not recorded&lt;/p&gt;
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq"><p>Return array of XFEL pulse IDs - (-1) if image not recorded</p>
</div></div><div><h3 class="sc-dSIJcR hePoiW">Responses</h3><div><button class="sc-gdyfxU hDzmxh"><svg class="sc-cwHqhk jqLwgG" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-bVHBsO eBHfiv">200<!-- --> </strong><div html="&lt;p&gt;Pulse ID collected&lt;/p&gt;
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES"><p>Pulse ID collected</p>
@@ -993,7 +993,7 @@ User mask is not automatically applied - i.e. pixels with user mask will have a
" class="sc-eeDSqt sc-eBMFzZ bSgSrX cWARBq sc-dCFGXG gKOXES"><p>Release number of Jungfraujoch</p>
</div></button></div></div></div><div class="sc-iGgVNO sc-gsFSjX hqwGrr ggsSF"><div class="sc-dkmVhU ciDfNo"><button class="sc-iEXLnV jJBChh"><span type="get" class="sc-EgOky fPaeRy http-verb get">get</span><span class="sc-ejfMNw gHPYVn">/version</span><svg class="sc-cwHqhk fxsrq" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-eZYMKX fuVsyo"><div class="sc-dlWDvs kyqjNC"><div html="" class="sc-eeDSqt sc-eBMFzZ bSgSrX gayXgA"></div><div tabindex="0" role="button"><div class="sc-hHOBVR lhFNhe"><span></span>/version</div></div></div></div></div></div></div></div></div><div class="sc-eulNPF bYFiUR"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"Jungfraujoch Broker Web API","version":"1.0.0-rc.14","contact":{"email":"filip.leonarski@psi.ch"}},"components":{"schemas":{"rotation_axis":{"description":"Definition of a crystal rotation axis","type":"object","required":["step","vector"],"properties":{"name":{"type":"string","default":"omega","minLength":1,"description":"Name of rotation axis (e.g., omega, phi)"},"step":{"type":"number","format":"float","example":0.1,"description":"Angle step in degrees"},"start":{"type":"number","format":"float","example":50,"description":"Start angle in degrees","default":0},"vector":{"type":"array","description":"Rotation axis","example":[1,0,0],"items":{"type":"number","format":"float"},"minItems":3,"maxItems":3}}},"dataset_settings":{"type":"object","required":["beam_x_pxl","beam_y_pxl","detector_distance_mm","incident_energy_keV"],"properties":{"images_per_trigger":{"type":"integer","format":"int64","minimum":1,"default":1,"description":"For standard synchrotron data collection - this is number of images collected per one TTL trigger\nFor XFEL (pulsed source) - this number is ignored and set to 1\nFor storage cell mode - this number is ignored and set to number of storage cells\n"},"ntrigger":{"type":"integer","format":"int64","default":1,"minimum":1,"description":"Number of TTL trigger that the detector is expected to receive during data collection\n"},"image_time_us":{"type":"integer","format":"int64","minimum":0,"description":"Image time. \nIf not provided (or zero value) the frame time is assumed as default.\nImage time must be multiple of frame time; max value is 256 * frame_time. \nIn XFEL mode: summation happens for frames collected with multiple triggers.\nIgnored for storage cells and if raw data are saved.\n"},"beam_x_pxl":{"type":"number","format":"float","description":"/entry/detector/beam_center_x in NXmx\nBeam center in X direction [pixels]\n"},"beam_y_pxl":{"type":"number","format":"float","description":"/entry/detector/beam_center_y in NXmx\nBeam center in X direction [pixels]\n"},"detector_distance_mm":{"type":"number","format":"float","minimum":0,"description":"/entry/detector/distance in NXmx Detector distance [mm]"},"incident_energy_keV":{"type":"number","format":"float","minimum":0.001,"maximum":500,"description":"Used to calculate /entry/beam/incident_wavelength in NXmx\nIncident particle (photon, electron) energy in keV\n"},"file_prefix":{"type":"string","default":"","description":"Prefix for filenames. If left empty, no file will be saved."},"images_per_file":{"type":"integer","format":"int64","minimum":0,"default":1000,"description":"Number of files in a single HDF5 data file (0 = write all images to a single data file)."},"space_group_number":{"type":"integer","format":"int64","minimum":0,"default":0,"maximum":194},"sample_name":{"type":"string","default":"","description":"/entry/sample/name in NXmx\nSample name\n"},"compression":{"type":"string","enum":["bslz4","bszstd","bszstd_rle","none"],"default":"bslz4"},"total_flux":{"type":"number","format":"float","description":"/entry/beam/total_flux in NXmx\nFlux incident on beam plane in photons per second. In other words this is the flux integrated over area. [photons/s]\n"},"transmission":{"type":"number","format":"float","minimum":0,"maximum":1,"description":"/entry/instrument/attenuator/attenuator_transmission\nTransmission of attenuator (filter) [no units]\n"},"goniometer":{"$ref":"#/components/schemas/rotation_axis"},"header_appendix":{"description":"Header appendix, added as user_data/user to start message (can be any valid JSON)"},"image_appendix":{"description":"Image appendix, added as user_data to image message (can be any valid JSON)"},"data_reduction_factor_serialmx":{"type":"number","format":"float","default":1,"minimum":0,"maximum":1,"description":"Rate at which non-indexed images are accepted to be forwarded to writer. \nValue of 1.0 (default) means that all images are written.\nValues below zero mean that non-indexed images will be accepted with a given probability.\n"},"pixel_value_low_threshold":{"type":"integer","format":"int64","minimum":0,"description":"Set all counts lower than the value to zero. \nWhen the value is set, negative numbers other than error pixel value are always set to zero.\nSetting to zero is equivalent to turning the option off.\n"},"run_number":{"type":"integer","format":"int64","minimum":0,"description":"Number of run within an experimental session. \nTransferred over CBOR stream as \"series ID\", though not saved in HDF5 file.\nIt is highly recommended to keep this number unique for each data collection during experimental series.\nIf not provided, the number will be automatically incremented.\n"},"run_name":{"type":"string","description":"Unique ID of run.\nTransferred over CBOR stream as \"unique series ID\", though not saved in HDF5 file.\nIt is highly Line truncated
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"Jungfraujoch Broker Web API","version":"1.0.0-rc.15","contact":{"email":"filip.leonarski@psi.ch"}},"components":{"schemas":{"rotation_axis":{"description":"Definition of a crystal rotation axis","type":"object","required":["step","vector"],"properties":{"name":{"type":"string","default":"omega","minLength":1,"description":"Name of rotation axis (e.g., omega, phi)"},"step":{"type":"number","format":"float","example":0.1,"description":"Angle step in degrees"},"start":{"type":"number","format":"float","example":50,"description":"Start angle in degrees","default":0},"vector":{"type":"array","description":"Rotation axis","example":[1,0,0],"items":{"type":"number","format":"float"},"minItems":3,"maxItems":3}}},"dataset_settings":{"type":"object","required":["beam_x_pxl","beam_y_pxl","detector_distance_mm","incident_energy_keV"],"properties":{"images_per_trigger":{"type":"integer","format":"int64","minimum":1,"default":1,"description":"For standard synchrotron data collection - this is number of images collected per one TTL trigger\nFor XFEL (pulsed source) - this number is ignored and set to 1\nFor storage cell mode - this number is ignored and set to number of storage cells\n"},"ntrigger":{"type":"integer","format":"int64","default":1,"minimum":1,"description":"Number of TTL trigger that the detector is expected to receive during data collection\n"},"image_time_us":{"type":"integer","format":"int64","minimum":0,"description":"Image time. \nIf not provided (or zero value) the frame time is assumed as default.\nImage time must be multiple of frame time; max value is 256 * frame_time. \nIn XFEL mode: summation happens for frames collected with multiple triggers.\nIgnored for storage cells and if raw data are saved.\n"},"beam_x_pxl":{"type":"number","format":"float","description":"/entry/detector/beam_center_x in NXmx\nBeam center in X direction [pixels]\n"},"beam_y_pxl":{"type":"number","format":"float","description":"/entry/detector/beam_center_y in NXmx\nBeam center in X direction [pixels]\n"},"detector_distance_mm":{"type":"number","format":"float","minimum":0,"description":"/entry/detector/distance in NXmx Detector distance [mm]"},"incident_energy_keV":{"type":"number","format":"float","minimum":0.001,"maximum":500,"description":"Used to calculate /entry/beam/incident_wavelength in NXmx\nIncident particle (photon, electron) energy in keV\n"},"file_prefix":{"type":"string","default":"","description":"Prefix for filenames. If left empty, no file will be saved."},"images_per_file":{"type":"integer","format":"int64","minimum":0,"default":1000,"description":"Number of files in a single HDF5 data file (0 = write all images to a single data file)."},"space_group_number":{"type":"integer","format":"int64","minimum":0,"default":0,"maximum":194},"sample_name":{"type":"string","default":"","description":"/entry/sample/name in NXmx\nSample name\n"},"compression":{"type":"string","enum":["bslz4","bszstd","bszstd_rle","none"],"default":"bslz4"},"total_flux":{"type":"number","format":"float","description":"/entry/beam/total_flux in NXmx\nFlux incident on beam plane in photons per second. In other words this is the flux integrated over area. [photons/s]\n"},"transmission":{"type":"number","format":"float","minimum":0,"maximum":1,"description":"/entry/instrument/attenuator/attenuator_transmission\nTransmission of attenuator (filter) [no units]\n"},"goniometer":{"$ref":"#/components/schemas/rotation_axis"},"header_appendix":{"description":"Header appendix, added as user_data/user to start message (can be any valid JSON)"},"image_appendix":{"description":"Image appendix, added as user_data to image message (can be any valid JSON)"},"data_reduction_factor_serialmx":{"type":"number","format":"float","default":1,"minimum":0,"maximum":1,"description":"Rate at which non-indexed images are accepted to be forwarded to writer. \nValue of 1.0 (default) means that all images are written.\nValues below zero mean that non-indexed images will be accepted with a given probability.\n"},"pixel_value_low_threshold":{"type":"integer","format":"int64","minimum":0,"description":"Set all counts lower than the value to zero. \nWhen the value is set, negative numbers other than error pixel value are always set to zero.\nSetting to zero is equivalent to turning the option off.\n"},"run_number":{"type":"integer","format":"int64","minimum":0,"description":"Number of run within an experimental session. \nTransferred over CBOR stream as \"series ID\", though not saved in HDF5 file.\nIt is highly recommended to keep this number unique for each data collection during experimental series.\nIf not provided, the number will be automatically incremented.\n"},"run_name":{"type":"string","description":"Unique ID of run.\nTransferred over CBOR stream as \"unique series ID\", though not saved in HDF5 file.\nIt is highly Line truncated
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
+5 -7
View File
@@ -81,7 +81,7 @@ void DetectorWrapper::Initialize(const DiffractionExperiment& experiment,
det.writeRegister(0x7C, column_id_register, {i});
}
det.setTimingMode(slsDetectorDefs::timingMode::TRIGGER_EXPOSURE);
det.setTemperatureControl(true);
det.setThresholdTemperature(THRESHOLD_TEMPERATURE_DEGC);
} else if (det_type == DetectorType::EIGER) {
@@ -105,20 +105,20 @@ void DetectorWrapper::Initialize(const DiffractionExperiment& experiment,
det.setSourceUDPIP(sls::IpAddr(cfg.ipv4_src_addr_1), {2 * i, 2 * i + 1});
det.setDestinationUDPIP(sls::IpAddr(cfg.ipv4_dest_addr_1), {2 * i, 2 * i + 1});
det.setDestinationUDPMAC(sls::MacAddr(cfg.mac_addr_dest_1), {2 * i, 2 * i + 1});
det.setColumn(static_cast<uint32_t>(cfg.module_id_in_data_stream * 2), {i});
det.setRow(static_cast<uint32_t>(cfg.module_id_in_data_stream * 2), {2 * i});
det.setRow(static_cast<uint32_t>(cfg.module_id_in_data_stream * 2 + 1), {2 * i + 1});
if (!trim_files.empty()) {
det.loadTrimbits(trim_files[2 * i], {2 * i});
det.loadTrimbits(trim_files[2 * i + 1], {2 * i + 1});
}
}
det.setTimingMode(slsDetectorDefs::timingMode::BURST_TRIGGER);
}
if (det_type == DetectorType::JUNGFRAU) {
det.setTimingMode(slsDetectorDefs::timingMode::TRIGGER_EXPOSURE);
if (det_type == DetectorType::JUNGFRAU) {
auto tx_delay = experiment.GetDetectorSetup().GetTxDelay();
if (tx_delay.size() == experiment.GetModulesNum()) {
for (int i = 0 ; i < tx_delay.size(); i++)
@@ -138,8 +138,6 @@ void DetectorWrapper::Initialize(const DiffractionExperiment& experiment,
det.setPowerChip(true);
std::this_thread::sleep_for(std::chrono::seconds(5));
}
} else if (det_type == DetectorType::EIGER) {
det.setTimingMode(slsDetectorDefs::timingMode::AUTO_TIMING);
}
det.setHighVoltage(experiment.GetDetectorSetup().GetHighVoltage());
+1 -1
View File
@@ -1,5 +1,5 @@
PACKAGE_NAME=jfjoch
PACKAGE_VERSION=1.0.0-rc.14
PACKAGE_VERSION=1.0.0-rc.15
DEST_MODULE_LOCATION=/extra
BUILT_MODULE_NAME=jfjoch
+1 -1
View File
@@ -11,7 +11,7 @@
MODULE_AUTHOR("Filip Leonarski; Paul Scherrer Institute");
MODULE_DESCRIPTION("Jungfraujoch device module");
MODULE_LICENSE("GPL");
MODULE_VERSION("1.0.0-rc.14");
MODULE_VERSION("1.0.0-rc.15");
#define PCI_DEV_ID_JUNGFRAUJOCH (0x3450)
+1
View File
@@ -192,6 +192,7 @@ struct DeviceStatus {
uint64_t fpga_default_mac_addrs_count;
char serial_number[64];
char device_number[64];
bool idle;
};
struct FrameGeneratorConfig {
+5
View File
@@ -314,6 +314,11 @@ void jfjoch_get_env_data(struct jfjoch_drvdata *drvdata, struct DeviceStatus *en
snprintf(env_params->device_number, 64, "%02x:%02x:%01x",
drvdata->pdev->bus->number, PCI_SLOT( drvdata->pdev->devfn), PCI_FUNC( drvdata->pdev->devfn));
if (ioread32(drvdata->bar0 + ACTION_CONFIG_OFFSET + ADDR_CTRL_REGISTER) & CTRL_REGISTER_IDLE)
env_params->idle = true;
else
env_params->idle = false;
}
void jfjoch_clr_net_counters(struct jfjoch_drvdata *drvdata) {
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Taken from https://schneide.blog/2015/08/10/packaging-kernel-modulesdrivers-using-dkms/
VERSION=1.0.0-rc.14
VERSION=1.0.0-rc.15
occurrences=`/usr/sbin/dkms status | grep jfjoch | grep ${VERSION} | wc -l`
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
# Taken from https://schneide.blog/2015/08/10/packaging-kernel-modulesdrivers-using-dkms/
VERSION=1.0.0-rc.14
VERSION=1.0.0-rc.15
/usr/sbin/dkms remove -m jfjoch -v ${VERSION} --all
+9 -2
View File
@@ -5,8 +5,8 @@ import Paper from '@mui/material/Paper';
import {DataGrid, GridCellParams, GridColDef} from "@mui/x-data-grid";
import { DefaultService, fpga_status} from "../openapi";
function Circles(arr: boolean) : JSX.Element {
if (arr)
function Circles(val: boolean) : JSX.Element {
if (val)
return <div style={{color: "green", display: "inline"}} >&#9679;</div>;
else
return <div style={{color: "red", display: "inline"}}>&#9675;</div>;
@@ -30,6 +30,10 @@ function EthLinkStatus(count: number, status: number) : JSX.Element {
</>;
}
function CardIdle(val: boolean) : JSX.Element {
return Circles(val);
}
function DataVolume(count_4kib: number) : string {
if (!Number.isInteger(count_4kib))
return "ERR";
@@ -86,6 +90,9 @@ class FpgaStatus extends React.Component<MyProps, MyState> {
renderCell: (params : GridCellParams) => EthLinkStatus(params.row.eth_link_count,
params.row.eth_link_status)
},
{ field: 'idle', type: 'string', headerName: 'Idle', align: `center`,
renderCell: (params : GridCellParams) => CardIdle(params.row.idle)
},
{ field: 'power_usage_W', type: 'number', headerName: 'Power usage [W]', width: 150},
{ field: 'fpga_temp_C', type: 'number', headerName: 'FPGA temperature [C]', width: 200 },
{ field: 'hbm_temp_C', type: 'number', headerName: 'HBM temperature [C]', width: 200 },
+2 -4
View File
@@ -29,8 +29,7 @@ class StatusBar extends Component<MyProps, MyState> {
state : MyState = {
status: {
state: state.INACTIVE,
progress: undefined,
indexing_rate: undefined
progress: undefined
},
connection_error: true
}
@@ -50,7 +49,7 @@ class StatusBar extends Component<MyProps, MyState> {
DefaultService.getStatus()
.then(data => this.setState({status: data, connection_error: false}))
.catch(error => {
this.setState({status: {state: state.INACTIVE, progress: undefined, indexing_rate: undefined}, connection_error: true});
this.setState({status: {state: state.INACTIVE, progress: undefined}, connection_error: true});
});
}
componentDidMount() {
@@ -66,7 +65,6 @@ class StatusBar extends Component<MyProps, MyState> {
return <div>
State: {this.state.status.state.toString()}
{((this.state.status.progress !== undefined) && (this.state.status.progress !== null))? " (" + FormatNumber(this.state.status.progress * 100.0) + " %)" : ""}
{((this.state.status.indexing_rate !== undefined) && (this.state.status.indexing_rate !== null))? " Indexing rate: " + FormatNumber(this.state.status.indexing_rate * 100.0) + "%" : ""}
</div>
}
render() {
+1 -1
View File
@@ -21,7 +21,7 @@ export type OpenAPIConfig = {
export const OpenAPI: OpenAPIConfig = {
BASE: '',
VERSION: '1.0.0-rc.14',
VERSION: '1.0.0-rc.15',
WITH_CREDENTIALS: false,
CREDENTIALS: 'include',
TOKEN: undefined,
+3 -1
View File
@@ -5,8 +5,10 @@
export type broker_status = {
state: broker_status.state;
/**
* Progress of data collection (only available if receiving is running)
*/
progress?: number;
indexing_rate?: number;
};
export namespace broker_status {
@@ -14,4 +14,5 @@ export type fpga_status = Array<{
hbm_temp_C: number;
packets_udp: number;
packets_sls: number;
idle: boolean;
}>;
+1 -1
View File
@@ -1 +1 @@
export const JFJOCH_VERSION : string = "1.0.0-rc.14";
export const JFJOCH_VERSION : string = "1.0.0-rc.15";
+17
View File
@@ -78,3 +78,20 @@ void JFPedestalCalc::Export(JFModulePedestal &calibration, size_t allowed_wrong_
}
}
}
JFPedestalCalc &JFPedestalCalc::operator+=(const JFPedestalCalc &other) {
if (this != &other) {
if (this->gain_level != other.gain_level) {
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Gain levels do not match between the two JFPedestalCalc objects.");
}
for (size_t i = 0; i < currPedestal.size(); ++i) {
this->currPedestal[i] += other.currPedestal[i];
this->currPedestal2[i] += other.currPedestal2[i];
this->wrongCount[i] += other.wrongCount[i];
}
this->image_number += other.image_number;
}
return *this;
}
+3 -2
View File
@@ -9,8 +9,8 @@
class JFPedestalCalc {
template <unsigned int GAIN_BIT> void AnalyzeImage(const uint16_t *raw_image);
std::vector<int64_t> currPedestal;
std::vector<int64_t> currPedestal2;
std::vector<float> currPedestal;
std::vector<float> currPedestal2;
std::vector<uint32_t> wrongCount;
const uint32_t min_images;
uint8_t gain_level;
@@ -19,6 +19,7 @@ public:
explicit JFPedestalCalc(const DiffractionExperiment& experiment, uint32_t min_images = PEDESTAL_MIN_IMAGE_COUNT);
void AnalyzeImage(const uint16_t *raw_image);
void Export(JFModulePedestal& calibration, size_t allowed_wrong_gains = 0, float rms_limit = HUGE_VALF);
JFPedestalCalc &operator+=(const JFPedestalCalc &other);
};
#endif //JUNGFRAUJOCH_JFPEDESTALCALC_H
+1 -1
View File
@@ -3,7 +3,7 @@ Jungfraujoch Broker Web API
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: 1.0.0-rc.14
- API version: 1.0.0-rc.15
- Package version: 1.0.0
- Generator version: 7.8.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+1 -2
View File
@@ -6,8 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**state** | **str** | |
**progress** | **float** | | [optional]
**indexing_rate** | **float** | | [optional]
**progress** | **float** | Progress of data collection (only available if receiving is running) | [optional]
## Example
+1
View File
@@ -15,6 +15,7 @@ Name | Type | Description | Notes
**hbm_temp_c** | **float** | |
**packets_udp** | **int** | |
**packets_sls** | **int** | |
**idle** | **bool** | |
## Example
+1 -1
View File
@@ -7,7 +7,7 @@
Jungfraujoch Broker Web API
The version of the OpenAPI document: 1.0.0-rc.14
The version of the OpenAPI document: 1.0.0-rc.15
Contact: filip.leonarski@psi.ch
Generated by OpenAPI Generator (https://openapi-generator.tech)
@@ -5,7 +5,7 @@
Jungfraujoch Broker Web API
The version of the OpenAPI document: 1.0.0-rc.14
The version of the OpenAPI document: 1.0.0-rc.15
Contact: filip.leonarski@psi.ch
Generated by OpenAPI Generator (https://openapi-generator.tech)
Loaded 100 of 156 files, more files were not shown because too many files have changed in this diff. Show more