QNmeaSatelliteInfoSource Class
Die Klasse QNmeaSatelliteInfoSource liefert Satelliteninformationen unter Verwendung einer NMEA-Datenquelle. Mehr...
Kopfzeile: | #include <QNmeaSatelliteInfoSource> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Positioning) target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
qmake: | QT += positioning |
Seit: | Qt 6.2 |
Vererbt: | QGeoSatelliteInfoSource |
Öffentliche Typen
enum class | UpdateMode { RealTimeMode, SimulationMode } |
Öffentliche Funktionen
QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr) | |
virtual | ~QNmeaSatelliteInfoSource() override |
QIODevice * | device() const |
void | setDevice(QIODevice *device) |
QNmeaSatelliteInfoSource::UpdateMode | updateMode() const |
Reimplementierte öffentliche Funktionen
virtual QVariant | backendProperty(const QString &name) const override |
virtual QGeoSatelliteInfoSource::Error | error() const override |
virtual int | minimumUpdateInterval() const override |
virtual bool | setBackendProperty(const QString &name, const QVariant &value) override |
virtual void | setUpdateInterval(int msec) override |
Öffentliche Slots
virtual void | requestUpdate(int msec = 0) override |
virtual void | startUpdates() override |
virtual void | stopUpdates() override |
Statische öffentliche Mitglieder
QString | SimulationUpdateInterval |
Geschützte Typen
enum | SatelliteInfoParseStatus { NotParsed, PartiallyParsed, FullyParsed } |
Geschützte Funktionen
virtual QNmeaSatelliteInfoSource::SatelliteInfoParseStatus | parseSatelliteInfoFromNmea(const char *data, int size, QList<QGeoSatelliteInfo> &infos, QGeoSatelliteInfo::SatelliteSystem &system) |
virtual QGeoSatelliteInfo::SatelliteSystem | parseSatellitesInUseFromNmea(const char *data, int size, QList<int> &pnrsInUse) |
Detaillierte Beschreibung
NMEA ist ein häufig verwendetes Protokoll für die Angabe der eigenen globalen Position zu einem bestimmten Zeitpunkt. Die Klasse QNmeaSatelliteInfoSource liest NMEA-Daten und verwendet sie, um Informationen über gesichtete und genutzte Satelliten in Form von Listen von QGeoSatelliteInfo -Objekten bereitzustellen.
Eine Instanz von QNmeaSatelliteInfoSource arbeitet entweder in RealTimeMode oder SimulationMode. Diese Modi ermöglichen es, NMEA-Daten entweder von einer Live-Datenquelle zu lesen oder zu Simulationszwecken von zuvor aufgezeichneten NMEA-Daten abzuspielen.
Die Quelle der NMEA-Daten wird über setDevice() eingestellt.
Verwenden Sie startUpdates(), um regelmäßige Aktualisierungen der Satelliteninformationen zu erhalten, und stopUpdates(), um diese Aktualisierungen zu stoppen. Wenn Sie nur gelegentlich Aktualisierungen benötigen, können Sie requestUpdate() aufrufen, um eine einmalige Aktualisierung sowohl der angezeigten als auch der verwendeten Satelliten anzufordern.
Die Informationen über die angezeigten Satelliten werden über das Signal satellitesInViewUpdated() empfangen.
Die Informationen über die genutzten Satelliten werden über das Signal satellitesInUseUpdated() empfangen.
Dokumentation der Mitgliedstypen
enum QNmeaSatelliteInfoSource::SatelliteInfoParseStatus
Legt den Parse-Status von Satelliteninformationen fest. Die Satelliteninformationen können in mehrere Sätze aufgeteilt sein, die wir alle analysieren müssen.
Konstante | Wert | Beschreibung |
---|---|---|
QNmeaSatelliteInfoSource::NotParsed | 0 | Die Daten enthalten keine Informationen über Satelliten. |
QNmeaSatelliteInfoSource::PartiallyParsed | 1 | Eine gültige Satelliteninformation wurde empfangen und geparst, aber sie ist nicht vollständig, so dass wir auf einen weiteren NMEA-Satz warten müssen. |
QNmeaSatelliteInfoSource::FullyParsed | 2 | Die Satelliteninformationen wurden vollständig erfasst und geparst. |
enum class QNmeaSatelliteInfoSource::UpdateMode
Legt die verfügbaren Aktualisierungsmodi fest.
Konstante | Wert | Beschreibung |
---|---|---|
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode | 1 | Satelliteninformationen werden von der Datenquelle gelesen und verteilt, sobald sie verfügbar sind. Verwenden Sie diesen Modus, wenn Sie eine Live-Quelle für NMEA-Daten verwenden (z. B. ein GPS-Hardwaregerät). |
QNmeaSatelliteInfoSource::UpdateMode::SimulationMode | 2 | Die Satelliteninformationen werden mit der angegebenen Rate aus der Datenquelle gelesen und verteilt. Die Rate wird durch den Parameter SimulationUpdateInterval bestimmt. Verwenden Sie diesen Modus, wenn die Datenquelle zuvor aufgezeichnete NMEA-Daten enthält und Sie die Daten zu Simulationszwecken wiedergeben möchten. |
Dokumentation der Mitgliedsfunktionen
[explicit]
QNmeaSatelliteInfoSource::QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr)
Konstruiert eine QNmeaSatelliteInfoSource Instanz mit den angegebenen parent und mode.
[override virtual noexcept]
QNmeaSatelliteInfoSource::~QNmeaSatelliteInfoSource()
Zerstört die Satelliteninformationsquelle.
[override virtual]
QVariant QNmeaSatelliteInfoSource::backendProperty(const QString &name) const
Reimplements: QGeoSatelliteInfoSource::backendProperty(const QString &name) const.
Siehe auch setBackendProperty().
QIODevice *QNmeaSatelliteInfoSource::device() const
Gibt die NMEA-Datenquelle zurück.
Siehe auch setDevice().
[override virtual]
QGeoSatelliteInfoSource::Error QNmeaSatelliteInfoSource::error() const
Reimplements: QGeoSatelliteInfoSource::error() const.
[override virtual]
int QNmeaSatelliteInfoSource::minimumUpdateInterval() const
Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QGeoSatelliteInfoSource::minimumUpdateInterval.
[virtual protected]
QNmeaSatelliteInfoSource::SatelliteInfoParseStatus QNmeaSatelliteInfoSource::parseSatelliteInfoFromNmea(const char *data, int size, QList<QGeoSatelliteInfo> &infos, QGeoSatelliteInfo::SatelliteSystem &system)
Analysiert eine NMEA-Satzzeichenkette, um die Informationen über Satelliten in Sichtweite zu extrahieren.
Die Standardimplementierung analysiert Standard-NMEA $GPGSV-Sätze. Diese Methode sollte in einer Unterklasse neu implementiert werden, wenn die Notwendigkeit besteht, nicht standardisierte NMEA-Sätze zu verarbeiten.
Der Parser liest size Bytes von data und verwendet diese Informationen, um die Liste infos zu füllen.
Gibt SatelliteInfoParseStatus mit dem Parse-Ergebnis zurück. Ändert die Liste infos, falls PartiallyParsed oder FullyParsed zurückgegeben wird. Setzt auch system auf den richtigen Satellitensystemtyp. Dies ist erforderlich, um den Systemtyp zu bestimmen, falls keine Satelliten in Sicht sind.
[virtual protected]
QGeoSatelliteInfo::SatelliteSystem QNmeaSatelliteInfoSource::parseSatellitesInUseFromNmea(const char *data, int size, QList<int> &pnrsInUse)
Analysiert eine NMEA-Satzfolge, um die IDs der verwendeten Satelliten zu extrahieren.
Die Standardimplementierung analysiert Standard-NMEA $GPGSA-Sätze. Diese Methode sollte in einer Unterklasse neu implementiert werden, wenn die Notwendigkeit besteht, nicht standardisierte NMEA-Sätze zu verarbeiten.
Der Parser liest size Bytes von data und verwendet diese Informationen, um die Liste pnrsInUse zu füllen.
Gibt den Systemtyp zurück, wenn der Satz erfolgreich geparst wurde, andernfalls gibt er QGeoSatelliteInfo::Undefined zurück und sollte pnrsInUse nicht modifizieren.
[override virtual slot]
void QNmeaSatelliteInfoSource::requestUpdate(int msec = 0)
Reimplements: QGeoSatelliteInfoSource::requestUpdate(int timeout).
[override virtual]
bool QNmeaSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value)
Reimplements: QGeoSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value).
Siehe auch backendProperty().
void QNmeaSatelliteInfoSource::setDevice(QIODevice *device)
Setzt die NMEA-Datenquelle auf device. Wenn das Gerät nicht geöffnet ist, wird es im Modus ReadOnly geöffnet.
Das Quellgerät kann nur einmal eingestellt werden und muss vor dem Aufruf von startUpdates() oder requestUpdate() eingestellt werden.
Hinweis: device muss QIODevice::readyRead() senden, damit die Quelle benachrichtigt wird, wenn Daten zum Lesen verfügbar sind. QNmeaSatelliteInfoSource übernimmt nicht den Besitz des Geräts und gibt es daher bei Zerstörung nicht frei.
Siehe auch device().
[override virtual]
void QNmeaSatelliteInfoSource::setUpdateInterval(int msec)
Reimplantiert eine Zugriffsfunktion für die Eigenschaft: QGeoSatelliteInfoSource::updateInterval.
[override virtual slot]
void QNmeaSatelliteInfoSource::startUpdates()
Reimplements: QGeoSatelliteInfoSource::startUpdates().
[override virtual slot]
void QNmeaSatelliteInfoSource::stopUpdates()
Reimplements: QGeoSatelliteInfoSource::stopUpdates().
QNmeaSatelliteInfoSource::UpdateMode QNmeaSatelliteInfoSource::updateMode() const
Gibt den Aktualisierungsmodus zurück.
Dokumentation der Mitgliedsvariablen
QString QNmeaSatelliteInfoSource::SimulationUpdateInterval
Diese Variable enthält den Namen der Backend-Eigenschaft für die Datenleserate in SimulationMode. Der Wert für diese Eigenschaft ist eine ganze Zahl, die die Anzahl der Millisekunden zwischen den aufeinander folgenden Lesevorgängen angibt. Verwenden Sie diesen Parameter in den Methoden setBackendProperty() und backendProperty().
Hinweis: Diese Eigenschaft unterscheidet sich von dem Intervall, das über setUpdateInterval() festgelegt werden kann. Der über setUpdateInterval() eingestellte Wert bezeichnet ein Intervall für die Benutzerbenachrichtigung, während dieser Parameter die interne Häufigkeit des Lesens der Daten aus der Quelldatei angibt. Das bedeutet, dass während des Zeitraums von updateInterval() mehrere (oder keine) Lesungen stattfinden können.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.