' #Mandix Repository#***************************************************
' * Programmer Name : David Auche
' * Web Site : http://www.d2dsources.com
' * E-Mail :
' * Date : 09/27/2004
' **********************************************************************
' * Comments : Decoder un code NMEA envoyer par un GPS (a l'aide mscomm - rs232)
' *
' * Ce code permet de decoder les phrases recues 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.
' *
' **********************************************************************
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
评论