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

version 1.0.0-rc.15

See merge request jungfraujoch/nextgendcu!80
This commit is contained in:
2024-10-08 21:04:09 +02:00
156 changed files with 402 additions and 372 deletions

View File

@@ -1 +1 @@
1.0.0-rc.14
1.0.0-rc.15

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);
}

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 {};

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);

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;
}

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;

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;

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).

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).

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).

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).

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).

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

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;
};

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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

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;
};

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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).

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:

File diff suppressed because one or more lines are too long

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());

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

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)

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 {

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) {

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`

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

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 },

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() {

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,

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 {

View File

@@ -14,4 +14,5 @@ export type fpga_status = Array<{
hbm_temp_C: number;
packets_udp: number;
packets_sls: number;
idle: boolean;
}>;

View File

@@ -1 +1 @@
export const JFJOCH_VERSION : string = "1.0.0-rc.14";
export const JFJOCH_VERSION : string = "1.0.0-rc.15";

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;
}

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

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

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

View File

@@ -15,6 +15,7 @@ Name | Type | Description | Notes
**hbm_temp_c** | **float** | |
**packets_udp** | **int** | |
**packets_sls** | **int** | |
**idle** | **bool** | |
## Example

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)

View File

@@ -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)

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