Delphi par l'exemple |
Projet : créer une application Delphi pour la lecture et le traitement de données GPS.
Nous
étudierons les différents éléments à utilser
séparément avant de les intégrer dans le programme final.
Les éléments utilisés seront les plus simples possibles
au départ. Des améliorations (comme le traitement des exceptions)
seront faites par la suite.
Que nous faut-il d'essentiel ?
1- lire les données du récepteur gps, généralement par l'intermédiaire d'un port série ou usb ;
2- pouvoir sélectionner le port série ;
3 - récupérer les données et les traiter jusqu'à fermeture de l'application ; le programme va donc boucler sur un bloc d'instructions et nous devrons pour cela utiliser un thread (quoique !) ;
4 - mon but est ensuite de reproduire graphiquement les écrans de mon récepteur Magellan GPS 300, puis de faire le même logiciel pour un pocket pc. Je viens d'installer Lazarus mais je plante dans l'installation du compilateur WinCE. Je verrai ça plus tard, quand le logiciel PC sera bien avancé. Les conseils seront les bienvenus. Les programmes présentés sont écrits avec Delphi 5 et sont aussi testés avec Lazarus ; jusque là (parties 1 et 2), pas de problème.
S'il y a des programmeurs intéressés par ce projet et qui veulent bien constituer un groupe d'étude, je suis partant. Tous les codes sources seront disponibles.
contact : graccus'arobe'free.fr
Voici comment se présente notre programme actuellement :
Au lieu de vouloir construire le projet en une seule fois, nous allons tester les éléments dont nous aurons besoin séparément. Cela facilite la mise au point. Il vaut mieux faire celle-ci sur des petits programmes puis les assembler ensuite. Cela ressemble à la méthode du Divide and Conquer, ou si vous préférez cela revient à appliquer le Discours de la méthode de Descartes.
Partie 1 : affichage des ports série disponibles de l'ordinateur ici
Partie 2 : lecture des données sur le port COM ici
Partie 3 : utilisation d'un thread ici
Annexe
- les trames du gps : http://www.gpspassion.com/forumsen/topic.asp?TOPIC_ID=17661