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:
commit
7c738b161c
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user