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

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.

KonstanteWertBeschreibung
QNmeaSatelliteInfoSource::NotParsed0Die Daten enthalten keine Informationen über Satelliten.
QNmeaSatelliteInfoSource::PartiallyParsed1Eine 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::FullyParsed2Die Satelliteninformationen wurden vollständig erfasst und geparst.

enum class QNmeaSatelliteInfoSource::UpdateMode

Legt die verfügbaren Aktualisierungsmodi fest.

KonstanteWertBeschreibung
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode1Satelliteninformationen 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::SimulationMode2Die 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.