从GPS追踪器获取不可读的字符串

时间:2016-07-14 17:18:03

标签: string binary gps hex decoding

我从GPS追踪设备收到这个不可读的字符串,我需要解码这些信息,以便我可以在我的应用程序中使用它(c#)。

$A  grQ05Ah@‘)���ÿÿûÿÿ����°#~À‚¡U

但实际上我的期望如下:

*HQ,XXXXXX,41,4#V1,time,A,**Lat**,N/S,**Lng**,W/E,000.00,000,date,FFFFFBFF,432,35,32448,334

如何在c#中将字符串转换为标准格式?

我将数据转换为字节,如您所见:

24-41-20-20-67-72-51-30-35-41-68-40-91-29-3F-3F-3F-FF-FF-FB-FF-FF-3F-3F-3F-3F-B0-23-7E-C0-82-A1-55

2 个答案:

答案 0 :(得分:2)

它确实是一些二进制信息,如果您已经清楚地读出了产品手册,那么就说明了这些二进制文件的形成。

将数据转换为十六进制将提供类似的内容..

24-41-20-20-67-72-51-30-35-41-68-40-91-29-3F-3F-3F-FF-FF-FB-FF-FF-3F-3F-

然后您需要参考手册以了解这些十六进制数的确切含义

前 - (在某些中国设备中)

2 bytes(24),  stand for standard mode
10 bytes,  is device'ID (41 20 20 67 72)
6 bytes, is time 
6 bytes, is data
8 bytes, is latitude
2 bytes, battery like this 06= 100% 05=80% 04=60% 03=40% 02=20% 01=10%
10 bytes is  longitude

**您收到这些二进制文件是因为您已要求它以二进制模式发送信息。

答案 1 :(得分:0)

这完全取决于您的字符串最初是如何编码的。但基本思想是使用具有所需参数的变换函数。

您可以使用适当编码的Encoding.GetString 方法。

例如,如果您知道原始字符串在传输给您之前以UTF-8格式编码,您可以将其转换为字符串

string converted = Encoding.UTF8.GetString(bytesReceived);