1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-07-29 20:22:26 -04:00

Merge pull request #2475 from srcejon/fix_2435

Radio Astronomy: Add option to auto save data to .csv.
This commit is contained in:
Edouard Griffiths 2025-06-24 16:38:46 +02:00 committed by GitHub
commit 7c738b161c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 307 additions and 172 deletions

View File

@ -49,6 +49,7 @@
#include "gui/timedelegate.h"
#include "gui/decimaldelegate.h"
#include "gui/dialogpositioner.h"
#include "gui/crightclickenabler.h"
#include "channel/channelwebapiutils.h"
#include "maincore.h"
#include "feature/feature.h"
@ -1476,41 +1477,78 @@ void RadioAstronomyGUI::on_clearCal_clicked()
clearCalData();
}
// Save power data in table to a CSV file
void RadioAstronomyGUI::on_savePowerData_clicked()
void RadioAstronomyGUI::savePowerData(const QString& filename)
{
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(this, "Radio Astronomy", QString("Failed to open file %1").arg(filename));
return;
}
QTextStream out(&file);
// Create a CSV file from the values in the table
for (int i = 0; i < ui->powerTable->horizontalHeader()->count(); i++)
{
QString text = ui->powerTable->horizontalHeaderItem(i)->text();
out << text << ",";
}
out << "\n";
for (int i = 0; i < ui->powerTable->rowCount(); i++)
{
for (int j = 0; j < ui->powerTable->horizontalHeader()->count(); j++)
{
out << ui->powerTable->item(i,j)->data(Qt::DisplayRole).toString() << ",";
}
out << "\n";
}
}
// Save power data in table to a CSV file
void RadioAstronomyGUI::on_savePowerData_clicked(bool checked)
{
ui->savePowerData->setChecked(!m_settings.m_powerAutoSaveCSVFilename.isEmpty());
// Get filename to save to
QFileDialog fileDialog(nullptr, "Select file to save data to", "", "*.csv");
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();
if (fileNames.size() > 0)
{
QFile file(fileNames[0]);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(this, "Radio Astronomy", QString("Failed to open file %1").arg(fileNames[0]));
return;
}
QTextStream out(&file);
if (fileNames.size() > 0) {
savePowerData(fileNames[0]);
}
}
}
// Create a CSV file from the values in the table
for (int i = 0; i < ui->powerTable->horizontalHeader()->count(); i++)
void RadioAstronomyGUI::on_savePowerData_rightClicked(const QPoint& point)
{
(void) point;
if (!ui->savePowerData->isChecked())
{
// Get filename to save to
QFileDialog fileDialog(nullptr, "Select file to auto save data to", "", "*.csv");
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();
if (fileNames.size() > 0)
{
QString text = ui->powerTable->horizontalHeaderItem(i)->text();
out << text << ",";
}
out << "\n";
for (int i = 0; i < ui->powerTable->rowCount(); i++)
{
for (int j = 0; j < ui->powerTable->horizontalHeader()->count(); j++)
{
out << ui->powerTable->item(i,j)->data(Qt::DisplayRole).toString() << ",";
}
out << "\n";
m_settings.m_powerAutoSaveCSVFilename = fileNames[0];
ui->savePowerData->setChecked(true);
ui->savePowerData->setToolTip(QString("Left click to save data to a .csv file.\nRight click to disable auto save.\nAuto saving to %1").arg(m_settings.m_powerAutoSaveCSVFilename));
applySettings();
savePowerData(m_settings.m_powerAutoSaveCSVFilename);
}
}
}
else
{
ui->savePowerData->setChecked(false);
ui->savePowerData->setToolTip("Left click to save data to a .csv file.\nRight click to auto-save data to a .csv file");
m_settings.m_powerAutoSaveCSVFilename = "";
applySettings();
}
}
// Create a hash mapping from column name to array index
@ -1719,52 +1757,89 @@ RadioAstronomyGUI::FFTMeasurement* RadioAstronomyGUI::loadFFT(QHash<QString,int>
}
}
void RadioAstronomyGUI::on_saveSpectrumData_clicked()
void RadioAstronomyGUI::saveSpectrumData(const QString& filename)
{
QFile file(filename);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(this, "Radio Astronomy", QString("Failed to open file %1").arg(filename));
return;
}
QTextStream out(&file);
if (ui->spectrumChartSelect->currentIndex() == 0)
{
// Create a CSV file for all the spectrum data
out << "Date Time,Centre Freq,Sample Rate,Integration,Bandwidth,OmegaA,OmegaS,Power (FFT),Power (dBFS),Power (dBm),Power (Watts),Tsys,Tsys0,Tsource,Sv,SigmaTsys,SigmaSsys,Min Temp,Baseline,RA,Dec,Azimuth,Elevation,l,b,vBCRS,vLSR,Solar Flux,Air Temp,Sky Temp,Sensor 1,Sensor 2,FFT Size,Data\n";
for (int i = 0; i < m_fftMeasurements.size(); i++) {
saveFFT(out, m_fftMeasurements[i]);
}
}
else
{
// Create a CSV file for calibration data
out << "Cal,Cal Temp,Date Time,Centre Freq,Sample Rate,Integration,Bandwidth,OmegaA,OmegaS,Power (FFT),Power (dBFS),Power (dBm),Power (Watts),Tsys,Tsys0,Tsource,Sv,SigmaTsys,SigmaSsys,Min Temp,Baseline,RA,Dec,Azimuth,Elevation,l,b,vBCRS,vLSR,Solar Flux,Air Temp,Sky Temp,Sensor 1,Sensor 2,FFT Size,Data\n";
if (m_calHot)
{
out << "Hot,";
out << m_settings.m_tCalHot;
out << ",";
saveFFT(out, m_calHot);
}
if (m_calCold)
{
out << "Cold,";
out << m_settings.m_tCalCold;
out << ",";
saveFFT(out, m_calCold);
}
}
}
void RadioAstronomyGUI::on_saveSpectrumData_clicked(bool checked)
{
ui->saveSpectrumData->setChecked(!m_settings.m_spectrumAutoSaveCSVFilename.isEmpty());
// Get filename to save to
QFileDialog fileDialog(nullptr, "Select file to save data to", "", "*.csv");
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();
if (fileNames.size() > 0)
{
QFile file(fileNames[0]);
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(this, "Radio Astronomy", QString("Failed to open file %1").arg(fileNames[0]));
return;
}
QTextStream out(&file);
if (fileNames.size() > 0) {
saveSpectrumData(fileNames[0]);
}
}
}
if (ui->spectrumChartSelect->currentIndex() == 0)
void RadioAstronomyGUI::on_saveSpectrumData_rightClicked(const QPoint &point)
{
(void) point;
if (!ui->saveSpectrumData->isChecked())
{
// Get filename to save to
QFileDialog fileDialog(nullptr, "Select file to auto save data to", "", "*.csv");
fileDialog.setAcceptMode(QFileDialog::AcceptSave);
if (fileDialog.exec())
{
QStringList fileNames = fileDialog.selectedFiles();
if (fileNames.size() > 0)
{
// Create a CSV file for all the spectrum data
out << "Date Time,Centre Freq,Sample Rate,Integration,Bandwidth,OmegaA,OmegaS,Power (FFT),Power (dBFS),Power (dBm),Power (Watts),Tsys,Tsys0,Tsource,Sv,SigmaTsys,SigmaSsys,Min Temp,Baseline,RA,Dec,Azimuth,Elevation,l,b,vBCRS,vLSR,Solar Flux,Air Temp,Sky Temp,Sensor 1,Sensor 2,FFT Size,Data\n";
for (int i = 0; i < m_fftMeasurements.size(); i++) {
saveFFT(out, m_fftMeasurements[i]);
}
}
else
{
// Create a CSV file for calibration data
out << "Cal,Cal Temp,Date Time,Centre Freq,Sample Rate,Integration,Bandwidth,OmegaA,OmegaS,Power (FFT),Power (dBFS),Power (dBm),Power (Watts),Tsys,Tsys0,Tsource,Sv,SigmaTsys,SigmaSsys,Min Temp,Baseline,RA,Dec,Azimuth,Elevation,l,b,vBCRS,vLSR,Solar Flux,Air Temp,Sky Temp,Sensor 1,Sensor 2,FFT Size,Data\n";
if (m_calHot)
{
out << "Hot,";
out << m_settings.m_tCalHot;
out << ",";
saveFFT(out, m_calHot);
}
if (m_calCold)
{
out << "Cold,";
out << m_settings.m_tCalCold;
out << ",";
saveFFT(out, m_calCold);
}
m_settings.m_spectrumAutoSaveCSVFilename = fileNames[0];
ui->saveSpectrumData->setChecked(true);
ui->saveSpectrumData->setToolTip(QString("Left click to save data to a .csv file.\nRight click to disable auto save.\nAuto saving to %1").arg(m_settings.m_spectrumAutoSaveCSVFilename));
applySettings();
saveSpectrumData(m_settings.m_spectrumAutoSaveCSVFilename);
}
}
}
else
{
ui->saveSpectrumData->setChecked(false);
ui->saveSpectrumData->setToolTip("Left click to save data to a .csv file.\nRight click to auto-save data to a .csv file");
m_settings.m_spectrumAutoSaveCSVFilename = "";
applySettings();
}
}
void RadioAstronomyGUI::on_loadSpectrumData_clicked()
@ -2067,6 +2142,17 @@ RadioAstronomyGUI::RadioAstronomyGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUI
connect(&MainCore::instance()->getMasterTimer(), SIGNAL(timeout()), this, SLOT(tick())); // 50 ms
CRightClickEnabler *saveSpectrumDataClickEnabler = new CRightClickEnabler(ui->saveSpectrumData);
connect(saveSpectrumDataClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(on_saveSpectrumData_rightClicked(const QPoint &)));
CRightClickEnabler *savePowerDataClickEnabler = new CRightClickEnabler(ui->savePowerData);
connect(savePowerDataClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(on_savePowerData_rightClicked(const QPoint &)));
connect(&m_autoSaveTimer, &QTimer::timeout, this, &RadioAstronomyGUI::autosave);
m_autoSaveTimer.setInterval(5 * 60 * 1000);
m_autoSaveTimer.setSingleShot(false);
m_autoSaveTimer.start();
m_networkManager = new QNetworkAccessManager();
QObject::connect(
m_networkManager,
@ -2306,6 +2392,7 @@ void RadioAstronomyGUI::customContextMenuRequested(QPoint pos)
RadioAstronomyGUI::~RadioAstronomyGUI()
{
m_autoSaveTimer.stop();
delete m_networkManager;
delete ui;
delete m_calHot;
@ -2530,6 +2617,8 @@ void RadioAstronomyGUI::displaySettings()
m_calChart->legend()->setVisible(m_settings.m_spectrumLegend);
}
ui->savePowerData->setChecked(!m_settings.m_powerAutoSaveCSVFilename.isEmpty());
ui->saveSpectrumData->setChecked(!m_settings.m_spectrumAutoSaveCSVFilename.isEmpty());
ui->refFrame->setCurrentIndex((int)m_settings.m_refFrame);
ui->spectrumLine->setCurrentIndex((int)m_settings.m_line);
@ -6265,6 +6354,20 @@ void RadioAstronomyGUI::calcSpectrumChartTickCount(QValueAxis *axis, int width)
}
}
void RadioAstronomyGUI::autosave()
{
if (!m_settings.m_powerAutoSaveCSVFilename.isEmpty())
{
qDebug() << "RadioAstronomyGUI: Autosaving power data to" << m_settings.m_powerAutoSaveCSVFilename;
savePowerData(m_settings.m_powerAutoSaveCSVFilename);
}
if (!m_settings.m_spectrumAutoSaveCSVFilename.isEmpty())
{
qDebug() << "RadioAstronomyGUI: Autosaving spectrum data to" << m_settings.m_spectrumAutoSaveCSVFilename;
saveSpectrumData(m_settings.m_spectrumAutoSaveCSVFilename);
}
}
void RadioAstronomyGUI::resizeEvent(QResizeEvent* size)
{
int width = size->size().width();
@ -6316,9 +6419,9 @@ void RadioAstronomyGUI::makeUIConnections()
QObject::connect(ui->spectrumMarker, &ButtonSwitch::toggled, this, &RadioAstronomyGUI::on_spectrumMarker_toggled);
QObject::connect(ui->spectrumPeak, &ButtonSwitch::toggled, this, &RadioAstronomyGUI::on_spectrumPeak_toggled);
QObject::connect(ui->spectrumReverseXAxis, &ButtonSwitch::toggled, this, &RadioAstronomyGUI::on_spectrumReverseXAxis_toggled);
QObject::connect(ui->savePowerData, &QToolButton::clicked, this, &RadioAstronomyGUI::on_savePowerData_clicked);
QObject::connect(ui->savePowerData, &ButtonSwitch::clicked, this, &RadioAstronomyGUI::on_savePowerData_clicked);
QObject::connect(ui->savePowerChartImage, &QToolButton::clicked, this, &RadioAstronomyGUI::on_savePowerChartImage_clicked);
QObject::connect(ui->saveSpectrumData, &QToolButton::clicked, this, &RadioAstronomyGUI::on_saveSpectrumData_clicked);
QObject::connect(ui->saveSpectrumData, &ButtonSwitch::clicked, this, &RadioAstronomyGUI::on_saveSpectrumData_clicked);
QObject::connect(ui->loadSpectrumData, &QToolButton::clicked, this, &RadioAstronomyGUI::on_loadSpectrumData_clicked);
QObject::connect(ui->saveSpectrumChartImage, &QToolButton::clicked, this, &RadioAstronomyGUI::on_saveSpectrumChartImage_clicked);
QObject::connect(ui->saveSpectrumChartImages, &QToolButton::clicked, this, &RadioAstronomyGUI::on_saveSpectrumChartImages_clicked);

View File

@ -338,6 +338,8 @@ private:
int m_windowIdx;
int m_windowCount;
QTimer m_autoSaveTimer;
QNetworkAccessManager *m_networkManager;
QNetworkRequest m_networkRequest;
HttpDownloadManager m_dlm;
@ -462,6 +464,9 @@ private:
void setColumnPrecisionFromRotator();
void getRotatorData(FFTMeasurement *fft);
void saveSpectrumData(const QString& filename);
void savePowerData(const QString& filename);
void leaveEvent(QEvent*);
void enterEvent(EnterEventType*);
@ -593,9 +598,11 @@ private slots:
void on_spectrumMarker_toggled(bool checked);
void on_spectrumPeak_toggled(bool checked);
void on_spectrumReverseXAxis_toggled(bool checked);
void on_savePowerData_clicked();
void on_savePowerData_clicked(bool checked);
void on_savePowerData_rightClicked(const QPoint& point);
void on_savePowerChartImage_clicked();
void on_saveSpectrumData_clicked();
void on_saveSpectrumData_clicked(bool checked);
void on_saveSpectrumData_rightClicked(const QPoint &point);
void on_loadSpectrumData_clicked();
void on_saveSpectrumChartImage_clicked();
void on_saveSpectrumChartImages_clicked();
@ -704,6 +711,7 @@ private slots:
void powerTableColumnSelectMenuChecked(bool checked = false);
void on_powerTable_cellDoubleClicked(int row, int column);
void autosave();
void plotPowerChart();
void plotPowerVsTimeChart();
void plot2DChart();

View File

@ -29,7 +29,7 @@
</font>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
<property name="windowTitle">
<string>Radio Astronomy</string>
@ -110,7 +110,7 @@
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Shift frequency from center in Hz</string>
@ -127,7 +127,7 @@
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -162,7 +162,7 @@
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
<property name="toolTip">
<string>Sample rate in samples per second</string>
@ -179,7 +179,7 @@
<item>
<widget class="Line" name="line_37">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -214,7 +214,7 @@
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
<property name="toolTip">
<string>RF bandwidth in Hertz</string>
@ -231,7 +231,7 @@
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -249,7 +249,7 @@
<string>Channel power</string>
</property>
<property name="layoutDirection">
<enum>Qt::RightToLeft</enum>
<enum>Qt::LayoutDirection::RightToLeft</enum>
</property>
<property name="text">
<string>0.0</string>
@ -270,7 +270,7 @@
<item>
<widget class="Line" name="line_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -286,7 +286,7 @@
<item>
<widget class="Line" name="line_40">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -321,7 +321,7 @@
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
<enum>Qt::FocusPolicy::StrongFocus</enum>
</property>
<property name="toolTip">
<string>FFT integration count per measurement</string>
@ -331,7 +331,7 @@
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -403,7 +403,7 @@
<item>
<widget class="Line" name="line_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -440,7 +440,7 @@
<item>
<widget class="Line" name="line_39">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -461,7 +461,7 @@
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -493,7 +493,7 @@
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -522,7 +522,7 @@
<item>
<widget class="Line" name="line_17">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -554,7 +554,7 @@
<item>
<widget class="Line" name="line_19">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -582,7 +582,7 @@
<item>
<spacer name="horizontalSpacer_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -597,7 +597,7 @@
<item>
<widget class="Line" name="line_32">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -654,7 +654,7 @@ This is the combined noise of LNA, feed and SDR</string>
<item>
<widget class="Line" name="line_14">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -690,7 +690,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_15">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -747,7 +747,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_16">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -781,7 +781,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -875,7 +875,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_10">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -932,7 +932,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_11">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -965,7 +965,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_12">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -1022,7 +1022,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_13">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1061,7 +1061,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_18">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -1105,7 +1105,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_38">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -1135,7 +1135,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_45">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -1185,7 +1185,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -1288,7 +1288,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_15">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1677,7 +1677,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_17">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1704,7 +1704,7 @@ This should be 2.73K when pointing at the sky</string>
<number>0</number>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -1717,7 +1717,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -1825,7 +1825,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -1872,7 +1872,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/hot.png</normaloff>:/radioastronomy/icons/hot.png</iconset>
</property>
</widget>
@ -1886,7 +1886,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/cold.png</normaloff>:/radioastronomy/icons/cold.png</iconset>
</property>
</widget>
@ -1920,7 +1920,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/legend.png</normaloff>:/radioastronomy/icons/legend.png</iconset>
</property>
<property name="checkable">
@ -1940,7 +1940,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/lab.png</normaloff>:/radioastronomy/icons/lab.png</iconset>
</property>
<property name="checkable">
@ -1960,7 +1960,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/galactictriangle.png</normaloff>:/radioastronomy/icons/galactictriangle.png</iconset>
</property>
<property name="checkable">
@ -1980,7 +1980,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/refline.png</normaloff>:/radioastronomy/icons/refline.png</iconset>
</property>
<property name="checkable">
@ -2000,7 +2000,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/gaussian.png</normaloff>:/radioastronomy/icons/gaussian.png</iconset>
</property>
<property name="checkable">
@ -2020,7 +2020,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/marker.png</normaloff>:/radioastronomy/icons/marker.png</iconset>
</property>
<property name="checkable">
@ -2040,7 +2040,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/peak.png</normaloff>:/radioastronomy/icons/peak.png</iconset>
</property>
<property name="checkable">
@ -2060,7 +2060,7 @@ This should be 2.73K when pointing at the sky</string>
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/reverse.png</normaloff>:/radioastronomy/icons/reverse.png</iconset>
</property>
<property name="checkable">
@ -2114,9 +2114,10 @@ This should be 2.73K when pointing at the sky</string>
</widget>
</item>
<item>
<widget class="QToolButton" name="saveSpectrumData">
<widget class="ButtonSwitch" name="saveSpectrumData">
<property name="toolTip">
<string>Save data to a .csv file</string>
<string>Left click to save data to a .csv file.
Right click to auto-save data to a .csv file</string>
</property>
<property name="text">
<string/>
@ -2125,6 +2126,12 @@ This should be 2.73K when pointing at the sky</string>
<iconset resource="../../../sdrgui/resources/res.qrc">
<normaloff>:/save.png</normaloff>:/save.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
@ -2341,7 +2348,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -2388,7 +2395,7 @@ This should be 2.73K when pointing at the sky</string>
<number>1</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -2404,7 +2411,7 @@ This should be 2.73K when pointing at the sky</string>
<bool>true</bool>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="displayFormat">
<string>dd/MM/yyyy HH:mm:ss</string>
@ -2432,7 +2439,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_42">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -2511,7 +2518,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="spectrumLineLayoutLine">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2547,7 +2554,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="sunDistanceToGCLine">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2590,7 +2597,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="sunOrbitalVelocityLine">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2630,7 +2637,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -2664,7 +2671,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_43">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -2719,7 +2726,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2775,7 +2782,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_20">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2815,7 +2822,7 @@ This should be 2.73K when pointing at the sky</string>
<item>
<widget class="Line" name="line_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2858,7 +2865,7 @@ WNM 5000-10000</string>
<item>
<widget class="Line" name="line_21">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2895,7 +2902,7 @@ WNM 5000-10000</string>
<item>
<widget class="Line" name="line_9">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -2926,7 +2933,7 @@ WNM 5000-10000</string>
<item>
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -3015,7 +3022,7 @@ WNM 5000-10000</string>
<item>
<widget class="Line" name="calLine1">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -3062,7 +3069,7 @@ WNM 5000-10000</string>
<item>
<spacer name="horizontalSpacer_11">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -3078,7 +3085,7 @@ WNM 5000-10000</string>
<item>
<widget class="Line" name="line_22">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -3126,7 +3133,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_23">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -3147,7 +3154,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_27">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -3178,7 +3185,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_26">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -3206,7 +3213,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="calLine1_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -3237,7 +3244,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_16">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -3271,7 +3278,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_24">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -3296,10 +3303,10 @@ This should be close to the expected difference in power between hot and cold ca
</size>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
<enum>QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
<set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property>
<property name="cornerButtonEnabled">
<bool>true</bool>
@ -3503,7 +3510,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_18">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -3522,7 +3529,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/legend.png</normaloff>:/radioastronomy/icons/legend.png</iconset>
</property>
<property name="checkable">
@ -3582,7 +3589,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/temperature.png</normaloff>:/radioastronomy/icons/temperature.png</iconset>
</property>
<property name="checkable">
@ -3602,7 +3609,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/noise.png</normaloff>:/radioastronomy/icons/noise.png</iconset>
</property>
<property name="checkable">
@ -3678,7 +3685,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/gaussian.png</normaloff>:/radioastronomy/icons/gaussian.png</iconset>
</property>
<property name="checkable">
@ -3698,7 +3705,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/marker.png</normaloff>:/radioastronomy/icons/marker.png</iconset>
</property>
<property name="checkable">
@ -3718,7 +3725,7 @@ This should be close to the expected difference in power between hot and cold ca
<string/>
</property>
<property name="icon">
<iconset resource="icons.qrc">
<iconset resource="radioastronomyicons.qrc">
<normaloff>:/radioastronomy/icons/peak.png</normaloff>:/radioastronomy/icons/peak.png</iconset>
</property>
<property name="checkable">
@ -3744,9 +3751,10 @@ This should be close to the expected difference in power between hot and cold ca
</widget>
</item>
<item>
<widget class="QToolButton" name="savePowerData">
<widget class="ButtonSwitch" name="savePowerData">
<property name="toolTip">
<string>Save data to a .csv file</string>
<string>Left click to save data to a .csv file.
Right click to auto-save data to a .csv file</string>
</property>
<property name="text">
<string/>
@ -3755,6 +3763,12 @@ This should be close to the expected difference in power between hot and cold ca
<iconset resource="../../../sdrgui/resources/res.qrc">
<normaloff>:/save.png</normaloff>:/save.png</iconset>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
</layout>
@ -3950,7 +3964,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -3984,7 +3998,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_44">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -4023,7 +4037,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_29">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4079,7 +4093,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_30">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4122,7 +4136,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_31">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4165,7 +4179,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_14">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -4202,7 +4216,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_41">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -4261,7 +4275,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_21">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -4317,7 +4331,7 @@ This should be close to the expected difference in power between hot and cold ca
<item row="0" column="11">
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -4426,14 +4440,14 @@ This should be close to the expected difference in power between hot and cold ca
<item row="1" column="4">
<widget class="Line" name="line_36">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
<item row="0" column="4">
<widget class="Line" name="line_34">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4555,7 +4569,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_35">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -4596,7 +4610,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_33">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4630,7 +4644,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_13">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4664,7 +4678,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_28">
<property name="orientation">
<enum>Qt::Vertical</enum>
<enum>Qt::Orientation::Vertical</enum>
</property>
</widget>
</item>
@ -4685,7 +4699,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
@ -4716,7 +4730,7 @@ This should be close to the expected difference in power between hot and cold ca
<item>
<widget class="Line" name="line_25">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -4741,10 +4755,10 @@ This should be close to the expected difference in power between hot and cold ca
</size>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustToContents</enum>
<enum>QAbstractScrollArea::SizeAdjustPolicy::AdjustToContents</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
<set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property>
<property name="cornerButtonEnabled">
<bool>true</bool>
@ -4918,10 +4932,10 @@ This should be close to the expected difference in power between hot and cold ca
<string>Power table</string>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
<set>QAbstractItemView::EditTrigger::NoEditTriggers</set>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
<enum>QAbstractItemView::SelectionBehavior::SelectRows</enum>
</property>
<column>
<property name="text">
@ -5277,7 +5291,6 @@ This should be close to the expected difference in power between hot and cold ca
<tabstop>saveSpectrumChartImages</tabstop>
<tabstop>saveSpectrumChartImage</tabstop>
<tabstop>loadSpectrumData</tabstop>
<tabstop>saveSpectrumData</tabstop>
<tabstop>spectrumChart</tabstop>
<tabstop>spectrumAutoscale</tabstop>
<tabstop>sampleRate</tabstop>
@ -5324,7 +5337,6 @@ This should be close to the expected difference in power between hot and cold ca
<tabstop>powerShowMarker</tabstop>
<tabstop>powerShowPeak</tabstop>
<tabstop>savePowerChartImage</tabstop>
<tabstop>savePowerData</tabstop>
<tabstop>powerAutoscale</tabstop>
<tabstop>powerAutoscaleX</tabstop>
<tabstop>powerAutoscaleY</tabstop>
@ -5355,7 +5367,7 @@ This should be close to the expected difference in power between hot and cold ca
</tabstops>
<resources>
<include location="../../../sdrgui/resources/res.qrc"/>
<include location="icons.qrc"/>
<include location="radioastronomyicons.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -150,6 +150,9 @@ void RadioAstronomySettings::resetToDefaults()
m_stopCalCommand = "";
m_calCommandDelay = 1.0f;
m_spectrumAutoSaveCSVFilename = "";
m_powerAutoSaveCSVFilename = "";
m_rgbColor = QColor(102, 0, 0).rgb();
m_title = "Radio Astronomy";
m_streamIndex = 0;
@ -295,6 +298,9 @@ QByteArray RadioAstronomySettings::serialize() const
s.writeString(168, m_stopCalCommand);
s.writeFloat(169, m_calCommandDelay);
s.writeString(170, m_spectrumAutoSaveCSVFilename);
s.writeString(171, m_powerAutoSaveCSVFilename);
s.writeU32(180, m_rgbColor);
s.writeString(181, m_title);
if (m_channelMarker) {
@ -461,6 +467,9 @@ bool RadioAstronomySettings::deserialize(const QByteArray& data)
d.readString(168, &m_stopCalCommand, "");
d.readFloat(169, &m_calCommandDelay, 1.0f);
d.readString(170, &m_spectrumAutoSaveCSVFilename, "");
d.readString(171, &m_powerAutoSaveCSVFilename, "");
d.readU32(180, &m_rgbColor, QColor(102, 0, 0).rgb());
d.readString(181, &m_title, "Radio Astronomy");
d.readBlob(182, &bytetmp);

View File

@ -205,6 +205,9 @@ struct RadioAstronomySettings
QString m_stopCalCommand;
float m_calCommandDelay; //!< Delay in seconds after command before starting cal
QString m_spectrumAutoSaveCSVFilename;
QString m_powerAutoSaveCSVFilename;
quint32 m_rgbColor;
QString m_title;
Serializable *m_channelMarker;

View File

@ -458,9 +458,9 @@ Click to save the current chart to an image file.
Click to restore data that had been saved to a .csv file. All existing data will be cleared.
<h3>3.14: Save Data from a .csv File</h3>
<h3>3.14: Save Data to a .csv File</h3>
Click to save all data to a .csv file.
Left click to save all data to a .csv file. Right click to select a .csv file to auto save data to every 5 minutes.
<h3>3.15: Autoscale</h3>
@ -635,7 +635,7 @@ Click to save the current chart to an image file.
<h3>4.15: Save Data to a .csv File</h3>
Click to save data from the Radiometer Data table to a .csv file.
Left click to save data from the Radiometer Data table to a .csv file. Right click to select a .csv file to auto save data to every 5 minutes.
<h3>4.16: Autoscale</h3>