home castoo
chapitre navigation
navigation

Navigation : Trame NMEA
Outils d'analyse graphique

mars 2019

La trame nmea :

Accès autres chapitres NMEA/AIS

Dans le descriptif précédent l'analyse était en noir et blanc dans une fenêtre "console" !.
Je vous propose ici un analyseur réalisé dans des fenêtres Windows avec les petits dessins qui vont bien. Cette réalisation est développée avec le langage C++ dans l'environnement QT. Je vous livre donc les points importants des fichiers sources qui permettent de résoudre les problèmes qui vous entravent dans la réalisation de ce genre d'application. (pas les sources complet ! et puis quoi encore ! il faut bosser un minimum...) Pour les non programmeur l'executable sera bientôt mis à dispo...

Ecran principal analyseur trame nmea

L'application permet de lister les trames NMEA depuis un fichier texte ou depuis une liaison NMEA (soit directe NMEA ou derrière un multiplexeur). Il est entre autre possible de mémoriser toutes les trames reçues ou seulement certain type de trame dans un fichier pour une exploitation future.
Une petite démo vidéo est disponible plus bas (laissez lui le temps de se charger !)...


Structure de la trame nmea decrite dans fichier d'entete

Structure de la trame NMEA décrite dans fichier d'entête du programme C++, on y retrouve l'objet "struct_nmea" avec ses données et ses méthodes.


Initialisation d'un type de trame nmea

Ici un exemple d'initialisation d'un type de trame NMEA.


Données de la trame nmea RMC

Affichage des infos de la trame NMEA (conversion latitude, longitude, date, heure) L'heure affichée est l'heure UTC donc qui ne tient pas compte des décalages été hivers, j'ai préféré conserver ici l'affichage des données brutes.


Positionnement des satellites en fonction des infos de la trame nmea GSV

Affichage du positionnement des satellites en fonction des infos de la trame nmea GSV. En réalité NMEA peut suivre 16 satellites soit 4 trames GSV qui se suivent. (Certains systèmes vont même au-delà des 16 satellites de la norme avec des trames supplémentaires (non traitées ici on n'en traite que 16 (4 trames))). Le positionnement de la position en fonction de l'élévation et de l'azimut sur un cercle demande l'utilisation des sinus et cosinus (notions que j'avais un peu oubliée, c'est pourquoi je vous passe ici le code si vous êtes comme moi !).


Calcul de la checksum de la trame nmea

Calcul de la checksum de la trame nmea : Je vous passe également le code, il faut faire un ou exclusif logique de tous les caractères de la trame sauf le $ (ou !) du début jusqu'à l'étoile de la fin (sans l'étoile). J'ai un peu galéré car QT traite les string en représentant chaque caractère sur 16 bit alors forcément ça ne marchait pas !



Voilà donc un outil qui permet de mieux comprendre ce qui se passe sur le réseau NMEA 0183. IL est perfectible dans bien des domaines, dans une prochaine aventure je vais m'intéresser aux trames AIS et ensuite j'essaierai de voir comment fonctionne le NMEA 2000... A suivre...
Si vous le souhaitez, vous pouvez télécharger l'exécutable de cette application dans le dernier chapitre de cette analyse sur ce site...

accueil navigation

Bricolage Robotique Informatique Peinture Voyage
Téléc. portail Le robot "mécano" Astuces informatique Henri Bertrou Auvergne
Bat. Iphone 6S Le robot "solaire" Réseau couche app. Jean-Michel Castille Floride
Robot piscine Servo et IR" Réseau Les couches New York
Xiaomi M365 Le robot "thymio" Réseaux Outils L'Ouest américain
Mac Mini Le robot "Rovio" Unités grandeur inf. L'Ile Maurice
Putty SSH Windows L'Italie / Venise
Bases Raspberry Tunisie
Termius IPhone/IPad Grece
Le vieux ZX 81
...
Navigation La Rochelle CNC / Imp3D Electronique Programmation
Rencontre dauphins Les Minimes Construction CNC Alim. TPL 5110 Doc. programme
Analyse NMEA 0183 Le Vieux port CNC du commerce Carte ESP8266 Indent programme
graph. NMEA 0183 L'Ile de Ré Martyr CNC ESP8266 1 relai Prog. objet
Analyse trames AIS A visiter Réa. imp. 3D ESP8266 Alarme Prog. procédurale
Analyse AIS TCP-IP Cura impression 3D ESP8266 MQTT
Sortie en ketch Plateau CR10 ESP8266 Temp.
Echange GPS C80 Anémomètre.
HP Sun-Odyssey CNC / 3D en vrac MCP9808 Librairie
LCD yanmar Saisie Oled
Testeur nmea esp1 i2c