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
| QString | SimulationUpdateInterval |
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.
| Konstante | Wert | Beschreibung |
|---|---|---|
QNmeaSatelliteInfoSource::NotParsed | 0 | Die Daten enthalten keine Informationen zu Satelliten. |
QNmeaSatelliteInfoSource::PartiallyParsed | 1 | Es wurden gültige Satellitendaten empfangen und analysiert, diese sind jedoch unvollständig, sodass auf einen weiteren NMEA-Satz gewartet werden muss. |
QNmeaSatelliteInfoSource::FullyParsed | 2 | Die Satelliteninformationen wurden vollständig erfasst und ausgewertet. |
enum class QNmeaSatelliteInfoSource::UpdateMode
Definiert die verfügbaren Aktualisierungsmodi.
| Konstante | Wert | Beschreibung |
|---|---|---|
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode | 1 | Satelliteninformationen 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::SimulationMode | 2 | Satelliteninformationen 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.