' #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 secondesEnd 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

评论