![]() |
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) |