v1.0.0-rc.115 #22

Merged
leonarski_f merged 5 commits from 2511-1.0.0-rc.115c into main 2025-12-04 11:56:14 +01:00
15 changed files with 84 additions and 12 deletions
Showing only changes of commit cd80fd0ed5 - Show all commits

View File

@@ -9,9 +9,11 @@
#include "OpenAPIConvert.h"
#include "../preview/JFJochTIFF.h"
JFJochBrokerHttp::JFJochBrokerHttp(const DiffractionExperiment &experiment, std::shared_ptr<Pistache::Rest::Router> &rtr)
JFJochBrokerHttp::JFJochBrokerHttp(const DiffractionExperiment &experiment,
const SpotFindingSettings& spot_finding_settings,
std::shared_ptr<Pistache::Rest::Router> &rtr)
: DefaultApi(rtr),
state_machine(experiment, services, logger) {
state_machine(experiment, services, logger, spot_finding_settings) {
Pistache::Rest::Routes::Get(*rtr, "/", Pistache::Rest::Routes::bind(&JFJochBrokerHttp::GetStaticFile, this));
Pistache::Rest::Routes::Get(*rtr, "/frontend", Pistache::Rest::Routes::bind(&JFJochBrokerHttp::GetStaticFile, this));
Pistache::Rest::Routes::Get(*rtr, "/frontend/*", Pistache::Rest::Routes::bind(&JFJochBrokerHttp::GetStaticFile, this));

View File

@@ -181,7 +181,10 @@ class JFJochBrokerHttp : public org::openapitools::server::api::DefaultApi {
void config_dark_mask_put(const org::openapitools::server::model::Dark_mask_settings &darkMaskSettings,
Pistache::Http::ResponseWriter &response) override;
public:
JFJochBrokerHttp(const DiffractionExperiment& experiment, std::shared_ptr<Pistache::Rest::Router> &rtr);
JFJochBrokerHttp(const DiffractionExperiment& experiment,
const SpotFindingSettings &spot_finding_settings,
std::shared_ptr<Pistache::Rest::Router> &rtr);
void AddDetectorSetup(const DetectorSetup &setup);
JFJochServices& Services();

View File

@@ -235,3 +235,9 @@ void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settin
service.MetadataSocketSettings(Convert(input.getZeromqMetadata()));
}
}
SpotFindingSettings ParseSpotFindingSettings(const org::openapitools::server::model::Jfjoch_settings &input) {
if (input.spotFindingIsSet())
return Convert(input.getSpotFinding());
return SpotFindingSettings();
}

View File

@@ -21,5 +21,6 @@ std::unique_ptr<ImagePusher> ParseImagePusher(const org::openapitools::server::m
void ParseAcquisitionDeviceGroup(const org::openapitools::server::model::Jfjoch_settings &input, AcquisitionDeviceGroup &aq_devices);
void ParseReceiverSettings(const org::openapitools::server::model::Jfjoch_settings &input, JFJochReceiverService &service);
SpotFindingSettings ParseSpotFindingSettings(const org::openapitools::server::model::Jfjoch_settings &input);
#endif //JUNGFRAUJOCH_JFJOCHBROKERPARSER_H

View File

@@ -10,13 +10,14 @@
JFJochStateMachine::JFJochStateMachine(const DiffractionExperiment& in_experiment,
JFJochServices &in_services,
Logger &in_logger)
Logger &in_logger,
const SpotFindingSettings &spot_finding_settings)
: logger(in_logger),
services(in_services),
experiment(in_experiment),
pixel_mask(experiment),
current_detector_setup(0),
data_processing_settings(DiffractionExperiment::DefaultDataProcessingSettings()),
data_processing_settings(spot_finding_settings),
pixel_mask_statistics({0, 0, 0}),
gpu_count(get_gpu_count()) {

View File

@@ -153,7 +153,8 @@ class JFJochStateMachine {
public:
JFJochStateMachine(const DiffractionExperiment& experiment,
JFJochServices &in_services,
Logger &logger);
Logger &logger,
const SpotFindingSettings &spot_finding_settings = SpotFindingSettings());
~JFJochStateMachine();
void Initialize();

View File

@@ -39,6 +39,7 @@ Jfjoch_settings::Jfjoch_settings()
m_Numa_policyIsSet = false;
m_Frontend_directory = "";
m_SslIsSet = false;
m_Spot_findingIsSet = false;
m_Zeromq_previewIsSet = false;
m_Zeromq_metadataIsSet = false;
m_Dark_maskIsSet = false;
@@ -139,7 +140,7 @@ bool Jfjoch_settings::validate(std::stringstream& msg, const std::string& pathPr
}
}
return success;
}
@@ -193,6 +194,9 @@ bool Jfjoch_settings::operator==(const Jfjoch_settings& rhs) const
((!sslIsSet() && !rhs.sslIsSet()) || (sslIsSet() && rhs.sslIsSet() && getSsl() == rhs.getSsl())) &&
((!spotFindingIsSet() && !rhs.spotFindingIsSet()) || (spotFindingIsSet() && rhs.spotFindingIsSet() && getSpotFinding() == rhs.getSpotFinding())) &&
(getImagePusher() == rhs.getImagePusher())
&&
@@ -244,6 +248,8 @@ void to_json(nlohmann::json& j, const Jfjoch_settings& o)
j["frontend_directory"] = o.m_Frontend_directory;
if(o.sslIsSet())
j["ssl"] = o.m_Ssl;
if(o.spotFindingIsSet())
j["spot_finding"] = o.m_Spot_finding;
j["image_pusher"] = o.m_Image_pusher;
if(o.zeromqPreviewIsSet())
j["zeromq_preview"] = o.m_Zeromq_preview;
@@ -323,6 +329,11 @@ void from_json(const nlohmann::json& j, Jfjoch_settings& o)
j.at("ssl").get_to(o.m_Ssl);
o.m_SslIsSet = true;
}
if(j.find("spot_finding") != j.end())
{
j.at("spot_finding").get_to(o.m_Spot_finding);
o.m_Spot_findingIsSet = true;
}
j.at("image_pusher").get_to(o.m_Image_pusher);
if(j.find("zeromq_preview") != j.end())
{
@@ -579,6 +590,23 @@ void Jfjoch_settings::unsetSsl()
{
m_SslIsSet = false;
}
org::openapitools::server::model::Spot_finding_settings Jfjoch_settings::getSpotFinding() const
{
return m_Spot_finding;
}
void Jfjoch_settings::setSpotFinding(org::openapitools::server::model::Spot_finding_settings const& value)
{
m_Spot_finding = value;
m_Spot_findingIsSet = true;
}
bool Jfjoch_settings::spotFindingIsSet() const
{
return m_Spot_findingIsSet;
}
void Jfjoch_settings::unsetSpot_finding()
{
m_Spot_findingIsSet = false;
}
org::openapitools::server::model::Image_pusher_type Jfjoch_settings::getImagePusher() const
{
return m_Image_pusher;

View File

@@ -19,6 +19,7 @@
#define Jfjoch_settings_H_
#include "Spot_finding_settings.h"
#include "Zeromq_preview_settings.h"
#include "Dark_mask_settings.h"
#include "Pcie_devices_inner.h"
@@ -177,6 +178,13 @@ public:
/// <summary>
///
/// </summary>
org::openapitools::server::model::Spot_finding_settings getSpotFinding() const;
void setSpotFinding(org::openapitools::server::model::Spot_finding_settings const& value);
bool spotFindingIsSet() const;
void unsetSpot_finding();
/// <summary>
///
/// </summary>
org::openapitools::server::model::Image_pusher_type getImagePusher() const;
void setImagePusher(org::openapitools::server::model::Image_pusher_type const& value);
/// <summary>
@@ -234,6 +242,8 @@ protected:
org::openapitools::server::model::Jfjoch_settings_ssl m_Ssl;
bool m_SslIsSet;
org::openapitools::server::model::Spot_finding_settings m_Spot_finding;
bool m_Spot_findingIsSet;
org::openapitools::server::model::Image_pusher_type m_Image_pusher;
org::openapitools::server::model::Zeromq_preview_settings m_Zeromq_preview;

View File

@@ -2142,7 +2142,8 @@ components:
type: string
minLength: 1
example: "server.key"
spot_finding:
$ref: '#/components/schemas/spot_finding_settings'
image_pusher:
$ref: '#/components/schemas/image_pusher_type'
zeromq_preview:

View File

@@ -96,6 +96,8 @@ int main (int argc, char **argv) {
DiffractionExperiment experiment(det_setup[0]);
ParseFacilityConfiguration(settings, experiment);
SpotFindingSettings spot_finding_settings = ParseSpotFindingSettings(settings);
AcquisitionDeviceGroup aq_devices;
ParseAcquisitionDeviceGroup(settings, aq_devices);
@@ -127,7 +129,7 @@ int main (int argc, char **argv) {
std::vector<int> sigs{SIGQUIT, SIGINT, SIGTERM, SIGHUP};
setUpUnixSignals(sigs);
JFJochBrokerHttp broker(experiment, router);
JFJochBrokerHttp broker(experiment, spot_finding_settings, router);
broker.FrontendDirectory(settings.getFrontendDirectory());
for (const auto &d: det_setup)

File diff suppressed because one or more lines are too long

View File

@@ -21,6 +21,7 @@ Name | Type | Description | Notes
**numa_policy** | **str** | NUMA policy to bind CPUs | [optional]
**frontend_directory** | **str** | Location of built JavaScript web frontend |
**ssl** | [**JfjochSettingsSsl**](JfjochSettingsSsl.md) | | [optional]
**spot_finding** | [**SpotFindingSettings**](SpotFindingSettings.md) | | [optional]
**image_pusher** | [**ImagePusherType**](ImagePusherType.md) | | [default to ImagePusherType.NONE]
**zeromq_preview** | [**ZeromqPreviewSettings**](ZeromqPreviewSettings.md) | | [optional]
**zeromq_metadata** | [**ZeromqMetadataSettings**](ZeromqMetadataSettings.md) | | [optional]

View File

@@ -11,6 +11,20 @@
"max_frames_with_signal":20,
"number_of_frames":500
},
"spot_finding": {
"enable":true,
"high_res_gap_Q_recipA":1.5,
"high_resolution_limit":2.0,
"high_resolution_limit_for_spot_count_low_res":5.0,
"ice_ring_width_q_recipA":0.02,
"signal_to_noise_threshold":4.0,
"photon_count_threshold":10,
"low_resolution_limit":50.0,
"max_pix_per_spot":50,
"min_pix_per_spot":2,
"indexing":true,
"quick_integration":true
},
"detector": [
{
"description": "JUNGFRAU 4M",

View File

@@ -1,12 +1,12 @@
{
"name": "jungfraujoch-frontend",
"version": "1.0.0-rc.114",
"version": "1.0.0-rc.115",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jungfraujoch-frontend",
"version": "1.0.0-rc.114",
"version": "1.0.0-rc.115",
"license": "GPL-3.0",
"dependencies": {
"@emotion/react": "^11.10.4",

View File

@@ -13,6 +13,7 @@ import type { image_pusher_type } from './image_pusher_type';
import type { indexing_settings } from './indexing_settings';
import type { instrument_metadata } from './instrument_metadata';
import type { pcie_devices } from './pcie_devices';
import type { spot_finding_settings } from './spot_finding_settings';
import type { zeromq_metadata_settings } from './zeromq_metadata_settings';
import type { zeromq_preview_settings } from './zeromq_preview_settings';
import type { zeromq_settings } from './zeromq_settings';
@@ -56,6 +57,7 @@ export type jfjoch_settings = {
certificate: string;
key: string;
};
spot_finding?: spot_finding_settings;
image_pusher: image_pusher_type;
zeromq_preview?: zeromq_preview_settings;
zeromq_metadata?: zeromq_metadata_settings;