Auf dieser Seite

QNmeaSatelliteInfoSource Class

Die Klasse „ QNmeaSatelliteInfoSource “ stellt Satellitendaten aus einer NMEA-Datenquelle bereit. Mehr...

Überschrift: #include <QNmeaSatelliteInfoSource>
CMake: find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake: QT += positioning
Seit: Qt 6.2
Erbt von: 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

Neu implementierte ö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

QNmeaSatelliteInfoSource(const QNmeaSatelliteInfoSource &)
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)
QNmeaSatelliteInfoSource &operator=(const QNmeaSatelliteInfoSource &)

Ausführliche Beschreibung

NMEA ist ein häufig verwendetes Protokoll zur Angabe der eigenen globalen Position zu einem bestimmten Zeitpunkt. Die Klasse „ QNmeaSatelliteInfoSource “ liest NMEA-Daten ein und nutzt diese, um Informationen über sichtbare und verwendete Satelliten in Form von Listen mit „ QGeoSatelliteInfo “-Objekten bereitzustellen.

Eine Instanz von ` QNmeaSatelliteInfoSource ` arbeitet entweder im Modus ` RealTimeMode ` oder im Modus ` SimulationMode`. Diese Modi ermöglichen es, NMEA-Daten entweder aus einer Live-Datenquelle zu lesen oder zu Simulationszwecken aus zuvor aufgezeichneten NMEA-Daten wiederzugeben.

Die Quelle der NMEA-Daten wird über ` setDevice()` festgelegt.

Verwenden Sie „ startUpdates()“, um den Empfang regelmäßiger Satelliten-Updates zu starten, und „ stopUpdates()“, um diese Updates zu beenden. Wenn Sie nur gelegentlich Updates benötigen, können Sie „ requestUpdate()“ aufrufen, um ein einmaliges Update sowohl der sichtbaren als auch der genutzten Satelliten anzufordern.

Die Informationen über sichtbare Satelliten werden über das Signal „ satellitesInViewUpdated “ () empfangen.

Die Informationen zu den genutzten Satelliten werden über das Signal „ satellitesInUseUpdated “ () empfangen.

Dokumentation zum Mitgliedstyp

enum QNmeaSatelliteInfoSource::SatelliteInfoParseStatus

Definiert den Parsing-Status der Satelliteninformationen. Die Satelliteninformationen können in mehrere Sätze unterteilt sein, und wir müssen sie alle analysieren.

KonstanteWertBeschreibung
QNmeaSatelliteInfoSource::NotParsed0Die Daten enthalten keine Informationen zu Satelliten.
QNmeaSatelliteInfoSource::PartiallyParsed1Es wurden gültige Satellitendaten empfangen und analysiert, diese sind jedoch unvollständig, sodass auf einen weiteren NMEA-Satz gewartet werden muss.
QNmeaSatelliteInfoSource::FullyParsed2Die Satelliteninformationen wurden vollständig erfasst und ausgewertet.

enum class QNmeaSatelliteInfoSource::UpdateMode

Definiert die verfügbaren Aktualisierungsmodi.

KonstanteWertBeschreibung
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode1Satelliteninformationen werden aus der Datenquelle gelesen und verteilt, sobald sie verfügbar sind. Verwenden Sie diesen Modus, wenn Sie eine Live-Quelle für NMEA-Daten nutzen (z. B. ein GPS-Hardwaregerät).
QNmeaSatelliteInfoSource::UpdateMode::SimulationMode2Satelliteninformationen werden mit der angegebenen Rate aus der Datenquelle gelesen und verteilt. Die Rate wird durch den Parameter „ SimulationUpdateInterval “ festgelegt. 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)

Erstellt eine Instanz von „ QNmeaSatelliteInfoSource “ mit den angegebenen Werten „ parent “ und „ mode “.

[protected delete] QNmeaSatelliteInfoSource::QNmeaSatelliteInfoSource(const QNmeaSatelliteInfoSource &)

Erzeugt eine Instanz von „ QNmeaSatelliteInfoSource “ durch Kopieren. Diese Funktion wurde gelöscht.

[override virtual noexcept] QNmeaSatelliteInfoSource::~QNmeaSatelliteInfoSource()

Zerstört die Satelliteninformationsquelle.

[override virtual] QVariant QNmeaSatelliteInfoSource::backendProperty(const QString &name) const

Implementiert neu: ` 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

Implementiert: ` QGeoSatelliteInfoSource::error()` const.

[override virtual] int QNmeaSatelliteInfoSource::minimumUpdateInterval() const

Implementiert eine Zugriffsfunktion für die Eigenschaft „ QGeoSatelliteInfoSource::minimumUpdateInterval “ neu.

[virtual protected] QNmeaSatelliteInfoSource::SatelliteInfoParseStatus QNmeaSatelliteInfoSource::parseSatelliteInfoFromNmea(const char *data, int size, QList<QGeoSatelliteInfo> &infos, QGeoSatelliteInfo::SatelliteSystem &system)

Analysiert eine NMEA-Satzzeichenfolge, um die Informationen zu den sichtbaren Satelliten zu extrahieren.

Die Standardimplementierung analysiert standardmäßige NMEA-$GPGSV-Sätze. Diese Methode sollte in einer Unterklasse neu implementiert werden, sobald die Notwendigkeit besteht, nicht standardmäßige NMEA-Sätze zu verarbeiten.

Der Parser liest die Bytes „ size “ aus „ data “ ein und verwendet diese Informationen, um die Liste „ infos “ zu füllen.

Gibt „ SatelliteInfoParseStatus “ mit dem Parsing-Ergebnis zurück. Ändert die Liste „ infos “, falls „ PartiallyParsed “ oder „ FullyParsed “ zurückgegeben wird. Setzt außerdem „ system “ auf den korrekten 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-Satzzeichenfolge, um die IDs der verwendeten Satelliten zu extrahieren.

Die Standardimplementierung analysiert standardmäßige NMEA-$GPGSA-Sätze. Diese Methode sollte in einer Unterklasse neu implementiert werden, sobald die Notwendigkeit besteht, nicht standardmäßige NMEA-Sätze zu verarbeiten.

Der Parser liest „ size “-Bytes aus „ data “ und verwendet diese Informationen, um die Liste „ pnrsInUse “ zu füllen.

Gibt den Systemtyp zurück, wenn der Satz erfolgreich analysiert wurde; andernfalls gibt er „ QGeoSatelliteInfo::Undefined “ zurück und sollte „ pnrsInUse “ nicht verändern.

[override virtual slot] void QNmeaSatelliteInfoSource::requestUpdate(int msec = 0)

Implementiert: ` QGeoSatelliteInfoSource::requestUpdate(int timeout)`.

[override virtual] bool QNmeaSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value)

Implementiert: ` QGeoSatelliteInfoSource::setBackendProperty` (const QString &name, const QVariant &value).

Siehe auch backendProperty().

void QNmeaSatelliteInfoSource::setDevice(QIODevice *device)

Legt die NMEA-Datenquelle auf „ device “ fest. Ist das Gerät noch nicht geöffnet, wird es im Modus „ ReadOnly “ geöffnet.

Das Quellgerät kann nur einmal festgelegt werden und muss vor dem Aufruf von ` startUpdates()` oder ` requestUpdate()` festgelegt werden.

Hinweis: Das ` device ` muss ` QIODevice::readyRead()` auslösen, damit die Quelle benachrichtigt wird, wenn Daten zum Lesen verfügbar sind. ` QNmeaSatelliteInfoSource ` übernimmt nicht die Verantwortung für das Gerät und gibt es daher bei der Zerstörung nicht frei.

Siehe auch device().

[override virtual] void QNmeaSatelliteInfoSource::setUpdateInterval(int msec)

Implementiert eine Zugriffsfunktion für die Eigenschaft „ QGeoSatelliteInfoSource::updateInterval “ neu.

[override virtual slot] void QNmeaSatelliteInfoSource::startUpdates()

Implementiert: QGeoSatelliteInfoSource::startUpdates().

[override virtual slot] void QNmeaSatelliteInfoSource::stopUpdates()

Implementiert: ` QGeoSatelliteInfoSource::stopUpdates()`.

QNmeaSatelliteInfoSource::UpdateMode QNmeaSatelliteInfoSource::updateMode() const

Gibt den Aktualisierungsmodus zurück.

[protected delete] QNmeaSatelliteInfoSource &QNmeaSatelliteInfoSource::operator=(const QNmeaSatelliteInfoSource &)

Weist dieser Instanz von ` QNmeaSatelliteInfoSource ` den Wert von ` other ` zu. Diese Funktion wird gelöscht.

Dokumentation zu Member-Variablen

QString QNmeaSatelliteInfoSource::SimulationUpdateInterval

Diese Variable enthält den Namen der Backend-Eigenschaft für die Datenleserate im „ SimulationMode “. Der Wert dieser Eigenschaft ist eine Ganzzahl, die die Zeitspanne in Millisekunden zwischen aufeinanderfolgenden 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()` festgelegte Wert bezeichnet ein Intervall für die Benachrichtigung des Benutzers, während dieser Parameter die interne Häufigkeit des Auslesens der Daten aus der Quelldatei angibt. Das bedeutet, dass während des Zeitraums von ` updateInterval()` mehrere (oder keine) Lesevorgänge stattfinden können.

© 2026 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.