Improve plotting

This commit is contained in:
2024-03-31 23:08:19 +02:00
parent 8cad89d649
commit 30e775d8a2
122 changed files with 4640 additions and 1149 deletions
+43 -5
View File
@@ -263,6 +263,7 @@ void JFJochStateMachine::Initialize() {
logger.Info("Initialize");
state = JFJochState::Busy;
ClearMeasurementStatistics();
measurement = std::async(std::launch::async, &JFJochStateMachine::InitializeThread, this, std::move(ul));
}
@@ -494,6 +495,7 @@ void JFJochStateMachine::LoadDetectorSettings(const DetectorSettings &settings)
ApplyDetectorSettings(experiment, settings);
break;
case JFJochState::Idle:
state = JFJochState::Busy;
ApplyDetectorSettings(experiment, settings);
measurement = std::async(std::launch::async, &JFJochStateMachine::PedestalThread, this, std::move(ul));
break;
@@ -523,14 +525,10 @@ BrokerStatus JFJochStateMachine::GetStatus() const {
return ret;
}
Plot JFJochStateMachine::GetPlots(const PlotRequest &request) const {
MultiLinePlot JFJochStateMachine::GetPlots(const PlotRequest &request) const {
return services.GetPlots(request);
}
RadialIntegrationProfiles JFJochStateMachine::GetRadialIntegrationProfiles() const {
return services.GetRadialIntegrationProfiles();
}
void JFJochStateMachine::SetSpotFindingSettings(const SpotFindingSettings &settings) {
std::unique_lock<std::mutex> ul(data_processing_settings_mutex);
DiffractionExperiment::CheckDataProcessingSettings(settings);
@@ -690,3 +688,43 @@ void JFJochStateMachine::LoadInternalGeneratorImage(const void *data, size_t siz
services.LoadInternalGeneratorImage(experiment, image, image_number);
}
void JFJochStateMachine::SetBoxROI(const std::vector<ROIBox> &input) {
std::unique_lock<std::mutex> ul(m);
if (IsRunning())
throw WrongDAQStateException ("ROI can be modified only when detector is not running");
experiment.ROI().SetROIBox(input);
}
void JFJochStateMachine::SetCircleROI(const std::vector<ROICircle> &input) {
std::unique_lock<std::mutex> ul(m);
if (IsRunning())
throw WrongDAQStateException ("ROI can be modified only when detector is not running");
experiment.ROI().SetROICircle(input);
}
std::vector<ROIBox> JFJochStateMachine::GetBoxROI() const {
std::unique_lock<std::mutex> ul(m);
return experiment.ROI().GetROIBox();
}
std::vector<ROICircle> JFJochStateMachine::GetCircleROI() const {
std::unique_lock<std::mutex> ul(m);
return experiment.ROI().GetROICircle();
}
std::vector<uint64_t> JFJochStateMachine::GetXFELPulseID() const {
std::vector<uint64_t> ret;
services.GetXFELPulseID(ret);
return ret;
}
std::vector<uint64_t> JFJochStateMachine::GetXFELEventCode() const {
std::vector<uint64_t> ret;
services.GetXFELEventCode(ret);
return ret;
}