WEB开发网
开发学院手机开发Windows Mobile 开发 在 WM 平台上开发 GPS 导航系统 阅读

在 WM 平台上开发 GPS 导航系统

 2010-02-21 22:52:00 来源:WEB开发网   
核心提示:16 Return ParseGPRMC(sentence)17 Case Else18 ' Indicate that the sentence was not recognized19 Return False20 End Select21 End Function22 ' Divides a se

16 Return ParseGPRMC(sentence)

17 Case Else

18 ' Indicate that the sentence was not recognized

19 Return False

20 End Select

21 End Function

22 ' Divides a sentence into individual words

23 Public Function GetWords(ByVal sentence As String) As String()

24 Return sentence.Split(","c)

25 End Function

26 ' Interprets a $GPRMC message

27 Public Function ParseGPRMC(ByVal sentence As String) As Boolean

28 ' Divide the sentence into words

29 Dim Words() As String = GetWords(sentence)

30 ' Do we have enough values to describe our location?

31 If Words(3) <> "" And Words(4) <> "" And Words(5) <> "" And _

32 Words(6) <> "" Then

33 ' Yes. Extract latitude and longitude

34 Dim Latitude As String = Words(3).Substring(0, 2) & "°" ' Append hours

35 Latitude = Latitude & Words(3).Substring(2) & """" ' Append minutes

36 Latitude = Latitude & Words(4) ' Append the hemisphere

37 Dim Longitude As String = Words(5).Substring(0, 3) & "°" ' Append hours

38 Longitude = Longitude & Words(5).Substring(3) & """" ' Append minutes

39 Longitude = Longitude & Words(6) ' Append the hemisphere

40 ' Notify the calling application of the change

41 RaiseEvent PositionReceived(Latitude, Longitude)

42 End If

43 ' Indicate that the sentence was recognized

44 Return True

45 End Function

46 End Class

47

这里值得注意的一个地方就是在没有获取到信息时,某些GPS设备将记录空值。因此,一个好主意就是在解析之前来测试每个单词的值。如果您需要输入度数符号(°),按住Alt键并键入数字键盘上的“0176”。

取出垃圾

校验和以美元符号和星号(但不包括)之间的XOR字节来计算。这个校验和然后与语句中的校验和进行比较。如果校验和不匹配,这句话通常被丢弃。这是正常的,因为这样做GPS设备往往每隔几秒钟重复相同的信息。有比较校验和的能力,解析器能够抛出任何带有无效的校验和的语句。列表1-3扩大解析器:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:WM 平台 开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接