JFJochHttpReader: Parse /status
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user