- Generated 2022-01-22T07:01:26.727+01:00
+ Generated 2022-01-29T10:45:16.003+01:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/GLSpectrum.yaml b/sdrbase/resources/webapi/doc/swagger/include/GLSpectrum.yaml
index eedf02343..266dfd2fb 100644
--- a/sdrbase/resources/webapi/doc/swagger/include/GLSpectrum.yaml
+++ b/sdrbase/resources/webapi/doc/swagger/include/GLSpectrum.yaml
@@ -64,6 +64,19 @@ SpectrumAnnotationMarker:
* 1 - Only top marker visible
* 2 - Fully visible with text and full sized limits
+SpectrumCalibrationPoint:
+ description: Spectrum calibration point settings
+ properties:
+ frequency:
+ type: integer
+ format: int64
+ powerRelativeReference:
+ type: number
+ format: float
+ powerAbsoluteReference:
+ type: number
+ format: float
+
GLSpectrum:
description: GLSpectrumGUI settings
properties:
@@ -159,3 +172,7 @@ GLSpectrum:
type: array
items:
$ref: "/doc/swagger/include/GLSpectrum.yaml#/SpectrumAnnotationMarker"
+ calibrationPoints:
+ type: array
+ items:
+ $ref: "/doc/swagger/include/GLSpectrum.yaml#/SpectrumCalibrationPoint"
diff --git a/sdrgui/CMakeLists.txt b/sdrgui/CMakeLists.txt
index b8e66ce04..81537b843 100644
--- a/sdrgui/CMakeLists.txt
+++ b/sdrgui/CMakeLists.txt
@@ -59,6 +59,7 @@ set(sdrgui_SOURCES
gui/scaleengine.cpp
gui/scaledimage.cpp
gui/sdrangelsplash.cpp
+ gui/spectrumcalibrationpointsdialog.cpp
gui/spectrummarkersdialog.cpp
gui/tickedslider.cpp
gui/transverterbutton.cpp
@@ -148,6 +149,7 @@ set(sdrgui_HEADERS
gui/scaleengine.h
gui/scaledimage.h
gui/sdrangelsplash.h
+ gui/spectrumcalibrationpointsdialog.h
gui/spectrummarkersdialog.h
gui/tickedslider.h
gui/transverterbutton.h
@@ -208,6 +210,7 @@ set(sdrgui_FORMS
gui/samplingdevicecontrol.ui
gui/samplingdevicedialog.ui
gui/spectrummarkersdialog.ui
+ gui/spectrumcalibrationpointsdialog.ui
gui/myposdialog.ui
gui/transverterdialog.ui
gui/loggingdialog.ui
diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp
index 1ffc9489a..3d43246c2 100644
--- a/sdrgui/gui/glspectrum.cpp
+++ b/sdrgui/gui/glspectrum.cpp
@@ -2314,6 +2314,11 @@ void GLSpectrum::updateMarkersDisplay()
}
}
+void GLSpectrum::updateCalibrationPoints()
+{
+ // TODO
+}
+
void GLSpectrum::mouseMoveEvent(QMouseEvent* event)
{
if (m_displayWaterfall || m_displayHistogram || m_displayMaxHold || m_displayCurrent)
diff --git a/sdrgui/gui/glspectrum.h b/sdrgui/gui/glspectrum.h
index d4d208a2b..ade155298 100644
--- a/sdrgui/gui/glspectrum.h
+++ b/sdrgui/gui/glspectrum.h
@@ -168,6 +168,7 @@ public:
void updateWaterfallMarkers();
void updateAnnotationMarkers();
void updateMarkersDisplay();
+ void updateCalibrationPoints();
SpectrumSettings::MarkersDisplay& getMarkersDisplay() { return m_markersDisplay; }
void setMarkersDisplay(SpectrumSettings::MarkersDisplay markersDisplay);
diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp
index 08efa7dea..3408e1b54 100644
--- a/sdrgui/gui/glspectrumgui.cpp
+++ b/sdrgui/gui/glspectrumgui.cpp
@@ -29,6 +29,7 @@
#include "gui/crightclickenabler.h"
#include "gui/wsspectrumsettingsdialog.h"
#include "gui/spectrummarkersdialog.h"
+#include "gui/spectrumcalibrationpointsdialog.h"
#include "util/simpleserializer.h"
#include "util/db.h"
#include "ui_glspectrumgui.h"
@@ -64,6 +65,9 @@ GLSpectrumGUI::GLSpectrumGUI(QWidget* parent) :
CRightClickEnabler *wsSpectrumRightClickEnabler = new CRightClickEnabler(ui->wsSpectrum);
connect(wsSpectrumRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openWebsocketSpectrumSettingsDialog(const QPoint &)));
+ CRightClickEnabler *calibrationPointsRightClickEnabler = new CRightClickEnabler(ui->calibration);
+ connect(calibrationPointsRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openCalibrationPointsDialog(const QPoint &)));
+
displaySettings();
setAveragingCombo();
applySettings();
@@ -726,6 +730,27 @@ void GLSpectrumGUI::openWebsocketSpectrumSettingsDialog(const QPoint& p)
}
}
+void GLSpectrumGUI::openCalibrationPointsDialog(const QPoint& p)
+{
+ SpectrumCalibrationPointsDialog dialog(
+ m_settings.m_calibrationPoints,
+ m_glSpectrum->getHistogramMarkers().size() > 0 ? &m_glSpectrum->getHistogramMarkers()[0] : nullptr,
+ this
+ );
+
+ dialog.setCenterFrequency(m_glSpectrum->getCenterFrequency());
+ connect(&dialog, SIGNAL(updateCalibrationPoints()), this, SLOT(updateCalibrationPoints()));
+ dialog.move(p);
+ dialog.exec();
+
+ m_settings.m_histogramMarkers = m_glSpectrum->getHistogramMarkers();
+ m_settings.m_waterfallMarkers = m_glSpectrum->getWaterfallMarkers();
+ m_settings.m_annoationMarkers = m_glSpectrum->getAnnotationMarkers();
+ m_settings.m_markersDisplay = m_glSpectrum->getMarkersDisplay();
+
+ applySettings();
+}
+
void GLSpectrumGUI::updateHistogramMarkers()
{
if (m_glSpectrum) {
@@ -753,3 +778,10 @@ void GLSpectrumGUI::updateMarkersDisplay()
m_glSpectrum->updateMarkersDisplay();
}
}
+
+void GLSpectrumGUI::updateCalibrationPoints()
+{
+ if (m_glSpectrum) {
+ m_glSpectrum->updateCalibrationPoints();
+ }
+}
diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h
index 4f83b6d9c..090a0859c 100644
--- a/sdrgui/gui/glspectrumgui.h
+++ b/sdrgui/gui/glspectrumgui.h
@@ -114,11 +114,13 @@ private slots:
void handleInputMessages();
void openWebsocketSpectrumSettingsDialog(const QPoint& p);
+ void openCalibrationPointsDialog(const QPoint& p);
void updateHistogramMarkers();
void updateWaterfallMarkers();
void updateAnnotationMarkers();
void updateMarkersDisplay();
+ void updateCalibrationPoints();
};
#endif // INCLUDE_GLSPECTRUMGUI_H
diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui
index 9c2de1ddc..cad74c59d 100644
--- a/sdrgui/gui/glspectrumgui.ui
+++ b/sdrgui/gui/glspectrumgui.ui
@@ -568,6 +568,20 @@
+