La bibliothèque libNMEAParser permet à tout utilisateur de lire les trames NMEA 0183 et de récupérer les informations qu'elles contiennent. Elle est principalement destinée aux développeurs souhaitant interfacer un GPS par exemple et afficher ou bien traiter les données reçues.
libNMEAParser et libNMEAParser-dev sont disponibles sous forme de paquets binaires x86, x86_64 et LPIA pour Gutsy Gibbon sur le dépot de Spomky.
Rendez-vous sur sa page pour pouvoir utiliser son dépôt.
Si vous souhaitez récupérer les sources complètes et les recompiler, installez bzr version 0.95 ou supérieur ainsi que build-essential.
Cette bibliothèque ne nécessite aucun autre logiciel pour fonctionner hormis libc.
Si vous utilisez Gutsy Gibbon, installez simplement le paquet libnmeaparser ou libnmeaparser-dev
Depuis un terminal exécutez les lignes suivantes :
bzr branch http://bazaar.launchpad.net/~spomky/nmeaparser/NMEAParser cd NMEAParser/ make sudo make install
Désinstallez simplement le paquet libnmeaparser ou libnmeaparser-dev.
Depuis un terminal placez-vous dans le répertoire du code source et exécutez les lignes suivantes :
sudo make uninstall
Une fois libnmeaparser-dev ou les sources installée, vous disposerez de la bibliothèque en elle-même mais aussi des en-têtes.
LibNMEAParser se présente sous forme d'une série d'objets C++ nommés NMEAParser_xxx où xxx représente l'identifiant de la trame. Par exemple une trame GSV (identification et positionnement des satellites en vue) sera analysées par l'objet NMEAParser_GSV.
L'ensemble des objets C++ ont les mêmes méthodes ; les voici :
Il s'agit d'un deuxième constructeur permet de donner immédiatement la trame à analyser. Par exemple pour construire un objet et analyser une trame RMC vous pouvez procéder ainsi :
NMEAParser_RMC ma_variable( "$GPRMC,194504.000,A,4741.0590,N,00237.9215,E,0.00,0.00,200208,,,A*68" );
Pour connaitre le statut de l'analyse, il vous suffiet de récupérer la valeur suivante :
ma_variable.status;
Le type STATUS est ses énumérations sont définis dans le fichier NMEAParser.h
Permet d'analyser une trame. Exemple :
NMEAParser_RMC ma_variable; ma_variable.parse( "$GPRMC,194504.000,A,4741.0590,N,00237.9215,E,0.00,0.00,200208,,,A*68" );
Efface l'intégralité de l'analyse et réinitialise l'objet.
ma_variable.clear();
Permet de copier un objet.
NMEAParser_RMC ma_variable1, ma_variable2; ma_variable1.parse( "$GPRMC,194504.000,A,4741.0590,N,00237.9215,E,0.00,0.00,200208,,,A*68" ); ma_variable2 = ma_variable1;
La récupération des données se fait de manière identique d'un objet à l'autre. Par contre les type et noms de ces données sont différents dans la mesure où chaque trame contient des données qui lui sont propres. Nous vous invitons à regarder chaque en-tête pour trouver les données proposées par un objet. Dans tous les cas les variables "status" (précise si l'analyse à eu lieu et son résultat) et "sentence" (trame analysée) sont toujours disponibles.
De nombreuses trames ne sont pas encore supportées ; cela prend du temps. Vous pouvez aider à la création de nouveau objets C++ permettant d'analyser ces trames inconnues. Voici les fichiers de bases à créer pour y parvenir. Ces fichiers sont documentés pour vous apporter les informations nécessaires. Vous pouvez toutefois contacter le projet NMEAParser sur le site de Launchpad et poser vos questions en cas de besoin.
Contributeurs : .