Sur cette page

QNmeaSatelliteInfoSource Class

La classe QNmeaSatelliteInfoSource fournit des informations sur les satellites à l'aide d'une source de données NMEA. Plus d'informations...

En-tête : #include <QNmeaSatelliteInfoSource>
CMake : find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake : QT += positioning
Depuis : Qt 6.2
Hérite : QGeoSatelliteInfoSource

Types publics

enum class UpdateMode { RealTimeMode, SimulationMode }

Fonctions publiques

QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr)
virtual ~QNmeaSatelliteInfoSource() override
QIODevice *device() const
void setDevice(QIODevice *device)
QNmeaSatelliteInfoSource::UpdateMode updateMode() const

Fonctions publiques réimplémentées

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

Emplacements publics

virtual void requestUpdate(int msec = 0) override
virtual void startUpdates() override
virtual void stopUpdates() override

Membres publics statiques

Types protégés

enum SatelliteInfoParseStatus { NotParsed, PartiallyParsed, FullyParsed }

Fonctions protégées

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)

Description détaillée

NMEA est un protocole couramment utilisé pour spécifier la position globale d'une personne à un moment donné. La classe QNmeaSatelliteInfoSource lit les données NMEA et les utilise pour fournir des informations sur les satellites en vue et les satellites utilisés sous la forme de listes d'objets QGeoSatelliteInfo.

Une instance de QNmeaSatelliteInfoSource fonctionne en mode RealTimeMode ou SimulationMode. Ces modes permettent de lire les données NMEA à partir d'une source de données en direct ou de les rejouer à des fins de simulation à partir de données NMEA précédemment enregistrées.

La source des données NMEA est définie via setDevice().

Utilisez startUpdates() pour commencer à recevoir des mises à jour régulières des informations satellite et stopUpdates() pour arrêter ces mises à jour. Si vous ne souhaitez que des mises à jour occasionnelles, vous pouvez appeler requestUpdate() pour demander une mise à jour unique des satellites en vue et des satellites utilisés.

Les informations sur les satellites en vue sont reçues via le signal satellitesInViewUpdated().

Les informations sur les satellites utilisés sont reçues via le signal satellitesInUseUpdated().

Type de membre Documentation

enum QNmeaSatelliteInfoSource::SatelliteInfoParseStatus

Définit l'état d'analyse des informations satellite. Les informations satellite peuvent être divisées en plusieurs phrases, et nous devons les analyser toutes.

ConstanteValeurDescription
QNmeaSatelliteInfoSource::NotParsed0Les données ne contiennent pas d'informations sur les satellites.
QNmeaSatelliteInfoSource::PartiallyParsed1Une information satellite valide est reçue et analysée, mais elle n'est pas complète, nous devons donc attendre une autre phrase NMEA.
QNmeaSatelliteInfoSource::FullyParsed2Les informations sur les satellites ont été entièrement collectées et analysées.

enum class QNmeaSatelliteInfoSource::UpdateMode

Définit les modes de mise à jour disponibles.

ConstanteValeurDescription du mode de mise à jour
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode1Les informations satellite sont lues et distribuées à partir de la source de données au fur et à mesure qu'elles sont disponibles. Utilisez ce mode si vous utilisez une source de données NMEA en direct (par exemple un dispositif matériel GPS).
QNmeaSatelliteInfoSource::UpdateMode::SimulationMode2Les informations satellite sont lues et distribuées à partir de la source de données à la vitesse donnée. Le taux est déterminé par le paramètre SimulationUpdateInterval. Utilisez ce mode si la source de données contient des données NMEA précédemment enregistrées et que vous souhaitez les rejouer à des fins de simulation.

Documentation des fonctions membres

[explicit] QNmeaSatelliteInfoSource::QNmeaSatelliteInfoSource(QNmeaSatelliteInfoSource::UpdateMode mode, QObject *parent = nullptr)

Construit une instance QNmeaSatelliteInfoSource avec les données parent et mode.

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

Détruit la source d'information satellite.

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

Réimplémente : QGeoSatelliteInfoSource::backendProperty(const QString &name) const.

Voir également setBackendProperty().

QIODevice *QNmeaSatelliteInfoSource::device() const

Renvoie la source de données NMEA.

Voir également setDevice().

[override virtual] QGeoSatelliteInfoSource::Error QNmeaSatelliteInfoSource::error() const

Réimplémente : QGeoSatelliteInfoSource::error() const.

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

Réimplémente une fonction d'accès à la propriété : QGeoSatelliteInfoSource::minimumUpdateInterval.

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

Analyse une chaîne de phrases NMEA pour extraire les informations sur les satellites en vue.

L'implémentation par défaut analyse les phrases NMEA $GPGSV standard. Cette méthode doit être réimplémentée dans une sous-classe chaque fois qu'il est nécessaire de traiter des phrases NMEA non standard.

L'analyseur lit size octets à partir de data et utilise ces informations pour remplir la liste infos.

Retourne SatelliteInfoParseStatus avec le résultat de l'analyse. Modifie la liste infos au cas où PartiallyParsed ou FullyParsed serait retourné. Définit également le type de système satellite correct sur system. Ceci est nécessaire pour déterminer le type de système dans le cas où il n'y a pas de satellites en vue.

[virtual protected] QGeoSatelliteInfo::SatelliteSystem QNmeaSatelliteInfoSource::parseSatellitesInUseFromNmea(const char *data, int size, QList<int> &pnrsInUse)

Analyse une chaîne de phrases NMEA pour extraire les identifiants des satellites utilisés.

L'implémentation par défaut analyse les phrases NMEA $GPGSA standard. Cette méthode doit être réimplémentée dans une sous-classe chaque fois qu'il est nécessaire de traiter des phrases NMEA non standard.

L'analyseur lit size octets à partir de data et utilise ces informations pour remplir la liste pnrsInUse.

Renvoie un type de système si la phrase a été analysée avec succès, sinon il renvoie QGeoSatelliteInfo::Undefined et ne doit pas modifier pnrsInUse.

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

Réimplémente : QGeoSatelliteInfoSource::requestUpdate(int timeout).

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

Réimplémente : QGeoSatelliteInfoSource::setBackendProperty(const QString &name, const QVariant &value).

Voir également backendProperty().

void QNmeaSatelliteInfoSource::setDevice(QIODevice *device)

Définit la source de données NMEA sur device. Si le dispositif n'est pas ouvert, il le sera en mode ReadOnly.

Le dispositif source ne peut être défini qu'une seule fois et doit l'être avant d'appeler startUpdates() ou requestUpdate().

Remarque : device doit émettre QIODevice::readyRead() pour que la source soit informée de la disponibilité des données en lecture. QNmeaSatelliteInfoSource n'assume pas la propriété du périphérique et ne le désalloue donc pas en cas de destruction.

Voir également device().

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

Réimplémente une fonction d'accès à la propriété : QGeoSatelliteInfoSource::updateInterval.

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

Réimplémente : QGeoSatelliteInfoSource::startUpdates().

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

Réimplémente : QGeoSatelliteInfoSource::stopUpdates().

QNmeaSatelliteInfoSource::UpdateMode QNmeaSatelliteInfoSource::updateMode() const

Renvoie le mode de mise à jour.

Documentation des variables membres

QString QNmeaSatelliteInfoSource::SimulationUpdateInterval

Cette variable contient le nom de la propriété du backend pour le taux de lecture des données dans la méthode SimulationMode. La valeur de cette propriété est un nombre entier représentant le nombre de millisecondes entre les lectures suivantes. Utilisez ce paramètre dans les méthodes setBackendProperty() et backendProperty().

Remarque : cette propriété est différente de l'intervalle qui peut être défini via setUpdateInterval(). La valeur définie via setUpdateInterval() indique un intervalle pour la notification de l'utilisateur, alors que ce paramètre spécifie la fréquence interne de lecture des données du fichier source. Cela signifie qu'il peut y avoir plusieurs lectures (ou aucune) au cours de la période updateInterval().

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