Routine d'attente
Utile dans un script, une boucle d'attente ; interrompue par frappe d'une touche
elle retourne son code (version WinX) :
kbhit() et getch() n'existent pas sous Linux, il faut passer le terminal
en "raw mode", on trouvera des exemples sur le net. Ou simplement, en acceptant
de valider l'entrée par un CR et que le caractère soit affiché :
Calcul de dates
Le programme ci-dessous contourne la limitation des fonctions de temps du C de 1970 à janvier 2038 (le nombre de
secondes passé en argument est pris en entier signé) en procédant par fenêtrage :
Lecture données GPS
Ce programme lit les données de GPS branchés sur port RS232 ou USB (via un driver émulant un port COM)
et affiche la position et les informations sur les satellites reçus. Voir
Connexion GPS-PC pour le principe.
Le port série est initialisé par une commande système, le GPS doit être actif avant lancement du programme.
La configuration des time out, faite ici avec les APIs Win, évite une attente infinie s'il n'y a pas de
réception.
Les messages transmis (NMEA 0183), terminés par 'CRLF', permettent leur lecture en mode texte
et la récupération des données par le format image.
Le programme comporte quelques fonctions de navigation à partir des données recueillies : homme à la mer
(voir la rubrique "Navigation" du site pour les calculs), enregistrement en fichier, loch journalier (par
intégration de la vitesse fond) et mise à jour des date et heure du PC.
Il a été testé avec un Magellan™ Meridian (sortie RS232) et une souris GPS BU-353S4 (prise USB).
Tripmaster
Pour revenir sur terre... Un tripmaster est un compteur kilométrique utilisé en rallye automobile lors des
épreuves de régularité (vitesse moyenne sur un parcours) qui supplée le compteur ordinaire de la voiture
trop imprécis. Les appareils utilisent soit un capteur de vitesse de rotation d'une roue et doivent être
étalonnés, soit prennent la vitesse donnée par un GPS. D'où le programme ci-dessous, adapté du précédent :
- calcul de la distance parcourue par intégration de la vitesse, temps passé, vitesse moyenne,
- suspension / reprise du comptage.
On pourra ajouter un deuxième compteur, l'affichage des distance et temps restants si les informations
du parcours sont entrées...