Salut à tous,

J'essaye de collecter des données en temps réel d'un GPS par un ordinateur en utilisant Matlab. Le GPS fonctionne en RTK, càd qu'il envoye ses données de positionnement tous les 10 mètres (ou toutes les 10 secondes disons...)

voici le début du code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
gps=serial('COM1');
gps.Baudrate=115200;
fopen(gps);
gps.ReadAsyncMode='manual';
readasync(gps);
position=fscanf(gps)

L'exécution de ce code fonctionne, càd que matlab me donne: position="la ligne de valeur de la position du GPS". Mon problème est que je voudrais que Matlab exécute le fscanf en continu et qu'il me donne la position dès que celle-ci a changée.

il faudrait donc mettre le "position=fscanf(gps)" dans une boucle mais que le déroulement de cette boucle soit synchro avec l'exportation des données du GPS (qui est trop variable pour que je mette un "pause(10)" par exemple)

Je sais pas si je suis très clair , mais en fait je voudrais que matlab m’affiche les données crachée par le gps comme dans l’hyperterminal de windows, càd qu’il me sorte la donnée dès qu’il l’a possède dans l’objet serial, sans devoir exécuter manuellement « fscanf ».

Voilà, j’espère que qqn pourra m’aider, après je dois encore faire une mesure avec un analyseur vectoriel au moment de la mesure du gps ! bcp de synchro tout ça !

ah oui: Matlab7.4.0 student version
Win XP
GPS Leica GX1200, par port serie RS232

julien