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

LabVIEW Discussion :

[LabVIEW 8.6] Obtenir une position GPS et l'afficher


Sujet :

LabVIEW

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut [LabVIEW 8.6] Obtenir une position GPS et l'afficher
    Bonjour à tous,

    Je cherche à obtenir une position GPS et à pouvoir l'afficher l'afficher dans LabVIEW avec un rafraichissement tous les 500ms.

    Bien évidemment dans mon ordinateur, j'ai une antenne GPS.

    J'aimerais qu'on m'éclaire sur la façon de faire, comment obtenir ces données etc....

    Merci à tous.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Apparemment y a pas grand monde sur le fil

    Bon les données arrivent par un port COM, donc j'utilise la fonction VISA Serial.

    Cependant j'ai des lignes que je dois transformer.
    Voilà un extrait d'une donnée GPS :
    $GPGGA,113202.000,4834.4492,N,00212.2107,E,1,7,1.55,80.9,M,47.4,M,,*6A
    $GPGSA,A,3,04,13,07,25,20,32,23,,,,,,1.83,1.55,0.97*03
    $GPGSV,3,1,11,13,82,212,35,04,64,264,38,23,60,059,26,25,42,149,37*7F
    $GPGSV,3,2,11,20,32,100,23,02,31,308,,37,31,154,38,07,24,165,43*79
    $GPGSV,3,3,11,32,08,096,20,17,07,217,,16,02,071,*4B
    $GPRMC,113202.000,A,4834.4492,N,00212.2107,E,3.14,194.33,220409,,,A*6F
    $GPVTG,194.33,T,,M,3.14,N,5.81,K,A*3B
    Et j'aimerais obtenir :
    Latitude : 48,574153°
    Longitude : 2,203512°
    Altitude :80.9 Mètres
    Je dois donc garder seulement la ligne commençant par $GPGGA (la première), la formater puis appliquer un calcul pour obtenir mes coordonnées GPS. Et ensuite les mettre dans des afficheurs.

    Ca fait pas mal de choses à faire et je ne sais pas du tout comment attaquer la chose.

    Si vous pouviez m'aider à formater cette chaine ça m'aiderait beaucoup.

    Merci d'avance.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour K-RK-S
    Je pense qu'on peut utiliser deux boucle while. Le premier sers a lire les données et les enregistre dans un FIFO.
    Dans le deuxième boucle, on dépile ce FIFO et cherche $. d’apres ce $ , on peux filtrer chaque ligne, et après si c'est une ligne qui commence par $GPGGA, on fait la calcul et afficher le résultat.
    J'espère ça t'aidera.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Merci je pensais également utiliser un "FIFO"

    Mon problème est plus dans la reconnaissance de la ligne et le formatage de cette ligne je ne pas quelles fonctions utiliser.

    $GPGGA,113202.000,4834.4492,N,00212.2107,E,1,7,1.55,80.9,M,47.4,M,,*6A

    Déjà qu'il reconnaisse le $GPGGA, ensuite, qu'il extrait, l'heure ( GMT ) donc dans notre ligne c'est 11h32min et 2 secondes.

    Qu'il extrait 4834.4492, lui dire de déplacer la virgule à 48 et qu'il applique le calcul à ,344492 et ensuite afficher la valeur 48,574153°

    De même pour 00212.2107.

    Extraire le 80,9 et l'afficher ( enfin quand j'en serais à la, j'aurais pas de soucis ^^ )

    Donc j'ai vraiment le plan de ce que je dois faire dans ma tête mais ce sont les fonctions dans LabVIEW que je ne connais pas, doncsi vous pouvez me renseigner sur les fonctions "chaine" extraire, reconnaitre ces caractères etc... Parce que j'ai beau regarder et en essayer pas mal je comprend pas forcément ce qu'il faut mette à chaque fois

  5. #5
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Salut,

    Regarde la fonction ScranFromString: cela devrait te decomposer ta chaine.

    a+

  6. #6
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Je dirais que tu peux t'en sortir avec des fonctions "sous ensemble d'une chaîne" (Et "concactener")...

    Petit screen pour l'heure...

    Pour la latitude et cie, même combat, sans oublier de convertir les chaînes en nombre pour pouvoir appliquer ton algorithme (que je n'ai pas su déceler ^^)
    Images attachées Images attachées  

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Merci à tous les deux !

    L'algorithme est tout bête

    par exemple tu prends 4834.4492 N

    Tu récupères seulement le 344492 et tu divises par 60

    Car pour les GPS tu as les degrés décimaux, les degrés minutes secondes etc...

  8. #8
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Ah oui d'accord, tout simplement ^^'

    Pour retirer le point qui va te géner, il y a la fonction "rechercher et remplacer". Tu remplaces . par "", tu convertis en nombre, tu appliques l'algo, tu ajoutes à ta partie décimale et c'est gagné \o/

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Voila, je me confronte au problème de la virgule. lorsque je le convertis en nombre et que je le divise il me met une virgule et il est pas vraiment précis.

    Ce n'est pas possible de diviser la "chaine" directement et de choisir le nombre de chiffres de précision ?

    Si possible 10 chiffres après le 48.

    En fait c'est bon j'ai réussi

  10. #10
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Tu veux dire que ton calcul renvoie 48,574853 et que tu voudrais 48,5748533333 ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Ouaip ! Mais c'est bon j'ai réussi !

    Me reste plus qu'à dire qu'il faut prendre seulement les lignes avec $GPGGA

  12. #12
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Hu comment t'as fait, ça m'interesse =O

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Je te poste ça dès que j'ai terminé !

    Je cherche juste la fonction pour dire

    s'il y a $GPGGA dans les 6 premiers caractères c'est bon
    et si y'a pas ça, on exclu la ligne ou on la jette ou je sais pas quoi

    J'ai essayé plusieurs fonctions chaines sans succès.


    J'ai trouvé ! Je met ça au propre et je le poste !

    Dernier petit soucis, quand les lignes sont mauvaises, il me met toujours "hmins" dans la case, je voudrais que la donnée GPS précédente valide y soit

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Voila une partie de mon VI, quelqu'un aurait-il une solution pour qu'il ne m'affiche pas les caractères du dernier "concaténage" lorsque les valeurs sont fausses ? et qu'il affiche la dernière valeur bonne ?

    Merci !

  15. #15
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Avec un noeud de propriété "valeur" dans une boucle condition?

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Merci je vais regarder !

    Le port COM que je veux ouvrir ne s'ouvre pas lorsque je lance le vi sur l'ordi avec GPS intégré... comment faire pour que ça ce lance ?

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Salut à tous, je me suis pas encore débrouillé avec ma condition pour que ça n'affiche rien....

  18. #18
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Pour l'indicateur "heure" qui t'affiche "hmins" quand la ligne est mauvaise ?

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    562
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 562
    Points : 369
    Points
    369
    Par défaut
    Si, c'est bon, j'ai réussi,maintenant il suffit de laisser la dernière donnée "valide". Comment faire ? Que ça soit pour l'heure, la latitude et la longitude.

  20. #20
    Membre régulier Avatar de Maxoow
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 73
    Points : 82
    Points
    82
    Par défaut
    Tu crées ton test de donnée fausse (à toi d'établir le critère) et tu injectes le résultat dans une structure condition :
    Si la donnée est fausse, tu renvois la dernière correcte dans ton indicateur au moyen d'un registre à décalage.
    Si elle est vraie, tu affiches la courrante.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Décaler en mètre une position GPS
    Par saraza dans le forum Objective-C
    Réponses: 0
    Dernier message: 01/08/2014, 05h14
  2. Comparer une position GPS avec une liste de POI
    Par alain.lc dans le forum Débuter
    Réponses: 3
    Dernier message: 02/10/2008, 09h47
  3. Combien ca coute une position gps
    Par moutey dans le forum Composants
    Réponses: 7
    Dernier message: 21/04/2008, 13h44
  4. Obtenir la position du curseur dans une Image
    Par bastoune dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/11/2003, 21h02

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