![]() |
SysIo
1.9.0
Embedded Library and tools
|
Ce module permet de gérer des récepteurs GPS gérés par gpsd http://www.catb.org/gpsd/ . Il utilise donc libgps.
Le serveur gpsd et libgps doivent être installés et configurés correctement...
Sous debian, il faut faire quelque chose comme ceci :
Pour tester la bonne réception, on peut afficher les trames NMEA 0183 reçues:
On peut aussi afficher les informations reçues sous forme plus exploitables avec cgps ou xgps.
Classes | |
| class | xGps |
| Classe permettant de manipuler un GPS Classe opaque pour l'utilisateur. More... | |
Functions | |
| bool | bGpsDataAvailable (struct xGps *gps) |
| Indique que des données de position sont disponibles. More... | |
| bool | bGpsIsFix (struct xGps *gps) |
| Indique si le GPS est fixé More... | |
| char * | cGpsAngleToStr (eGpsAngleFormat format, double f, char *str, size_t strsize) |
| Convertit un angle en degrés décimaux en son équivalent humain. More... | |
| const char * | cGpsStrError (struct xGps *gps) |
| Message d'erreur. More... | |
| char * | cGpsTimeToStr (eGpsTimeFormat format, timestamp_t t) |
| Convertit un temps système en son équivalent humain. More... | |
| double | dGpsAltitude (struct xGps *gps) |
| Altitude en mètres Valide uniquement en mode 3D. More... | |
| double | dGpsAltitudeError (struct xGps *gps) |
| Erreur position verticale (Altitude) en mètres (+/-) More... | |
| double | dGpsClimb (struct xGps *gps) |
| Vitesse verticale par rapport à la terre en mètres par seconde (m/s) More... | |
| double | dGpsClimbError (struct xGps *gps) |
| Erreur de vitesse verticale en m/s (+/-) More... | |
| double | dGpsLatitude (struct xGps *gps) |
| Latitude en degrés décimaux (+N/-S) More... | |
| double | dGpsLatitudeError (struct xGps *gps) |
| Erreur position Y (Latitude) en mètres (+/-) More... | |
| double | dGpsLongitude (struct xGps *gps) |
| Longitude en degrés décimaux (+E/-W) More... | |
| double | dGpsLongitudeError (struct xGps *gps) |
| Erreur position X (Longitude) en mètres (+/-) More... | |
| double | dGpsSpeed (struct xGps *gps) |
| Vitesse horizontale par rapport à la terre en mètres par seconde (m/s) More... | |
| double | dGpsSpeedError (struct xGps *gps) |
| Erreur de vitesse horizontale en m/s (+/-) More... | |
| double | dGpsTimeError (struct xGps *gps) |
| Erreur sur l'heure en secondes. More... | |
| double | dGpsTrack (struct xGps *gps) |
| Cap/Route en degrés par rapport au Nord vrai. More... | |
| double | dGpsTrackError (struct xGps *gps) |
| Erreur de cap en degrés (+/-) More... | |
| eGpsMode | eGpsFixMode (struct xGps *gps) |
| Mode de positionnement (2D/3D) More... | |
| eGpsStatus | eGpsFixStatus (struct xGps *gps) |
| Etat du GPS. More... | |
| int | iGpsError (struct xGps *gps) |
| Code d'erreur. More... | |
| int | iGpsPrintData (struct xGps *gps, eGpsTimeFormat eTime, eGpsAngleFormat eDeg) |
| Affiche les données essentielles du dernier fix. More... | |
| int | iGpsRead (struct xGps *gps, struct gps_data_t *data) |
| Copie les données de position dans une structure gps_data_t. More... | |
| int | iGpsSetErrorCallback (struct xGps *gps, vGpsErrorCallback callback) |
| Installe le gestionnaire d'erreur. More... | |
| int | iGpsSetFixCallback (struct xGps *gps, vGpsFixCallback callback) |
| Installe le gestionnairede fix. More... | |
| timestamp_t | tGpsTime (struct xGps *gps) |
| Heure de la position (fix time) More... | |
| void | vGpsClearErrorCallback (struct xGps *gps) |
| Invalide le gestionnaire d'erreur. More... | |
| void | vGpsClearFixCallback (struct xGps *gps) |
| Invalide le gestionnaire de fix. More... | |
| void | vGpsDelete (struct xGps *gps) |
| Fermeture et destruction d'un GPS. More... | |
| struct xGps * | xGpsNew (char *server, char *port) |
| Création d'un GPS. More... | |
Macros | |
| #define | GPS_ISNAN(x) ((x) != (x)) |
| Permet de tester si une valeur de type double est NaN (incorrecte) | |
| #define | STATUS_DGPS_FIX 2 |
Typedefs | |
| typedef void(* | vGpsErrorCallback) (int error) |
| Fonction de gestion des erreurs. More... | |
| typedef void(* | vGpsFixCallback) (struct xGps *gps) |
| Fonction de gestion des événements de fix. More... | |
Enumerations | |
| enum | eGpsAngleFormat { eDegDd = 0, eDegDdMmSs = (1<<0), eDegDdMm = (1<<1), eDegAprsLat = (1<<2), eDegAprsLong = (1<<3), eDegAprs = eDegAprsLat | eDegAprsLong } |
| Liste des formats d'affichage de laltitude/longitude. More... | |
| enum | eGpsError { eGpsNoError = 0, eGpsArgumentError = -1, eGpsReadError = -2, eGpsFixError = -3, eGpsMemoryError = -4, eGpsServerError = -5, eGpsThreadError = -6 } |
| Liste des erreurs. | |
| enum | eGpsMode { eModeNotSeen = MODE_NOT_SEEN, eModeNoFix = MODE_NO_FIX, eMode2d = MODE_2D, eMode3d = MODE_3D } |
| Liste des modes du GPS. More... | |
| enum | eGpsStatus { eStatusNoFix = STATUS_NO_FIX, eStatusFix = STATUS_FIX, eStatsDgpsFix = STATUS_DGPS_FIX } |
| Différents états du récepteur GPS. More... | |
| enum | eGpsTimeFormat { eTimeLocal, eTimeUtc, eTimeAprs } |
| Liste des formats d'affichage de date/heure. More... | |
| typedef void(* vGpsErrorCallback) (int error) |
#include <gps.h>
Fonction de gestion des erreurs.
Ce type de fonction est définie par l'utilisateur et installée à l'aide de iGpsSetErrorCallback().
La fonction installée sera appelée à chaque erreur lors du processus de réception. Elle est exécutée dans un autre thread que le programme appelant.
| typedef void(* vGpsFixCallback) (struct xGps *gps) |
#include <gps.h>
Fonction de gestion des événements de fix.
Ce type de fonction est définie par l'utilisateur et installée à l'aide de iGpsSetFixCallback().
La fonction installée sera appelée à chaque message fix correctemen formaté. Elle est exécutée dans un autre thread que le programme appelant.
| enum eGpsAngleFormat |
#include <gps.h>
Liste des formats d'affichage de laltitude/longitude.
| Enumerator | |
|---|---|
| eDegDd |
DD.dddddd. |
| eDegDdMmSs |
DD MM' SS.sss". |
| eDegDdMm |
DD MM.mmmm'. |
| eDegAprsLat |
DDMM.mmX: X -> N(+) ou S(-) |
| eDegAprsLong |
DDDMM.mmX: X -> E(+) ou W(-) |
| eDegAprs |
for iGpsPrintData() only |
Definition at line 127 of file gps.h.
| enum eGpsMode |
| enum eGpsStatus |
| enum eGpsTimeFormat |
| bool bGpsDataAvailable | ( | struct xGps * | gps | ) |
#include <gps.h>
Indique que des données de position sont disponibles.
| gps | pointeur sur objet GPS |
| bool bGpsIsFix | ( | struct xGps * | gps | ) |
#include <gps.h>
Indique si le GPS est fixé
Cela indique que le GPS a réussi à calculer une position à partir des données reçues des satellites.
| gps | pointeur sur objet GPS |
| char* cGpsAngleToStr | ( | eGpsAngleFormat | format, |
| double | f, | ||
| char * | str, | ||
| size_t | strsize | ||
| ) |
#include <gps.h>
Convertit un angle en degrés décimaux en son équivalent humain.
| format | format choisi |
| f | valeur à convertir |
| str | buffer sur la chaine de caractère résultat |
| strsize | taille du buffer str |
| const char* cGpsStrError | ( | struct xGps * | gps | ) |
#include <gps.h>
Message d'erreur.
| gps | pointeur sur objet GPS, peut être NULL (cas où xGpsNew() a échouée) |
| char* cGpsTimeToStr | ( | eGpsTimeFormat | format, |
| timestamp_t | t | ||
| ) |
#include <gps.h>
Convertit un temps système en son équivalent humain.
| format | |
| t | temps en microsecondes depuis le 1er janvier 1970 |
| double dGpsAltitude | ( | struct xGps * | gps | ) |
#include <gps.h>
Altitude en mètres Valide uniquement en mode 3D.
| gps | pointeur sur objet GPS |
| double dGpsAltitudeError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur position verticale (Altitude) en mètres (+/-)
| gps | pointeur sur objet GPS |
| double dGpsClimb | ( | struct xGps * | gps | ) |
#include <gps.h>
Vitesse verticale par rapport à la terre en mètres par seconde (m/s)
| gps | pointeur sur objet GPS |
| double dGpsClimbError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur de vitesse verticale en m/s (+/-)
| gps | pointeur sur objet GPS |
| double dGpsLatitude | ( | struct xGps * | gps | ) |
#include <gps.h>
Latitude en degrés décimaux (+N/-S)
| gps | pointeur sur objet GPS |
| double dGpsLatitudeError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur position Y (Latitude) en mètres (+/-)
| gps | pointeur sur objet GPS |
| double dGpsLongitude | ( | struct xGps * | gps | ) |
#include <gps.h>
Longitude en degrés décimaux (+E/-W)
| gps | pointeur sur objet GPS |
| double dGpsLongitudeError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur position X (Longitude) en mètres (+/-)
| gps | pointeur sur objet GPS |
| double dGpsSpeed | ( | struct xGps * | gps | ) |
#include <gps.h>
Vitesse horizontale par rapport à la terre en mètres par seconde (m/s)
| gps | pointeur sur objet GPS |
| double dGpsSpeedError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur de vitesse horizontale en m/s (+/-)
| gps | pointeur sur objet GPS |
| double dGpsTimeError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur sur l'heure en secondes.
| gps | pointeur sur objet GPS |
| double dGpsTrack | ( | struct xGps * | gps | ) |
#include <gps.h>
Cap/Route en degrés par rapport au Nord vrai.
| gps | pointeur sur objet GPS |
| double dGpsTrackError | ( | struct xGps * | gps | ) |
#include <gps.h>
Erreur de cap en degrés (+/-)
| gps | pointeur sur objet GPS |
#include <gps.h>
Mode de positionnement (2D/3D)
| gps | pointeur sur objet GPS |
| eGpsStatus eGpsFixStatus | ( | struct xGps * | gps | ) |
#include <gps.h>
Etat du GPS.
| gps | pointeur sur objet GPS |
| int iGpsError | ( | struct xGps * | gps | ) |
#include <gps.h>
Code d'erreur.
| gps | pointeur sur objet GPS, peut être NULL (cas où xGpsNew() a échouée) |
| int iGpsPrintData | ( | struct xGps * | gps, |
| eGpsTimeFormat | eTime, | ||
| eGpsAngleFormat | eDeg | ||
| ) |
#include <gps.h>
Affiche les données essentielles du dernier fix.
| gps | pointeur sur objet GPS |
| eTime | |
| eDeg |
| int iGpsRead | ( | struct xGps * | gps, |
| struct gps_data_t * | data | ||
| ) |
#include <gps.h>
Copie les données de position dans une structure gps_data_t.
Voir page man 3 de libgps pour utilisation
| gps | pointeur sur objet GPS |
| data |
eGpsError | int iGpsSetErrorCallback | ( | struct xGps * | gps, |
| vGpsErrorCallback | callback | ||
| ) |
#include <gps.h>
Installe le gestionnaire d'erreur.
| gps | pointeur sur objet GPS |
| callback |
eGpsError | int iGpsSetFixCallback | ( | struct xGps * | gps, |
| vGpsFixCallback | callback | ||
| ) |
#include <gps.h>
Installe le gestionnairede fix.
| gps | pointeur sur objet GPS |
| callback |
eGpsError | timestamp_t tGpsTime | ( | struct xGps * | gps | ) |
#include <gps.h>
Heure de la position (fix time)
| gps | pointeur sur objet GPS |
| void vGpsClearErrorCallback | ( | struct xGps * | gps | ) |
#include <gps.h>
Invalide le gestionnaire d'erreur.
| gps | pointeur sur objet GPS |
| void vGpsClearFixCallback | ( | struct xGps * | gps | ) |
#include <gps.h>
Invalide le gestionnaire de fix.
| gps | pointeur sur objet GPS |
| void vGpsDelete | ( | struct xGps * | gps | ) |
#include <gps.h>
Fermeture et destruction d'un GPS.
| gps | pointeur sur objet GPS |
| struct xGps* xGpsNew | ( | char * | server, |
| char * | port | ||
| ) |
#include <gps.h>
Création d'un GPS.
| server | adresse IP ou hostname du serveur (localhost généralement) |
| port | port du serveur (DEFAULT_GPSD_PORT généralement) |