正文

可能是德文的解码GPS数据流的VB文章2005-09-30 13:32:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5474.html

分享到:

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

阅读(2496) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册