QNmeaPositionInfoSource Class
La classe QNmeaPositionInfoSource fournit des informations sur la position à l'aide d'une source de données NMEA. Plus d'informations...
| En-tête : | #include <QNmeaPositionInfoSource> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Positioning)target_link_libraries(mytarget PRIVATE Qt6::Positioning) |
| qmake : | QT += positioning |
| Héritages : | 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 |
Emplacements 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 la position globale d'une personne à 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 selon les modes RealTimeMode ou SimulationMode. Ces modes permettent de lire les données NMEA à partir d'une source de données de position 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 à l'aide de setDevice().
Utilisez startUpdates() pour commencer à recevoir des mises à jour régulières de la position et stopUpdates() pour arrêter ces mises à jour. Si vous ne souhaitez que des mises à jour occasionnelles, vous pouvez appeler requestUpdate() pour demander une seule mise à jour.
Dans les deux cas, les informations sur la position sont reçues via le signal positionUpdated() et la dernière position connue est accessible via lastKnownPosition().
QNmeaPositionInfoSource permet de signaler la précision de la position horizontale et verticale. Pour activer la déclaration de la précision de la position, une estimation de l'erreur de portée équivalente à l'utilisateur 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.
| Constante | Valeur | Description du mode de mise à jour |
|---|---|---|
QNmeaPositionInfoSource::RealTimeMode | 1 | Les 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 dispositif matériel GPS). |
QNmeaPositionInfoSource::SimulationMode | 2 | Les données et les informations temporelles contenues dans les données de la source NMEA sont utilisées pour fournir des mises à jour de position à la vitesse à laquelle les données ont été enregistrées à l'origine. 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] QNmeaPositionInfoSource::QNmeaPositionInfoSource(QNmeaPositionInfoSource::UpdateMode updateMode, QObject *parent = nullptr)
Construit une instance de QNmeaPositionInfoSource avec les données parent et updateMode.
[virtual noexcept] QNmeaPositionInfoSource::~QNmeaPositionInfoSource()
Détruit la source de position.
QIODevice *QNmeaPositionInfoSource::device() const
Renvoie la source de données NMEA.
Voir également 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 à la propriété : QGeoPositionInfoSource::minimumUpdateInterval.
[virtual protected] bool QNmeaPositionInfoSource::parsePosInfoFromNmeaData(const char *data, int size, QGeoPositionInfo *posInfo, bool *hasFix)
Analyse une chaîne de phrases NMEA en 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 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 configurer posInfo et hasFix. Si hasFix est défini comme faux, posInfo peut contenir uniquement l'heure ou la date et l'heure.
Retourne vrai si la phrase a été analysée avec succès, sinon retourne faux 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 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. QNmeaPositionInfoSource 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 QNmeaPositionInfoSource::setUpdateInterval(int msec)
Réimplémente une fonction d'accès à la propriété : QGeoPositionInfoSource::updateInterval.
void QNmeaPositionInfoSource::setUserEquivalentRangeError(double uere)
Définit l'erreur de portée équivalente de l'utilisateur (UERE) à uere. L'UERE est utilisée pour calculer une estimation de la précision des informations de position rapportées par la source d'informations de position. L'UERE doit être réglé sur une valeur appropriée pour l'appareil GPS qui a généré le flux NMEA.
La valeur réelle de l'UERE est calculée à partir de plusieurs 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 Reveiver's Accuracy.
Une valeur typique pour 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 portée équivalente de l'utilisateur (UERE) actuelle. L'UERE est utilisée pour calculer une estimation de la précision des informations de position rapportées 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.