GPS类处理定义

本文介绍了一种通过串口接收并解析GPS数据的方法,包括设置串口参数、定义GPS数据对象以及实现OnComm事件来捕获通讯事件。针对不同类型GPS数据(如GPRMC、GPGGA等)进行了详细说明。

关于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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值