From 75eb6ce59ced3e22c1604890412e0210567b7f7d Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Fri, 11 Sep 2026 19:23:49 +0200 Subject: [PATCH] jfjoch_viewer: a dataset opened over HTTP keeps its source and instrument The start message carries source_name, source_type and instrument_name, and the broker fills all three from its config, but the HTTP reader never imported them into the dataset's experiment - so the Inspector showed "-" for Source / Instrument on a live connection while the same file opened from disk showed it. Total flux and attenuator transmission, which the tooltip on that line reports, were dropped the same way; ring current already came through. Sample name was never affected and is unchanged. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PogHY7bWXV4bpctDPdyuDN --- viewer/JFJochHttpReader.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/viewer/JFJochHttpReader.cpp b/viewer/JFJochHttpReader.cpp index 31419cbf1..d072174b1 100644 --- a/viewer/JFJochHttpReader.cpp +++ b/viewer/JFJochHttpReader.cpp @@ -11,6 +11,7 @@ #include "../broker/gen/model/Plots.h" #include "../broker/gen/model/Broker_status.h" #include "../broker/gen/model/Roi_definitions.h" +#include "../common/InstrumentMetadata.h" #include "../common/JFJochMath.h" #include "../image_analysis/bragg_integration/CalcISigma.h" @@ -259,9 +260,18 @@ std::shared_ptr JFJochHttpReader::UpdateDataset_i() { dataset->experiment.NumTriggers(1); dataset->experiment.ImagesPerTrigger(msg->start_message->number_of_images); + + InstrumentMetadata instrument; + instrument.SourceName(msg->start_message->source_name); + instrument.SourceType(msg->start_message->source_type); + instrument.InstrumentName(msg->start_message->instrument_name); + dataset->experiment.ImportInstrumentMetadata(instrument); + dataset->experiment.SampleName(msg->start_message->sample_name); dataset->experiment.SampleTemperature_K(msg->start_message->sample_temperature_K); dataset->experiment.RingCurrent_mA(msg->start_message->ring_current_mA); + dataset->experiment.TotalFlux(msg->start_message->total_flux); + dataset->experiment.AttenuatorTransmission(msg->start_message->attenuator_transmission); dataset->experiment.IncidentEnergy_keV(msg->start_message->incident_energy / 1000.0); dataset->experiment.FluorescenceSpectrum(msg->start_message->fluorescence_spectrum);