Capture NMEA rs232

bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015 - 21 déc. 2008 à 19:03
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015 - 5 janv. 2009 à 19:55
bonjour,
j'ai un petit souci :
j'utilise le code de cette adresse : http://www.vbfrance.com/codes/DECODER-CODE-NMEA-ENVOYER-GPS-AIDE-MSCOMM-RS232_26380.aspx
tout fonctionne parfaitement le souci c'est que dans les donnees du port rs232 j'aimerais recuperer les donnees d'une deuxieme phrase qui commence par "HDHDT" (compas), mais des que j'essai les autres donnees(donnees d'origine) ne se cale plus, les valeurs changent tout le temps , alors qu'avant tout fonctionnais bien.

merci d'avance pour vos reponses.

bubbledesavon

4 réponses

bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
21 déc. 2008 à 22:45
pour plus de detail les phrases sont sur le meme port com
voici un exemple de mon code pour deux phrases
la partie bleu seul fonctionne .
quand la partie violet est ajouté au code , la valeur recuperee change tout le temps.

On Error Resume Next
    MSComm1.InputLen = 0
    MSComm1.InBufferCount = 0
    TmpChaine = MSComm1.Input           'Reçois les phrases envoyer par les satellites
    j = InStr(TmpChaine, "$GPRMC")       'Chercher le départ de la phrase qui nous intéresse
    Do While Len(TmpChaine) - j < 38  'Vérifier si la phrase n'arrive pas à la fin
        On Error Resume Next
        TmpChaine = TmpChaine & MSComm1.Input   'Stocker la phrase
    Loop
    valeur_rs232_recuperee = TmpChaine
 
    k = InStr(TmpChaine2, "$HDHDT")       'Chercher le départ de la phrase qui nous intéresse
    Do While Len(TmpChaine2) - k < 1     'Vérifier si la phrase n'arrive pas à la fin
        On Error Resume Next
        TmpChaine2 = TmpChaine2 & MSComm1.Input   'Stocker la phrase
    Loop
    valeur_rs232_recuperee2 = TmpChaine2
  Label1.Caption = valeur_rs232_recuperee2
Merci d'avance pour votre aide.
0
leventdelest Messages postés 1 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 3 janvier 2009
3 janv. 2009 à 20:07
 
Salut,

A mon avis l'entête «$HDHDT » n'est pas une entête valide en NMEA wgs84, elles commencent toutes par $GP, $LC, $OM ou $II et son suivient de GGA, GLL, GSA, GSV, VTG et RMC. Les données relatif au Cap se trouvent $GPVTG ou $GPRMC
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
5 janv. 2009 à 19:51
salut ,
il faut savoir que les entete NMEA n'ont pas d'importance et represente l'appareil qui emet la phrase GP=global positionning ,II=interne instrument, HC=heading compass ,SD=SounDer etc..... et les donnees du cap (SOG) se trouve effectivement dans ces phrases , mais dans beaucoup d'autres , par contre le COG cap vrai se trouve dans la phrase $xxHDT,$xxHDG.

et pour la norme WGS84 n'a pas de rapport avec le NMEA mais avec uniquement les gps, avant il  fonctionnaient en ED50 (europeen d.... 1950) et effectivement aujourd'hui c'est le WGS84 (World Global S.... 1984) .
cela ne joue que sur les position des satelittes.
le decalage entre c'est deux normes gps est de 150 metres ce qui a permis de derouter pas les attaques en irak...

bubbledesavon

ps: je crois que c'etait mon timer qui etait trop rapide.
0
bubbledesavon Messages postés 66 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 6 mars 2015
5 janv. 2009 à 19:55
j'oubliais,

les lettres suivant les deux premiere sont la signification du signal:
$SDDBT= SounDer Depth Botom Transducer
$HCHDT=Heading Compass Heading Direction True
.....


 


je ne connais pas par coeur les denominations .


 


bubbledesavon
0
Rejoignez-nous