Sur cette page

QNmeaSatelliteInfoSource Class

La classe « QNmeaSatelliteInfoSource » fournit des informations sur les satellites à partir d'une source de données NMEA. En savoir plus...

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 de : 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

Slots 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

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 &)

Description détaillée

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

Une instance de QNmeaSatelliteInfoSource fonctionne soit en mode « RealTimeMode », soit en mode « SimulationMode ». Ces modes permettent de lire les données NMEA à partir d’une source de données en temps réel, ou de les rejouer à des fins de simulation à partir de données NMEA préalablement enregistrées.

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

Utilisez la fonction startUpdates() pour commencer à recevoir des mises à jour régulières des informations sur les satellites, et la fonction stopUpdates() pour interrompre ces mises à jour. Si vous n'avez besoin de mises à jour qu'occasionnellement, vous pouvez appeler la fonction requestUpdate() pour demander une mise à jour unique concernant à la fois les satellites visibles et les satellites utilisés.

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

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

Documentation sur les types de membres

enum QNmeaSatelliteInfoSource::SatelliteInfoParseStatus

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

ConstanteValeurDescription
QNmeaSatelliteInfoSource::NotParsed0Les données ne contiennent aucune information sur les satellites.
QNmeaSatelliteInfoSource::PartiallyParsed1Des informations valides sur les satellites ont été reçues et analysées, mais elles ne sont pas complètes ; il faut 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
QNmeaSatelliteInfoSource::UpdateMode::RealTimeMode1Les informations satellite sont lues et distribuées à partir de la source de données dès qu’elles sont disponibles. Utilisez ce mode si vous utilisez une source de données NMEA en temps réel (par exemple, un périphérique GPS).
QNmeaSatelliteInfoSource::UpdateMode::SimulationMode2Les informations satellite sont lues et distribuées à partir de la source de données à la fréquence indiquée. Cette fréquence est déterminée par le paramètre « SimulationUpdateInterval ». Utilisez ce mode si la source de données contient des données NMEA enregistrées précédemment et que vous souhaitez les rejouer à des fins de simulation.

Documentation des fonctions membres

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

Crée une instance de ` QNmeaSatelliteInfoSource ` avec les paramètres ` parent ` et ` mode` fournis.

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

Copie et construit une instance de ` QNmeaSatelliteInfoSource`. Cette fonction est supprimée.

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

Détruit la source d'informations du 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 pour 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 caractères contenant une phrase NMEA afin d'extraire les informations relatives aux 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 dès lors qu'il est nécessaire de traiter des phrases NMEA non standard.

L’analyseur lit les octets d’ size s provenant de ` data ` et utilise ces informations pour remplir la liste ` infos `.

Renvoie SatelliteInfoParseStatus avec le résultat de l’analyse. Modifie la liste infos si PartiallyParsed ou FullyParsed est renvoyé. Définit également la variable system sur le type de système satellite correct. Cela est nécessaire pour déterminer le type de système lorsqu’aucun satellite n’est en vue.

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

Analyse une chaîne de caractères représentant une phrase NMEA afin d'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 dès lors qu'il est nécessaire de traiter des phrases NMEA non standard.

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

Renvoie le type « system » si la phrase a été analysée avec succès ; dans le cas contraire, 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 aussi backendProperty().

void QNmeaSatelliteInfoSource::setDevice(QIODevice *device)

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

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

Remarque : la fonction ` device ` doit émettre un appel ` QIODevice::readyRead()` pour que la source soit notifiée lorsque des données sont disponibles en lecture. La fonction ` QNmeaSatelliteInfoSource ` ne prend pas possession du périphérique et ne le désalloue donc pas lors de sa destruction.

Voir également device().

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

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

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

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

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

Réimplémentation de : QGeoSatelliteInfoSource::stopUpdates().

QNmeaSatelliteInfoSource::UpdateMode QNmeaSatelliteInfoSource::updateMode() const

Renvoie le mode de mise à jour.

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

Attribue la valeur de « other » à cette instance de « QNmeaSatelliteInfoSource ». Cette fonction a été supprimée.

Documentation sur les variables membres

QString QNmeaSatelliteInfoSource::SimulationUpdateInterval

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

Remarque : cette propriété est différente de l’intervalle pouvant être défini via la méthode setUpdateInterval(). La valeur définie via setUpdateInterval() correspond à un intervalle de notification à l’utilisateur, tandis que ce paramètre spécifie la fréquence interne de lecture des données à partir du fichier source. Cela signifie qu’il peut y avoir plusieurs lectures (ou aucune) pendant la période couverte par la méthode 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.