Sur cette page

QNmeaPositionInfoSource Class

La classe QNmeaPositionInfoSource fournit des informations de position à partir d'une source de données NMEA. En savoir plus...

En-tête : #include <QNmeaPositionInfoSource>
CMake : find_package(Qt6 REQUIRED COMPONENTS Positioning)
target_link_libraries(mytarget PRIVATE Qt6::Positioning)
qmake : QT += positioning
Hérite de : QGeoPositionInfoSource

Types publics

enum UpdateMode { RealTimeMode, SimulationMode }

Fonctions publiques

QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)
virtual ~QNmeaPositionInfoSource()
QIODevice *device() const
void setDevice(QIODevice *device)
void setUserEquivalentRangeError(double uere)
QNmeaPositionInfoSource::UpdateMode updateMode() const
double userEquivalentRangeError() const

Fonctions publiques réimplémentées

virtual QGeoPositionInfoSource::Error error() const override
virtual QGeoPositionInfo lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const override
virtual int minimumUpdateInterval() const override
virtual void setUpdateInterval(int msec) override
virtual QGeoPositionInfoSource::PositioningMethods supportedPositioningMethods() const override

Slots publics

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

Fonctions protégées

virtual bool parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

Description détaillée

NMEA est un protocole couramment utilisé pour spécifier sa position globale à un moment donné. La classe QNmeaPositionInfoSource lit les données NMEA et les utilise pour fournir des données de position sous la forme d'objets ` QGeoPositionInfo `.

Une instance de QNmeaPositionInfoSource 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 de position en temps réel, 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 à l’aide de la méthode ` setDevice()`.

Utilisez ` startUpdates()` pour commencer à recevoir des mises à jour régulières de position et ` stopUpdates()` pour interrompre ces mises à jour. Si vous n’avez besoin de mises à jour qu’occasionnellement, vous pouvez appeler ` requestUpdate()` pour demander une mise à jour unique.

Dans les deux cas, les informations de position sont reçues via le signal ` positionUpdated()` et la dernière position connue est accessible via ` lastKnownPosition()`.

QNmeaPositionInfoSource prend en charge le rapport sur la précision de la position horizontale et verticale. Pour activer le rapport sur la précision de la position, une estimation de l’erreur de portée équivalente utilisateur (User Equivalent Range Error) associée à la source NMEA doit être définie à l’aide de setUserEquivalentRangeError().

Documentation sur les types de membres

enum QNmeaPositionInfoSource::UpdateMode

Définit les modes de mise à jour disponibles.

ConstanteValeurDescription
QNmeaPositionInfoSource::RealTimeMode1Les données de position 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 de position en temps réel (par exemple, un périphérique GPS).
QNmeaPositionInfoSource::SimulationMode2Les informations de date et d’heure contenues dans les données source NMEA sont utilisées pour fournir des mises à jour de position à la fréquence à laquelle les données ont été initialement enregistrées. 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] QNmeaPositionInfoSource::QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)

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

[virtual noexcept] QNmeaPositionInfoSource::~QNmeaPositionInfoSource()

Supprime la source de position.

QIODevice *QNmeaPositionInfoSource::device() const

Renvoie la source de données NMEA.

Voir aussi setDevice().

[override virtual] QGeoPositionInfoSource::Error QNmeaPositionInfoSource::error() const

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

[override virtual] QGeoPositionInfo QNmeaPositionInfoSource::lastKnownPosition(bool fromSatellitePositioningMethodsOnly = false) const

Réimplémente : ` QGeoPositionInfoSource::lastKnownPosition` (bool fromSatellitePositioningMethodsOnly) const.

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

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

[virtual protected] bool QNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)

Analyse une chaîne de caractères représentant une phrase NMEA pour en extraire une instance de ` QGeoPositionInfo`.

L'implémentation par défaut analyse les phrases NMEA 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 de ` size ` à partir de ` data ` et utilise ces informations pour configurer ` posInfo ` et ` hasFix`. Si ` hasFix ` est défini sur `false`, alors ` posInfo ` peut contenir uniquement l'heure ou la date et l'heure.

Renvoie « true » si la phrase a été analysée avec succès ; dans le cas contraire, renvoie « false » et ne doit pas modifier posInfo ou hasFix.

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

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

void QNmeaPositionInfoSource::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 ` QNmeaPositionInfoSource ` 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 QNmeaPositionInfoSource::setUpdateInterval(int msec)

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

void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)

Définit l'erreur de portée équivalente utilisateur (UERE) sur uere. L'UERE sert à calculer une estimation de la précision des informations de position fournies par la source d'informations de position. L'UERE doit être définie sur une valeur adaptée au récepteur GPS ayant généré le flux NMEA.

La valeur réelle de l'UERE est calculée à partir de multiples sources d'erreur, notamment les erreurs introduites par les satellites et les retards de propagation du signal dans l'atmosphère, ainsi que les erreurs introduites par l'équipement GPS récepteur. Pour plus de détails sur la précision du GPS, voir Sam J. Wormley, « GPS Errors & Estimating Your Receiver's Accuracy ».

Une valeur typique pour l’UERE est d’environ 5,1.

Voir également userEquivalentRangeError().

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

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

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

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

[override virtual] QGeoPositionInfoSource::PositioningMethods QNmeaPositionInfoSource::supportedPositioningMethods() const

Réimplémente : QGeoPositionInfoSource::supportedPositioningMethods() const.

QNmeaPositionInfoSource::UpdateMode QNmeaPositionInfoSource::updateMode() const

Renvoie le mode de mise à jour.

double QNmeaPositionInfoSource::userEquivalentRangeError() const

Renvoie l'erreur de plage équivalente à l'utilisateur (UERE) actuelle. L'UERE est utilisée pour calculer une estimation de la précision des informations de position fournies par la source d'informations de position. La valeur par défaut est NaN, ce qui signifie qu'aucune information de précision ne sera fournie.

Voir également setUserEquivalentRangeError().

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