IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Signal Discussion :

Lecture d'un objet serial GPS


Sujet :

Signal

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Lecture d'un objet serial GPS
    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

  2. #2
    Futur Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut ça y est j'ai trouvé
    salut,

    bon ben je vois que je ne vous inspire pas trop!

    en fait je vous comprend car mon problème n'en était pas vriament un. Avec une simple boucle et le mode ReadAsync mis sous manual, j'arrive à avoir ce que je voulais: Matlab attend bien sagement qu'une nouvelle mesure du GPS arrive dans le COM1

    voilà le script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    gps = serial('COM1'); 
    gps.BaudRate=115200;      
    gps.Timeout=100;
    fopen(gps);
    gps.ReadAsyncMode='manual';
    readasync(gps);
     
    %%% Start the measurements...
    n=5;
    for i=1:n 
       p=fscanf(gps)
     
       %%% run GPR measurement
       run controlzvre_IMM;
     
       %%% sound when the GPR measurement is over
       sound(1);
     
       %%% save GPS position (p) and GPR signal S11
       Mname=['GPR' num2str(i)];
       eval(['save data\' '''' Mname '''' ' p S11' ';']);   
    end
     
    %%% disconnect and clean up
    fclose(gps);
    delete(gps);
    clear gps;

  3. #3
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 313
    Points : 52 905
    Points
    52 905
    Par défaut
    Citation Envoyé par juminet Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       %%% save GPS position (p) and GPR signal S11
       Mname=['GPR' num2str(i)];
       eval(['save data\' '''' Mname '''' ' p S11' ';']);
    Pas besoin de EVAL ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nom=sprintf('data\\GPR%d',i);
    save(nom,'p','S11');

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Lecture d'un objet JSON
    Par steackfrite dans le forum jQuery
    Réponses: 24
    Dernier message: 07/02/2014, 14h44
  2. Lecture d'un objet depuis un fichier bloquant
    Par dest dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 11/05/2007, 16h19
  3. Lecture / écriture d'objets sur le disque dur ?
    Par miria.vhg dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/02/2007, 15h21
  4. [Sessions] Session + Serialize + Objets?
    Par Chiwawa dans le forum Langage
    Réponses: 2
    Dernier message: 28/09/2005, 20h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo