v1.0.0-rc.129 (#36)
Some checks failed
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 11m14s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 10m43s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 11m35s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 9m20s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 10m23s
Build Packages / Generate python client (push) Successful in 39s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m24s
Build Packages / Create release (push) Has been skipped
Build Packages / Build documentation (push) Successful in 1m0s
Build Packages / build:rpm (rocky8) (push) Successful in 10m35s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 10m35s
Build Packages / build:rpm (rocky9) (push) Successful in 11m17s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 9m9s
Build Packages / Unit tests (push) Failing after 1h18m57s

This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.124.

* jfjoch_broker: Significant improvements in TCP image socket, as a viable alternative for ZeroMQ sockets (only a single port on broker side, dynamically change number of writers, acknowledgments for written files)
* jfjoch_broker: Delta phi is calculated also for still data in Bragg prediction
* jfjoch_broker: Image pusher statistics are accessible via the REST interface
* jfjoch_writer: Supports TCP image socket and for these auto-forking option

Reviewed-on: #36
Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
This commit was merged in pull request #36.
This commit is contained in:
2026-03-05 22:13:12 +01:00
committed by leonarski_f
parent 3036b1d37f
commit 64002f1e29
231 changed files with 5401 additions and 1064 deletions

View File

@@ -8,6 +8,7 @@
#include "../frame_serialize/CBORStream2Deserializer.h"
#include "../broker/gen/model/Image_buffer_status.h"
#include "../broker/gen/model/Plots.h"
#include "../broker/gen/model/Broker_status.h"
#include "../image_analysis/bragg_integration/CalcISigma.h"
void JFJochHttpReader::Close() {
@@ -43,6 +44,53 @@ ImageBufferStatus JFJochHttpReader::GetImageBufferStatus() const {
}
}
BrokerStatus JFJochHttpReader::GetBrokerStatus() const {
httplib::Client cli_cmd(addr);
auto res = cli_cmd.Get("/status");
if (!res || res->status != httplib::StatusCode::OK_200)
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Could not get image buffer status");
try {
org::openapitools::server::model::Broker_status input = nlohmann::json::parse(res->body);
BrokerStatus ret{};
ret.broker_version = input.getBrokerVersion();
ret.gpu_count = input.getGpuCount();
if (input.progressIsSet())
ret.progress = input.getProgress();
if (input.getState() == "Inactive")
ret.state = JFJochState::Inactive;
else if (input.getState() == "Idle")
ret.state = JFJochState::Idle;
else if (input.getState() == "Measuring")
ret.state = JFJochState::Measuring;
else if (input.getState() == "Error")
ret.state = JFJochState::Error;
else if (input.getState() == "Busy")
ret.state = JFJochState::Busy;
else if (input.getState() == "Pedestal")
ret.state = JFJochState::Calibration;
if (input.getMessageSeverity() == "info")
ret.message_severity = BrokerStatus::MessageSeverity::Info;
else if (input.getMessageSeverity() == "success")
ret.message_severity = BrokerStatus::MessageSeverity::Success;
else if (input.getMessageSeverity() == "warning")
ret.message_severity = BrokerStatus::MessageSeverity::Warning;
else if (input.getMessageSeverity() == "error")
ret.message_severity = BrokerStatus::MessageSeverity::Error;
if (input.brokerVersionIsSet())
ret.broker_version = input.getBrokerVersion();
return ret;
} catch (std::exception &e) {
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Could not parse image buffer status");
}
}
uint64_t JFJochHttpReader::GetNumberOfImages() const {
std::unique_lock ul(http_mutex);