bugfixes power sweep handling

This commit is contained in:
Jan Käberich 2021-07-10 14:04:05 +02:00
parent 6fdbaea55f
commit 217574e0cb
2 changed files with 12 additions and 8 deletions

View File

@ -423,7 +423,7 @@ Calibration::InterpolationType Calibration::getInterpolation(double f_start, dou
return InterpolationType::Interpolate; return InterpolationType::Interpolate;
} }
f += f_step; f += f_step;
} while(f <= f_stop); } while(f <= f_stop && f_step > std::numeric_limits<double>::epsilon());
// if we get here all frequency points were matched // if we get here all frequency points were matched
if(points.front().frequency == f_start && points.back().frequency == f_stop) { if(points.front().frequency == f_start && points.back().frequency == f_stop) {

View File

@ -493,6 +493,7 @@ VNA::VNA(AppWindow *window)
} else if(sw == SweepType::Power) { } else if(sw == SweepType::Power) {
configureToolbarForPowerSweep(); configureToolbarForPowerSweep();
} }
cbSweepType->setCurrentIndex((int) sw);
}); });
// initial setup is frequency sweep // initial setup is frequency sweep
SetSweepType(SweepType::Frequency); SetSweepType(SweepType::Frequency);
@ -538,6 +539,9 @@ VNA::VNA(AppWindow *window)
SetIFBandwidth(pref.Startup.DefaultSweep.bandwidth); SetIFBandwidth(pref.Startup.DefaultSweep.bandwidth);
SetAveraging(pref.Startup.DefaultSweep.averaging); SetAveraging(pref.Startup.DefaultSweep.averaging);
SetPoints(pref.Startup.DefaultSweep.points); SetPoints(pref.Startup.DefaultSweep.points);
if(pref.Startup.DefaultSweep.type == "Power Sweep") {
SetSweepType(SweepType::Power);
}
} }
// Set ObjectName for toolbars and docks // Set ObjectName for toolbars and docks
@ -1240,12 +1244,6 @@ void VNA::LoadSweepSettings()
{ {
auto pref = Preferences::getInstance(); auto pref = Preferences::getInstance();
QSettings s; 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 // frequency sweep settings
settings.Freq.start = s.value("SweepFreqStart", pref.Startup.DefaultSweep.f_start).toULongLong(); settings.Freq.start = s.value("SweepFreqStart", pref.Startup.DefaultSweep.f_start).toULongLong();
settings.Freq.stop = s.value("SweepFreqStop", pref.Startup.DefaultSweep.f_stop).toULongLong(); settings.Freq.stop = s.value("SweepFreqStop", pref.Startup.DefaultSweep.f_stop).toULongLong();
@ -1253,11 +1251,17 @@ void VNA::LoadSweepSettings()
// power sweep settings // power sweep settings
SetStartPower(s.value("SweepPowerStart", pref.Startup.DefaultSweep.dbm_start).toDouble()); SetStartPower(s.value("SweepPowerStart", pref.Startup.DefaultSweep.dbm_start).toDouble());
SetStopPower(s.value("SweepPowerStop", pref.Startup.DefaultSweep.dbm_stop).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()); SetPoints(s.value("SweepPoints", pref.Startup.DefaultSweep.points).toInt());
SetIFBandwidth(s.value("SweepBandwidth", pref.Startup.DefaultSweep.bandwidth).toUInt()); SetIFBandwidth(s.value("SweepBandwidth", pref.Startup.DefaultSweep.bandwidth).toUInt());
SetAveraging(s.value("SweepAveraging", pref.Startup.DefaultSweep.averaging).toInt()); SetAveraging(s.value("SweepAveraging", pref.Startup.DefaultSweep.averaging).toInt());
ConstrainAndUpdateFrequencies(); ConstrainAndUpdateFrequencies();
auto typeString = s.value("SweepType", pref.Startup.DefaultSweep.type).toString();
if(typeString == "Power") {
SetSweepType(SweepType::Power);
} else {
SetSweepType(SweepType::Frequency);
}
} }
void VNA::StoreSweepSettings() void VNA::StoreSweepSettings()