2015-06-04 159 views
-1

我收到的GPS数据从TCP(PHP插座),但对于某些设备(GRTQ)我会得到这些数据:

第一设备发送:
* HQ,XXXXXX,V1,时间,A,纬度,N/S,LNG,W/E,000.00,000,日期,FFFFFBFF,432,35,32448,33441,4#

然后发送:
* HQ,XXXXXX,V9,时间, A,Lat,N/S,Lng,W/E,000.10,000,日期,来电显示,FFFFFBFF#

然后发送:
$ A grQ05Ah @ ')ÿÿûÿÿ°#〜À,¡U
GPS跟踪GRTQ

这是什么?含义:
$ A grQ05Ah @') ÿÿûÿÿ°#〜À,¡U

感谢您的帮助

设备的型号:GRTQ

+0

什么是实际问题? – Epodax

+0

我想知道那是什么(以及我应该回复什么),因为在下列数据后我不会收到任何数据 – Alibehtm

+0

看起来charset有问题,我担心您需要添加一些更多细节让人们给你一个更好的(/更合适的)答案。 – Epodax

回答

0

中国制造商/供应商不同的调用此协议,但在Traccar GPS tracking server它被称为H02协议。你可以找到文件(不幸的是只有中文)here。基本上,这个通信协议包括两种类型的消息:ASCII /文本消息(前两个例子)和二进制消息(第三个例子)。

+0

谢谢,但我应该如何回复这些数据以获得正确的位置? – Alibehtm

+0

我可以避免响应二进制消息(使用短信或特殊命令)吗? – Alibehtm

+0

您不需要回复任何这些消息。我不知道是否可以避免二进制消息。可能不是,但你应该检查手册或询问制造商。 –

0

您必须将收到的不可读数据转换为十六进制字符串。 你会得到这样的事情 24 41 20 20 67 72 51 30 35 41 68 40 2018 29 FFFD FFFD FFFD FF FF FB FF FF FFFD FFFD FFFD FFFD B0 23 7E C0 201A A1 55

然后,你可以把它分解并像这样解析它:

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 

next byte C is 16 hexadecimal, 0C, convert it into binary data, 1100 (4 bit) 

Bit 3: if is 1= East longitude if is 0= West longitude 
Bit 2:  if is 1= North latitude, if is 0= South latitude 
Bit1:  if is 1= A(GPS position valid) if is 0= V(gps position invalid) 
Bit 0: discard 

000215: 6 digits, 000 is speed (knot 1 knot =1.852 km/h) , 215 is direction in degrees. 

FFFFF9FF:vehicle_status 
2 bytes :back-up data 
2 bytes :gsm_signal 
0D : (convert to decimal=13 13 means the number of satellite gps_signal) 
000000034 : mileage 
4 bytes: mobile country code 
2 bytes: mnc 
4 bytes: lac 
4 bytes: cell_id 
2 bytes: record number