Remember/set default values for signal generator/spectrum analyzer

This commit is contained in:
Jan Käberich 2020-10-22 17:13:36 +02:00
parent 5f654f0023
commit 978ac89aa9
15 changed files with 429 additions and 156 deletions

Binary file not shown.

View File

@ -314,7 +314,7 @@ The control elements are mostly identical to the vector network analyzer mode, a
\end{center}
\begin{itemize}
\item \textbf{RBW:} Resolution bandwidth. Lower values allow differentiating between signals at closer frequencies. Lower values also result in a reduced noisefloor but significantly increase sweep time.
\item \textbf{Window:} Window type used in the DFT of the final IF. Can be left at "Kaiser" for almost all applications.
\item \textbf{Window:} Window type used in the DFT of the final IF.
\item \textbf{Detector:} For every point displayed, several measurements are taken. The detector type determines which one of these measurement will be displayed.
\item \textbf{Signal ID:} Signal identification. This can help to determine whether a displayed signal is actually present or the result from internal imaging. When enabled, the \vna{} changes the LO frequencies for every measurement point and observes how the final IF signal is affected by that. This removes almost all of the mirror images but at the cost of increased sweep time.

View File

@ -1,13 +1,35 @@
#include "generator.h"
#include <QSettings>
Generator::Generator(AppWindow *window)
: Mode(window, "Signal Generator")
{
central = new SignalgeneratorWidget();
// set initial values
if(pref.Startup.RememberSweepSettings) {
QSettings s;
central->setFrequency(s.value("GeneratorFrequency", pref.Startup.Generator.frequency).toDouble());
central->setLevel(s.value("GeneratorLevel", pref.Startup.Generator.level).toDouble());
} else {
central->setFrequency(pref.Startup.Generator.frequency);
central->setLevel(pref.Startup.Generator.level);
}
finalize(central);
connect(central, &SignalgeneratorWidget::SettingsChanged, this, &Generator::updateDevice);
}
void Generator::deactivate()
{
// store current settings
QSettings s;
auto settings = central->getDeviceStatus();
s.setValue("GeneratorFrequency", static_cast<unsigned long long>(settings.frequency));
s.setValue("GeneratorLevel", static_cast<unsigned long long>((double) settings.cdbm_level / 100.0));
Mode::deactivate();
}
void Generator::initializeDevice()
{
updateDevice();
@ -16,7 +38,7 @@ void Generator::initializeDevice()
void Generator::updateDevice()
{
if(!window->getDevice()) {
// can't updat if not connected
// can't update if not connected
return;
}
// TODO comment in once status is filled with valid values

View File

@ -8,6 +8,7 @@ class Generator : public Mode
{
public:
Generator(AppWindow *window);
void deactivate() override;
void initializeDevice() override;
private slots:
void updateDevice();

View File

@ -68,3 +68,8 @@ void SignalgeneratorWidget::setLevel(double level)
SettingsChanged();
}
void SignalgeneratorWidget::setFrequency(double frequency)
{
ui->frequency->setValue(frequency);
}

View File

@ -21,8 +21,9 @@ public:
signals:
void SettingsChanged();
private slots:
public slots:
void setLevel(double level);
void setFrequency(double frequency);
private:
Ui::SignalgeneratorWidget *ui;
};

View File

@ -43,7 +43,6 @@
SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window)
: Mode(window, "Spectrum Analyzer"),
pref(window->getPreferenceRef()),
central(new TileWidget(traceModel))
{
averages = 1;
@ -130,7 +129,7 @@ SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window)
tb_acq->addWidget(eBandwidth);
tb_acq->addWidget(new QLabel("Window:"));
auto cbWindowType = new QComboBox();
cbWindowType = new QComboBox();
cbWindowType->addItem("None");
cbWindowType->addItem("Kaiser");
cbWindowType->addItem("Hann");
@ -143,7 +142,7 @@ SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window)
tb_acq->addWidget(cbWindowType);
tb_acq->addWidget(new QLabel("Detector:"));
auto cbDetector = new QComboBox();
cbDetector = new QComboBox();
cbDetector->addItem("+Peak");
cbDetector->addItem("-Peak");
cbDetector->addItem("Sample");
@ -156,7 +155,7 @@ SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window)
});
tb_acq->addWidget(cbDetector);
auto cbSignalID = new QCheckBox("Signal ID");
cbSignalID = new QCheckBox("Signal ID");
connect(cbSignalID, &QCheckBox::toggled, [=](bool enabled) {
settings.SignalID = enabled;
SettingsChanged();
@ -185,19 +184,18 @@ SpectrumAnalyzer::SpectrumAnalyzer(AppWindow *window)
qRegisterMetaType<Protocol::SpectrumAnalyzerResult>("SpectrumResult");
// Set initial sweep settings
// TODO
// if(pref.Startup.RememberSweepSettings) {
// LoadSweepSettings();
// } else {
settings.f_start = 950000000;
settings.f_stop = 1050000000;
if(pref.Startup.RememberSweepSettings) {
LoadSweepSettings();
} else {
settings.f_start = pref.Startup.SA.start;
settings.f_stop = pref.Startup.SA.stop;
ConstrainAndUpdateFrequencies();
SetRBW(10000);
SetRBW(pref.Startup.SA.RBW);
settings.pointNum = 1001;
settings.WindowType = 1;
settings.Detector = 0;
settings.SignalID = 0;
// }
cbWindowType->setCurrentIndex(pref.Startup.SA.window);
cbDetector->setCurrentIndex(pref.Startup.SA.detector);
cbSignalID->setChecked(pref.Startup.SA.signalID);
}
finalize(central);
}
@ -365,23 +363,24 @@ void SpectrumAnalyzer::ConstrainAndUpdateFrequencies()
void SpectrumAnalyzer::LoadSweepSettings()
{
// TODO
// QSettings s;
// settings.f_start = s.value("SweepStart", pref.Startup.DefaultSweep.start).toULongLong();
// settings.f_stop = s.value("SweepStop", pref.Startup.DefaultSweep.stop).toULongLong();
// ConstrainAndUpdateFrequencies();
// SetIFBandwidth(s.value("SweepBandwidth", pref.Startup.DefaultSweep.bandwidth).toUInt());
// SetPoints(s.value("SweepPoints", pref.Startup.DefaultSweep.points).toInt());
// SetSourceLevel(s.value("SweepLevel", pref.Startup.DefaultSweep.excitation).toDouble());
QSettings s;
settings.f_start = s.value("SAStart", pref.Startup.SA.start).toULongLong();
settings.f_stop = s.value("SAStop", pref.Startup.SA.stop).toULongLong();
ConstrainAndUpdateFrequencies();
SetRBW(s.value("SARBW", pref.Startup.SA.RBW).toUInt());
settings.pointNum = 1001;
cbWindowType->setCurrentIndex(s.value("SAWindow", pref.Startup.SA.window).toInt());
cbDetector->setCurrentIndex(s.value("SADetector", pref.Startup.SA.detector).toInt());
cbSignalID->setChecked(s.value("SASignalID", pref.Startup.SA.signalID).toBool());
}
void SpectrumAnalyzer::StoreSweepSettings()
{
// TODO
// QSettings s;
// s.setValue("SweepStart", static_cast<unsigned long long>(settings.f_start));
// s.setValue("SweepStop", static_cast<unsigned long long>(settings.f_stop));
// s.setValue("SweepBandwidth", settings.if_bandwidth);
// s.setValue("SweepPoints", settings.points);
// s.setValue("SweepLevel", (double) settings.cdbm_excitation / 100.0);
QSettings s;
s.setValue("SAStart", static_cast<unsigned long long>(settings.f_start));
s.setValue("SAStop", static_cast<unsigned long long>(settings.f_stop));
s.setValue("SARBW", settings.RBW);
s.setValue("SAWindow", settings.WindowType);
s.setValue("SADetector", settings.Detector);
s.setValue("SASignalID", static_cast<bool>(settings.SignalID));
}

View File

@ -6,6 +6,8 @@
#include "appwindow.h"
#include "mode.h"
#include "CustomWidgets/tilewidget.h"
#include <QComboBox>
#include <QCheckBox>
class SpectrumAnalyzer : public Mode
{
@ -39,8 +41,6 @@ private:
void LoadSweepSettings();
void StoreSweepSettings();
Preferences &pref;
Protocol::SpectrumAnalyzerSettings settings;
unsigned int averages;
TraceModel traceModel;
@ -48,6 +48,8 @@ private:
Averaging average;
TileWidget *central;
QCheckBox *cbSignalID;
QComboBox *cbWindowType, *cbDetector;
signals:
void dataChanged();

View File

@ -44,7 +44,6 @@
VNA::VNA(AppWindow *window)
: Mode(window, "Vector Network Analyzer"),
pref(window->getPreferenceRef()),
central(new TileWidget(traceModel))
{
averages = 1;

View File

@ -48,8 +48,6 @@ private:
void LoadSweepSettings();
void StoreSweepSettings();
Preferences &pref;
Protocol::SweepSettings settings;
unsigned int averages;
TraceModel traceModel;

View File

@ -10,6 +10,7 @@ QButtonGroup* Mode::modeButtonGroup = nullptr;
Mode::Mode(AppWindow *window, QString name)
: window(window),
pref(window->getPreferenceRef()),
name(name),
central(nullptr)
{

View File

@ -29,6 +29,8 @@ protected:
std::set<QToolBar*> toolbars;
std::set<QDockWidget*> docks;
Preferences &pref;
private:
static Mode *activeMode;
static QWidget *cornerWidget;

View File

@ -22,6 +22,14 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
ui->StartupSweepPoints->setEnabled(false);
ui->StartupSweepLevel->setEnabled(false);
ui->StartupSweepBandwidth->setEnabled(false);
ui->StartupGeneratorFrequency->setEnabled(false);
ui->StartupGeneratorLevel->setEnabled(false);
ui->StartupSAStart->setEnabled(false);
ui->StartupSAStop->setEnabled(false);
ui->StartupSARBW->setEnabled(false);
ui->StartupSAWindow->setEnabled(false);
ui->StartupSADetector->setEnabled(false);
ui->StartupSASignalID->setEnabled(false);
});
connect(ui->StartupSweepDefault, &QPushButton::clicked, [=](){
ui->StartupSweepStart->setEnabled(true);
@ -29,6 +37,14 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
ui->StartupSweepPoints->setEnabled(true);
ui->StartupSweepLevel->setEnabled(true);
ui->StartupSweepBandwidth->setEnabled(true);
ui->StartupGeneratorFrequency->setEnabled(true);
ui->StartupGeneratorLevel->setEnabled(true);
ui->StartupSAStart->setEnabled(true);
ui->StartupSAStop->setEnabled(true);
ui->StartupSARBW->setEnabled(true);
ui->StartupSAWindow->setEnabled(true);
ui->StartupSADetector->setEnabled(true);
ui->StartupSASignalID->setEnabled(true);
});
ui->StartupSweepStart->setUnit("Hz");
ui->StartupSweepStart->setPrefixes(" kMG");
@ -36,6 +52,14 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
ui->StartupSweepStop->setPrefixes(" kMG");
ui->StartupSweepBandwidth->setUnit("Hz");
ui->StartupSweepBandwidth->setPrefixes(" k");
ui->StartupGeneratorFrequency->setUnit("Hz");
ui->StartupGeneratorFrequency->setPrefixes(" kMG");
ui->StartupSAStart->setUnit("Hz");
ui->StartupSAStart->setPrefixes(" kMG");
ui->StartupSAStop->setUnit("Hz");
ui->StartupSAStop->setPrefixes(" kMG");
ui->StartupSARBW->setUnit("Hz");
ui->StartupSARBW->setPrefixes(" k");
// Page selection
connect(ui->treeWidget, &QTreeWidget::currentItemChanged, [=](QTreeWidgetItem *current, QTreeWidgetItem *) {
@ -66,6 +90,14 @@ PreferencesDialog::PreferencesDialog(Preferences *pref, QWidget *parent) :
p->Startup.DefaultSweep.bandwidth = ui->StartupSweepBandwidth->value();
p->Startup.DefaultSweep.points = ui->StartupSweepPoints->value();
p->Startup.DefaultSweep.excitation = ui->StartupSweepLevel->value();
p->Startup.Generator.frequency = ui->StartupGeneratorFrequency->value();
p->Startup.Generator.level = ui->StartupGeneratorLevel->value();
p->Startup.SA.start = ui->StartupSAStart->value();
p->Startup.SA.stop = ui->StartupSAStop->value();
p->Startup.SA.RBW = ui->StartupSARBW->value();
p->Startup.SA.window = ui->StartupSAWindow->currentIndex();
p->Startup.SA.detector = ui->StartupSADetector->currentIndex();
p->Startup.SA.signalID = ui->StartupSASignalID->isChecked();
p->Acquisition.alwaysExciteBothPorts = ui->AcquisitionAlwaysExciteBoth->isChecked();
p->Acquisition.suppressPeaks = ui->AcquisitionSuppressPeaks->isChecked();
accept();
@ -92,6 +124,14 @@ void PreferencesDialog::setInitialGUIState()
ui->StartupSweepBandwidth->setValueQuiet(p->Startup.DefaultSweep.bandwidth);
ui->StartupSweepPoints->setValue(p->Startup.DefaultSweep.points);
ui->StartupSweepLevel->setValue(p->Startup.DefaultSweep.excitation);
ui->StartupGeneratorFrequency->setValue(p->Startup.Generator.frequency);
ui->StartupGeneratorLevel->setValue(p->Startup.Generator.level);
ui->StartupSAStart->setValue(p->Startup.SA.start);
ui->StartupSAStop->setValue(p->Startup.SA.stop);
ui->StartupSARBW->setValue(p->Startup.SA.RBW);
ui->StartupSAWindow->setCurrentIndex(p->Startup.SA.window);
ui->StartupSADetector->setCurrentIndex(p->Startup.SA.detector);
ui->StartupSASignalID->setChecked(p->Startup.SA.signalID);
ui->AcquisitionAlwaysExciteBoth->setChecked(p->Acquisition.alwaysExciteBothPorts);
ui->AcquisitionSuppressPeaks->setChecked(p->Acquisition.suppressPeaks);

View File

@ -45,6 +45,18 @@ public:
double bandwidth;
double excitation;
} DefaultSweep;
struct {
double frequency;
double level;
} Generator;
struct {
double start;
double stop;
double RBW;
int window;
int detector;
bool signalID;
} SA;
} Startup;
struct {
bool alwaysExciteBothPorts;
@ -56,7 +68,7 @@ private:
QString name;
QVariant def;
};
const std::array<SettingDescription, 9> descr = {{
const std::array<SettingDescription, 17> descr = {{
{&Startup.ConnectToFirstDevice, "Startup.ConnectToFirstDevice", true},
{&Startup.RememberSweepSettings, "Startup.RememberSweepSettings", false},
{&Startup.DefaultSweep.start, "Startup.DefaultSweep.start", 1000000.0},
@ -64,8 +76,16 @@ private:
{&Startup.DefaultSweep.points, "Startup.DefaultSweep.points", 501},
{&Startup.DefaultSweep.bandwidth, "Startup.DefaultSweep.bandwidth", 1000.0},
{&Startup.DefaultSweep.excitation, "Startup.DefaultSweep.excitation", -10.00},
{&Startup.Generator.frequency, "Startup.Generator.frequency", 1000000000.0},
{&Startup.Generator.level, "Startup.Generator.level", -10.00},
{&Startup.SA.start, "Startup.SA.start", 950000000.0},
{&Startup.SA.stop, "Startup.SA.stop", 1050000000.0},
{&Startup.SA.RBW, "Startup.SA.RBW", 10000.0},
{&Startup.SA.window, "Startup.SA.window", 1},
{&Startup.SA.detector, "Startup.SA.detector", 0},
{&Startup.SA.signalID, "Startup.SA.signalID", true},
{&Acquisition.alwaysExciteBothPorts, "Acquisition.alwaysExciteBothPorts", true},
{&Acquisition.suppressPeaks, "Acquisition.suppressPeaks", true},
{&Acquisition.suppressPeaks, "Acquisition.suppressPeaks", true},
}};
};

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>646</width>
<height>543</height>
<width>619</width>
<height>730</height>
</rect>
</property>
<property name="windowTitle">
@ -67,32 +67,35 @@
<height>16777215</height>
</size>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="Startup">
<layout class="QVBoxLayout" name="verticalLayout_3">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>When starting the application...</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QCheckBox" name="StartupAutoconnect">
<property name="text">
<string>Autoconnect to the first device available</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Set sweep settings to...</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QGroupBox" name="groupBox">
<property name="title">
<string>When starting the application...</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<widget class="QCheckBox" name="StartupAutoconnect">
<property name="text">
<string>Autoconnect to the first device available</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Set to...</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
@ -115,114 +118,294 @@
</attribute>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Start:</string>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SIUnitEdit" name="StartupSweepStart"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Stop:</string>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SIUnitEdit" name="StartupSweepStop"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Level:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="StartupSweepLevel">
<property name="suffix">
<string>dbm</string>
</property>
<property name="minimum">
<double>-42.000000000000000</double>
</property>
<property name="maximum">
<double>-10.000000000000000</double>
</property>
<property name="singleStep">
<double>0.250000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Points:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="StartupSweepPoints">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>4501</number>
</property>
<property name="value">
<number>501</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>IF bandwitdh:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SIUnitEdit" name="StartupSweepBandwidth"/>
</spacer>
</item>
</layout>
</item>
</layout>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>Vector Network Analyzer</string>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Start:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SIUnitEdit" name="StartupSweepStart"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Stop:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SIUnitEdit" name="StartupSweepStop"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Simulus level:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QDoubleSpinBox" name="StartupSweepLevel">
<property name="suffix">
<string>dbm</string>
</property>
<property name="minimum">
<double>-42.000000000000000</double>
</property>
<property name="maximum">
<double>0.000000000000000</double>
</property>
<property name="singleStep">
<double>0.250000000000000</double>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Points:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="StartupSweepPoints">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>4501</number>
</property>
<property name="value">
<number>501</number>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>IF bandwitdh:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="SIUnitEdit" name="StartupSweepBandwidth"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_3">
<property name="title">
<string>Signal Generator</string>
</property>
</spacer>
<layout class="QFormLayout" name="formLayout_2">
<item row="0" column="0">
<widget class="QLabel" name="label_7">
<property name="text">
<string>Frequency:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SIUnitEdit" name="StartupGeneratorFrequency"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_8">
<property name="text">
<string>Output level:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QDoubleSpinBox" name="StartupGeneratorLevel">
<property name="suffix">
<string>dbm</string>
</property>
<property name="minimum">
<double>-42.000000000000000</double>
</property>
<property name="maximum">
<double>0.000000000000000</double>
</property>
<property name="singleStep">
<double>0.250000000000000</double>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_4">
<property name="title">
<string>Spectrum Analyzer</string>
</property>
<layout class="QFormLayout" name="formLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="label_9">
<property name="text">
<string>Start:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="SIUnitEdit" name="StartupSAStart"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_10">
<property name="text">
<string>Stop:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="SIUnitEdit" name="StartupSAStop"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_11">
<property name="text">
<string>RBW:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="SIUnitEdit" name="StartupSARBW"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Window:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="StartupSAWindow">
<item>
<property name="text">
<string>None</string>
</property>
</item>
<item>
<property name="text">
<string>Kaiser</string>
</property>
</item>
<item>
<property name="text">
<string>Hann</string>
</property>
</item>
<item>
<property name="text">
<string>Flat Top</string>
</property>
</item>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Detector:</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QComboBox" name="StartupSADetector">
<item>
<property name="text">
<string>+Peak</string>
</property>
</item>
<item>
<property name="text">
<string>-Peak</string>
</property>
</item>
<item>
<property name="text">
<string>Sample</string>
</property>
</item>
<item>
<property name="text">
<string>Normal</string>
</property>
</item>
<item>
<property name="text">
<string>Average</string>
</property>
</item>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Signal Identification:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QCheckBox" name="StartupSASignalID">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>17</width>
<height>37</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<spacer name="verticalSpacer">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
<width>48</width>
<height>20</height>
</size>
</property>
</spacer>
@ -244,7 +427,7 @@
<item>
<widget class="QCheckBox" name="AcquisitionSuppressPeaks">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Due to limited fractional divider settings, the source and 1.LO PLLs are not able to reach every frequency exactly. At some specific frequencies this causes the final IF to shift. At these frequencies there will be a positive or negative peak in the trace measurement that is not actually there.&lt;br/&gt;&lt;br/&gt;Checking this option shifts the 2.LO for points where this could be an issue. This will remove the peaks but slow down the sweep slightly.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Due to limited fractional divider settings, the source and 1.LO PLLs are not able to reach every frequency exactly. At some specific frequencies this causes the final IF to shift. At these frequencies there will be a positive or negative peak in the trace measurement that is not actually there.&lt;br/&gt;&lt;br/&gt;Checking this option shifts the 2.LO for points where this could be an issue. This will remove the peaks but slows down the sweep slightly.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Suppress invalid peaks</string>