Décoder un code nmea envoyer par un gps (à l'aide mscomm - rs232)

Contenu du snippet

Suite d'une demande d'un ami de Vbfrance....
Ce code permet de décoder les phrases reçues par le GPS. Les phrases sont sous forme de code NMEA (faut programmer votre GPS sur mode NMEA).
On utilise le composant Mscomm de Microsoft qui nous permet d'acquise les informations du GPS par le port RS232.

Source / Exemple :


Private Sub Form_Load()
' faut pas oubliez le paramétrage de Mscomm suivant le GPS utiliser
' comme les propriétés MSComm1.CommPort = 1 : Mscomm1.Settings ="4800,n,8,1"

      MSComm1.PortOpen = True 'ouvrir le port, dans mon cas le port numéro 1
      Timer1.Interval = 2000

'Ici je donne la valeur 2000 pour l'intervalle  car les satellites envoient
'les phrases qui contient les informations chaque deux secondes,
'alors gardez cette valeur!!!
End Sub

Private Sub Timer1_Timer()
   decoder  ' on appel cette procédure chaque 2 secondes
End Sub

Public Sub decoder()
Dim TmpChaine As String
Dim i As Integer

   On Error Resume Next
   
TmpChaine = MSComm1.Input ' reçois les phrases envoyer par les satellites

i = InStr(TmpChaine, "GPRMC") ' chercher le départ de la phrase qui nous intéresse

Do While Len(TmpChaine) - i < 61 'Vérifier si la phrase n'arrive pas à la fin
    On Error Resume Next

    TmpChaine = TmpChaine & MSComm1.Input ' stocker la phrase

Loop

' traiter la phrase et extrait les informations avec la fonction mid
Label1.Caption = Mid(TmpChaine, i + 6, 2) & ":" & Mid(TmpChaine, i + 8, 2) & ":" & Mid(TmpChaine, i + 10, 2)
Label2.Caption = "N " & Mid(TmpChaine, i + 15, 2) & "°" & Mid(TmpChaine, i + 17, 2) & "." & Mid(TmpChaine, i + 20, 2) & "'"
Label3.Caption = "E " & Mid(TmpChaine, i + 25, 3) & "°" & Mid(TmpChaine, i + 28, 2) & "." & Mid(TmpChaine, i + 31, 2) & "'"
Label4.Caption = Mid(TmpChaine, i + 48, 2) & "/" & Mid(TmpChaine, i + 50, 2) & "/" & Mid(TmpChaine, i + 52, 2)

'exemple:
'$GPRMC,022804.19,A,3301.5767,S,07131.1408,W,08.5,061.8,040101,06.,E*68
'label1 contient l'heure (Time): hh:mm:ss
'label2 contient la position par rapport au Nord : N ...°...'
'Label3 contient la position par rapport au East : E...°...'
'label4 contient Date : JJ/MM/AA
'il y a des autres informations dans cette phrase a traiter...
End Sub

Conclusion :


Je sais qu'il existe des autres solutions, mais celle là très simple et marche bien :-).
Personnellement, j'utilise une autre méthode avec mon logiciel sur le GPS.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.