From 217574e0cbf32b4f3ed8cba1d36b7a20178003c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4berich?= Date: Sat, 10 Jul 2021 14:04:05 +0200 Subject: [PATCH] bugfixes power sweep handling --- .../PC_Application/Calibration/calibration.cpp | 2 +- Software/PC_Application/VNA/vna.cpp | 18 +++++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Software/PC_Application/Calibration/calibration.cpp b/Software/PC_Application/Calibration/calibration.cpp index 2aa1a45..dbc57ab 100644 --- a/Software/PC_Application/Calibration/calibration.cpp +++ b/Software/PC_Application/Calibration/calibration.cpp @@ -423,7 +423,7 @@ Calibration::InterpolationType Calibration::getInterpolation(double f_start, dou return InterpolationType::Interpolate; } f += f_step; - } while(f <= f_stop); + } while(f <= f_stop && f_step > std::numeric_limits::epsilon()); // if we get here all frequency points were matched if(points.front().frequency == f_start && points.back().frequency == f_stop) { diff --git a/Software/PC_Application/VNA/vna.cpp b/Software/PC_Application/VNA/vna.cpp index 57bc908..9afa253 100644 --- a/Software/PC_Application/VNA/vna.cpp +++ b/Software/PC_Application/VNA/vna.cpp @@ -493,6 +493,7 @@ VNA::VNA(AppWindow *window) } else if(sw == SweepType::Power) { configureToolbarForPowerSweep(); } + cbSweepType->setCurrentIndex((int) sw); }); // initial setup is frequency sweep SetSweepType(SweepType::Frequency); @@ -538,6 +539,9 @@ VNA::VNA(AppWindow *window) SetIFBandwidth(pref.Startup.DefaultSweep.bandwidth); SetAveraging(pref.Startup.DefaultSweep.averaging); SetPoints(pref.Startup.DefaultSweep.points); + if(pref.Startup.DefaultSweep.type == "Power Sweep") { + SetSweepType(SweepType::Power); + } } // Set ObjectName for toolbars and docks @@ -1240,12 +1244,6 @@ void VNA::LoadSweepSettings() { auto pref = Preferences::getInstance(); QSettings s; - auto typeString = s.value("SweepType", pref.Startup.DefaultSweep.type).toString(); - if(typeString == "Power") { - SetSweepType(SweepType::Power); - } else { - SetSweepType(SweepType::Frequency); - } // frequency sweep settings settings.Freq.start = s.value("SweepFreqStart", pref.Startup.DefaultSweep.f_start).toULongLong(); settings.Freq.stop = s.value("SweepFreqStop", pref.Startup.DefaultSweep.f_stop).toULongLong(); @@ -1253,11 +1251,17 @@ void VNA::LoadSweepSettings() // power sweep settings SetStartPower(s.value("SweepPowerStart", pref.Startup.DefaultSweep.dbm_start).toDouble()); SetStopPower(s.value("SweepPowerStop", pref.Startup.DefaultSweep.dbm_stop).toDouble()); - SetPowerSweepFrequency(s.value("SweepFreqStop", pref.Startup.DefaultSweep.dbm_freq).toULongLong()); + SetPowerSweepFrequency(s.value("SweepPowerFreq", pref.Startup.DefaultSweep.dbm_freq).toULongLong()); SetPoints(s.value("SweepPoints", pref.Startup.DefaultSweep.points).toInt()); SetIFBandwidth(s.value("SweepBandwidth", pref.Startup.DefaultSweep.bandwidth).toUInt()); SetAveraging(s.value("SweepAveraging", pref.Startup.DefaultSweep.averaging).toInt()); ConstrainAndUpdateFrequencies(); + auto typeString = s.value("SweepType", pref.Startup.DefaultSweep.type).toString(); + if(typeString == "Power") { + SetSweepType(SweepType::Power); + } else { + SetSweepType(SweepType::Frequency); + } } void VNA::StoreSweepSettings()