【散100分】溜达溜达看看小弟我的GPS代码··

【散100分】溜达溜达看看我的GPS代码··
我做的只是一个小DEMO  
想大家看看这种思路OK不

配置Com口 这里我没简化写
VB code

Private Enum GroupState
    GroupStart
    GroupBody
    GroupEnd
End Enum


MSComm1.Settings = "4800,n,8,1"
MSComm1.CommPort = 8
MSComm1.InBufferSize = 40
MSComm1.RThreshold = 1
MSComm1.InputLen = 1
MSComm1.InputMode = comInputModeText
MSComm1.PortOpen = True


这里是事件的具体代码 名字瞎起凑合看吧先
VB code

Private Static Sub MSComm1_OnComm()
Dim code As String
Dim up() As String
Dim eType As GroupState

Select Case MSComm1.CommEvent
            ' 判断MSComm1通信事件
    Case comEvReceive
        code = MSComm1.Input
        If code = "$" Then
            If foo <> "" Then
                up = Split(foo, ",")
                If up(0) = "$GPRMC" Then
                    Label3.Caption = up(3)
                    Label5.Caption = up(4)
                    Label4.Caption = up(5)
                    Label6.Caption = up(6)
                    'Command4.Caption = i
                    'i = i + 1
                End If
                foo = ""
            End If
            
            eType = GroupStart
            
        End If
        Select Case eType
        Case GroupState.GroupStart
            eType = GroupBody
            foo = foo + code
        Case GroupState.GroupBody
            foo = foo + code
        End Select
        RichTextBox1.SelText = code
    Case Else
End Select
End Sub



有一点我不太明白这里我是一个字符一个字符读进来的,但是他到了richtextbox里面怎么就换行了呢
我之前测试过以$符号为界限一行一行添加到数组中之后用vbcrlf来分隔没有问题
但是我在代码里面直接判断单个字符的时候就判断不出来。
所以我就直接写到了CommEvent事件里面了
我这么写可以不?
我是说老大看了之后不会说我没思想啊,这些吧。虽然实现了
我怕老大说我没啥思想,一味的实现,望高手指点。

解释:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
1) 标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。
2) 定位状态,A = 数据可用,V = 数据不可用。
3) 纬度,格式:度度分分.分分分分(ddmm.mmmm)。
4) 纬度区分,北半球(N)或南半球(S)。
5) 经度,格式:度度分分.分分分分。
6) 经度区分,东(E)半球或西(W)半球。
7) 相对位移速度, 0.0 至 1851.8 knots
8) 相对位移方向,000.0 至 359.9度。实际值。
9) 日期,格式:日日月月年年(ddmmyy)。
10) 磁极变量,000.0 至180.0。
11) 度数。
12) Checksum.(检查位)

真实数据:


$GPRMC,034719.193,V,4002.3872,N,11624.5600,E,,,020410,,,N*79
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,034720.193,4002.3872,N,11624.5600,E,0,00,,149.3,M,-6.1,M,,0000*64
$GPRMC,034720.193,V,4002.3872,N,11624.5600,E,,,020410,,,N*73
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,034721.193,4002.3872,N,11624.5600,E,0,00,,149.3,M,-6.1,M,,0000*65
$GPRMC,034721.193,V,4002.3872,N,11624.5600,E,,,020410,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C

我就拿出了一小段。

------解决方案--------------------
学习and
双手接分
------解决方案--------------------
路过参观 接分
------解决方案--------------------
友情接分!!
------解决方案--------------------
友情接分
------解决方案--------------------
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>
数据格式中本色带有回车换行,你又把每个字符都输出到 RichTextBox 中,当然会分行了!

注:vbCrLf 是两个字符,你分开来接收就分别是 vbCr、vbLf。
------解决方案--------------------
溜达溜达进来逛逛。
------解决方案--------------------
溜达溜达进来逛逛。