Table des matières

, ,

libNMEAParser

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.

Pré-requis

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.

Installation

Via les paquets

Si vous utilisez Gutsy Gibbon, installez simplement le paquet libnmeaparser ou libnmeaparser-dev

Via le code source

Depuis un terminal exécutez les lignes suivantes :

bzr branch http://bazaar.launchpad.net/~spomky/nmeaparser/NMEAParser
cd NMEAParser/
make
sudo make install

recompiler le code source

Suppression

Via les paquets

Désinstallez simplement le paquet libnmeaparser ou libnmeaparser-dev.

Via le code source

Depuis un terminal placez-vous dans le répertoire du code source et exécutez les lignes suivantes :

sudo make uninstall

Développement

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.

Utilisation d'un objet et ses méthodes

L'ensemble des objets C++ ont les mêmes méthodes ; les voici :

NMEAParser_xxx( const std::string sentence )

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

STATUS parse( std::string sentence )

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" );

void clear( void )

Efface l'intégralité de l'analyse et réinitialise l'objet.

ma_variable.clear();

L'opérateur "="

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;

Récupération des données

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.

Trames non-supportées

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 : FIXME.