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