NDEVR
API Documentation
CSignalQuality.h
1#pragma once
2#include "GPSInterface/Headers/GPSSensor.h"
3#include "Base/Headers/Dictionary.h"
4#include <QWidget>
5#include <QPropertyAnimation>
6#include <QPointer>
7namespace NDEVR
8{
9 class GPSSensor;
12 class CSignalQuality : public QWidget
13 {
14 Q_OBJECT
15 Q_PROPERTY(double current_render_sat_ratio READ activeRenderRatio WRITE setActiveRenderRatio)
16 public:
19 explicit CSignalQuality(QWidget* parent = nullptr);
23 explicit CSignalQuality(GPSSensor* sensor, QWidget* parent = nullptr);
26 void setSensor(GPSSensor* sensor);
29 fltp08 activeRenderRatio() const { return m_current_render_ratio; };
33 public slots:
38 QSize sizeHint() const;
39 protected:
42 void paintEvent(QPaintEvent* event);
43 private:
44#if GNSS_USE_ANIMATIONS
45 QPointer<QPropertyAnimation> m_primary_animation;
46#endif
47 Dictionary<UUID, GNSSSatelliteInfo> m_current_sat_info;
48 Dictionary<UUID, GNSSSatelliteInfo> m_current_render_sat_info;
49 fltp08 m_current_render_ratio = 0.0;
50 constexpr static int c_nMaxChannels = 256;
51 GPSSensor* m_sensor;
52
53 };
54
57 class CAverageSignalQuality : public QWidget
58 {
59 Q_OBJECT
60 Q_PROPERTY(double current_render_sat_quality READ activeRenderQuality WRITE setActiveRenderQuality)
61 public:
64 explicit CAverageSignalQuality(QWidget* parent = nullptr);
68 explicit CAverageSignalQuality(GPSSensor* sensor, QWidget* parent = nullptr);
71 void setSensor(GPSSensor* sensor);
74 fltp08 activeRenderQuality() { return m_current_render_sat_quality; };
78 public slots:
83 QSize sizeHint() const;
84 protected:
87 void paintEvent(QPaintEvent* event);
88 private:
89#if GNSS_USE_ANIMATIONS
90 QPointer<QPropertyAnimation> m_primary_animation;
91#endif
92 fltp08 m_current_sat_quality = 0.0;
93 fltp08 m_current_render_sat_quality = 0.0;
94 GPSSensor* m_sensor;
95 };
96}
void paintEvent(QPaintEvent *event)
Paints the average signal quality indicator.
fltp08 activeRenderQuality()
Returns the current animation render quality.
void setActiveRenderQuality(fltp08 quality)
Sets the render quality for animation interpolation.
CAverageSignalQuality(GPSSensor *sensor, QWidget *parent=nullptr)
Constructs the average signal quality widget for a specific sensor.
CAverageSignalQuality(QWidget *parent=nullptr)
Constructs the average signal quality widget with no sensor.
QSize sizeHint() const
Returns the preferred size for this widget.
void OnNewPositionUpdateGPS()
Slot called when new GPS position data is available.
void setSensor(GPSSensor *sensor)
Sets the GPS sensor to visualize.
void setActiveRenderRatio(fltp08 quality)
Sets the render ratio for animation interpolation.
void setSensor(GPSSensor *sensor)
Sets the GPS sensor to visualize.
fltp08 activeRenderRatio() const
Returns the current animation render ratio.
QSize sizeHint() const
Returns the preferred size for this widget.
void paintEvent(QPaintEvent *event)
Paints the signal quality bar chart.
CSignalQuality(GPSSensor *sensor, QWidget *parent=nullptr)
Constructs the signal quality widget for a specific sensor.
CSignalQuality(QWidget *parent=nullptr)
Constructs the signal quality widget with no sensor.
void OnNewPositionUpdateGPS()
Slot called when new GPS position data is available.
A hash-based key-value store, useful for quick associative lookups.
Definition Dictionary.h:64
A GPS sensor implementation that receives NMEA data from serial connections, files,...
Definition GPSSensor.h:61
The primary namespace for the NDEVR SDK.
double fltp08
Defines an alias representing an 8 byte floating-point number.