mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-28 01:00:02 +02:00
gui exception thrown from acquire caught properly in gui
This commit is contained in:
parent
6563965787
commit
7fcac35549
@ -1,6 +1,6 @@
|
||||
#pragma once
|
||||
#include "sls/Detector.h"
|
||||
#include "qDefs.h"
|
||||
#include "sls/Detector.h"
|
||||
#include "ui_form_plot.h"
|
||||
#include <mutex>
|
||||
|
||||
@ -63,7 +63,7 @@ class qDrawPlot : public QWidget, private Ui::PlotObject {
|
||||
|
||||
signals:
|
||||
void AcquireFinishedSignal();
|
||||
void AbortSignal();
|
||||
void AbortSignal(QString);
|
||||
void UpdateSignal();
|
||||
|
||||
private:
|
||||
|
@ -16,7 +16,7 @@ class qTabMeasurement : public QWidget, private Ui::TabMeasurementObject {
|
||||
|
||||
public slots:
|
||||
void AcquireFinished();
|
||||
void AbortAcquire();
|
||||
void AbortAcquire(QString exmsg);
|
||||
|
||||
private slots:
|
||||
void SetTimingMode(int val);
|
||||
|
@ -270,7 +270,8 @@ void qDetectorMain::Initialization() {
|
||||
// Plotting
|
||||
connect(plot, SIGNAL(AcquireFinishedSignal()), tabMeasurement,
|
||||
SLOT(AcquireFinished()));
|
||||
connect(plot, SIGNAL(AbortSignal()), tabMeasurement, SLOT(AbortAcquire()));
|
||||
connect(plot, SIGNAL(AbortSignal(QString)), tabMeasurement,
|
||||
SLOT(AbortAcquire(QString)));
|
||||
|
||||
// menubar
|
||||
// Modes Menu
|
||||
|
@ -672,18 +672,15 @@ void qDrawPlot::AcquireThread() {
|
||||
// handle it
|
||||
if (!mess.empty()) {
|
||||
LOG(logERROR) << "Acquisition Finished with an exception: " << mess;
|
||||
qDefs::ExceptionMessage("Acquire unsuccessful.", mess,
|
||||
"qDrawPlot::AcquireFinished");
|
||||
// qDefs::ExceptionMessage("Acquire unsuccessful.", mess,
|
||||
// "qDrawPlot::AcquireFinished");
|
||||
try {
|
||||
det->stopDetector();
|
||||
}
|
||||
CATCH_DISPLAY("Could not stop detector acquisition.",
|
||||
"qDrawPlot::AcquireFinished");
|
||||
try {
|
||||
det->stopReceiver();
|
||||
} catch (...) {
|
||||
;
|
||||
}
|
||||
CATCH_DISPLAY("Could not stop receiver.", "qDrawPlot::AcquireFinished");
|
||||
emit AbortSignal();
|
||||
emit AbortSignal(QString(mess.c_str()));
|
||||
}
|
||||
LOG(logDEBUG) << "End of Acquisition Finished";
|
||||
}
|
||||
|
@ -948,8 +948,11 @@ void qTabMeasurement::AcquireFinished() {
|
||||
}
|
||||
}
|
||||
|
||||
void qTabMeasurement::AbortAcquire() {
|
||||
void qTabMeasurement::AbortAcquire(QString exmsg) {
|
||||
LOG(logINFORED) << "Abort Acquire";
|
||||
qDefs::ExceptionMessage("Acquire unsuccessful.",
|
||||
exmsg.toAscii().constData(),
|
||||
"qDrawPlot::AcquireFinished");
|
||||
isAcquisitionStopped = true;
|
||||
AcquireFinished();
|
||||
}
|
||||
|
@ -1079,13 +1079,13 @@ int DetectorImpl::acquire() {
|
||||
}
|
||||
}
|
||||
|
||||
startProcessingThread(receiver);
|
||||
|
||||
// start receiver
|
||||
if (receiver) {
|
||||
Parallel(&Module::startReceiver, {});
|
||||
}
|
||||
|
||||
startProcessingThread(receiver);
|
||||
|
||||
// start and read all
|
||||
try {
|
||||
Parallel(&Module::startAndReadAll, {});
|
||||
@ -1126,10 +1126,10 @@ int DetectorImpl::acquire() {
|
||||
(end.tv_nsec - begin.tv_nsec) / 1000000000.0)
|
||||
<< " seconds";
|
||||
} catch (...) {
|
||||
if (dataProcessingThread.joinable()){
|
||||
if (dataProcessingThread.joinable()) {
|
||||
setJoinThreadFlag(true);
|
||||
dataProcessingThread.join();
|
||||
}
|
||||
}
|
||||
setAcquiringFlag(false);
|
||||
throw;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user