From ee8188775a36b916419b95b302c0343ffcbf8049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 13 Jan 2024 18:21:29 +0100 Subject: [PATCH] minor improvements to eCal dialog --- .../LibreVNA-GUI/Calibration/LibreCAL/librecaldialog.cpp | 4 ++++ .../PC_Application/LibreVNA-GUI/Calibration/calibration.cpp | 5 +++++ .../PC_Application/LibreVNA-GUI/Calibration/calibration.h | 4 ++++ Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp | 4 +++- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/LibreCAL/librecaldialog.cpp b/Software/PC_Application/LibreVNA-GUI/Calibration/LibreCAL/librecaldialog.cpp index 91f3b0a..4a07906 100644 --- a/Software/PC_Application/LibreVNA-GUI/Calibration/LibreCAL/librecaldialog.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Calibration/LibreCAL/librecaldialog.cpp @@ -398,7 +398,11 @@ void LibreCALDialog::startCalibration() measurementsTaken++; }; + disconnect(cal, &Calibration::measurementsUpdated, this, nullptr); connect(cal, &Calibration::measurementsUpdated, this, startNextCalibrationStep); + connect(cal, &Calibration::measurementsAborted, this, [=](){ + enableUI(); + }); startNextCalibrationStep(); } diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp index dbdb476..5ed7768 100644 --- a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp +++ b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.cpp @@ -1753,6 +1753,11 @@ void Calibration::measurementsComplete() emit measurementsUpdated(); } +void Calibration::measurementsAbort() +{ + emit measurementsAborted(); +} + void Calibration::deactivate() { lock_guard guard(access); diff --git a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.h b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.h index 3f590a3..733f723 100644 --- a/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.h +++ b/Software/PC_Application/LibreVNA-GUI/Calibration/calibration.h @@ -101,6 +101,8 @@ public: public slots: // Call once all datapoints of the current span have been added void measurementsComplete(); + // Call once when a measurement is aborted before all points have been captured + void measurementsAbort(); // Attempts to calculate the calibration coefficients. If not enough measurements are available, false is returned and the currently used coefficients are not changed bool compute(CalType type); // Deactivates the calibration, resets the calibration coefficients. Calibration measurements are NOT deleted. @@ -110,6 +112,8 @@ signals: void startMeasurements(std::set m); // emitted whenever a measurement is complete (triggered by calling measurementsComplete()) void measurementsUpdated(); + // emitted when taking a calibration measurement is aborted + void measurementsAborted(); // emitted when calibration coefficients were calculated/updated successfully void activated(CalType type); // emitted when the calibrationo coefficients were reset diff --git a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp index d1e4755..b77dcbe 100644 --- a/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp +++ b/Software/PC_Application/LibreVNA-GUI/VNA/vna.cpp @@ -889,8 +889,9 @@ void VNA::NewDatapoint(DeviceDriver::VNAMeasurement m) cal.addMeasurements(calMeasurements, m_avg); if(m_avg.pointNum == settings.npoints - 1) { calMeasuring = false; - cal.measurementsComplete(); delete calDialog; + calDialog = nullptr; + cal.measurementsComplete(); } } } @@ -1266,6 +1267,7 @@ void VNA::StartCalibrationMeasurements(std::set m // the user aborted the calibration measurement calMeasuring = false; cal.clearMeasurements(calMeasurements); + cal.measurementsAbort(); delete calDialog; }, Qt::UniqueConnection); // Trigger sweep to start from beginning