GPS类处理定义

来源:互联网 发布:安卓语音软件 编辑:程序博客网 时间:2024/05/22 11:47

关于GPS数据招收处理部分

定义GPS类全局变量

Dim gpsRMC As New GPRMC

Dim gpsGSV As New GPGSV

Dim gpsGGA As New GPGGA

Dim gpsGSA As New GPGSA

Dim gpsRME As New GPRME

Dim gpsRMM As New GPRMM

 

在退出时,清理对象

Set gpsRMC = Nothing

Set gpsGSV = Nothing

Set gpsGGA = Nothing

Set gpsGSA = Nothing

Set gpsRME = Nothing

Set gpsRMM = Nothing

 

串口初始化属性为:

.Settings = "9600,N,8,1"

.InBufferSize = 512

.InputLen = 1

.RThreshold = 1

 

串口OnComm事件为

' OnComm 事件被用于捕获 communications 事件及错误。

Private Static Sub MSComm1_OnComm()

   Dim val

   If MSComm1.CommEvent = comEvReceive Then

      val = MSComm1.Input

      If Asc(val) = 10 Or Asc(val) = 13 Then

         If MSComm1.Tag <> "" Then

             

            txtTerm.Text = txtTerm.Text & MSComm1.Tag & vbNewLine

            If Len(txtTerm.Text) > 3500 Then txtTerm.Text = Right(txtTerm.Text, 3500)

            txtTerm.SelStart = Len(txtTerm.Text)

               

            Select Case Mid(MSComm1.Tag, 1, 6)

            Case "$GPGSV"

                ParseGSV MSComm1.Tag

            Case "$GPRMC"

              gpsRMC.Sentence = MSComm1.Tag

            Case "$GPGGA"

                gpsGGA.Sentence = MSComm1.Tag

            Case "$GPGSA"

                gpsGSA.Sentence = MSComm1.Tag

            Case "$PGRME"

                gpsRME.Sentence = MSComm1.Tag

            Case "$PGRMM"

                gpsRMM.Sentence = MSComm1.Tag

            End Select

            MSComm1.Tag = ""

         End If

      Else

         MSComm1.Tag = MSComm1.Tag & val

      End If

    End If

End Sub