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

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;
};