GPS手表通信协议

 

   

 

 

目录

1. 协议格式 .............................................................................................................................. 3

2.  协议规范 ............................................................................................................................... 4

1、心跳包 (0x0001) ............................................................................................................ 4

2、请求服务器动态分配地址 (0x0002) .............................................................................. 4

3、单次地址查询 (0x4101) ................................................................................................. 4

5、设置亲情号码  (0x4103)................................................................................................ 5

6、设置监听号码 (0x4130) ................................................................................................. 5

7、设置时区 (0x4132)......................................................................................................... 6

8、查询亲情号码(0x9003) .................................................................................................. 6

9、定位信息上报 (0x9955/0x9956) ................................................................................. 7

10、短信转发(0x9957) ....................................................................................................... 7

11、请求中文地址信息(0x9958) ........................................................................................ 8

3. 附录1: 0x9955数据格式 ................................................................................................ 9

 


 

 

1.  协议格式

GPRS数据包使用TCP传输,协议格式定义如下: 服务器下发到终端设备(下行) @@<L><ID><协议号><数据><checksum>\r\n 终端设备上报到服务器(上行) $$<L><ID><协议号><数据><checksum>\r\n

 

协议字段

 

字节

 

格式说明

 

@@

2

服务器下发到终端设备起始位,字符@十六进制编码为 0x40

 

$$

2

终端设备上报到服务器始位,字符$十六进制编码为0x24

 

L

2

包长度,整个数据包长度的十六进制

 

ID

7

设备ID 14位的BCD编码,如设备号为01234567890123编码后的7字节数据为0x01,0x23,0x45, 0x67, 0x89, 0x01, 0x23

 

协议号

2

参见下章数据包描述

 

数据

N

支持0-100字节

 

checksum

2

数据包的CRC-CCITT (Kermit)校验位,不包括校验位本身和数据包结束标记位 24240011300700000005710001 42ED 0D0A  42ED = CRC (24240011300700000005710001)

 

 

 

 

\r\n

2

包结束符,十六进制表示为0x0D 0x0A

 

 注意: 1<>仅做数据包分隔标记,不是数据本身;多字节数据编码为大端模式。 2ID取设备IMEI号前14位,使用十六进制为7个字节。 3、终端设备上报数据包到服务器定义为上行,服务器下发数据包到终端设备定义为下行。 4、描述中请求上报表示终端主动向服务器发起数据包,设置查询表示服务器主动发数据配置参数,响应表示被动答复对方的数据包。 5、为避免重复特此说明,后续不再描述,协议包中的<Flag>表示1个字节的数据,其含义为1表示操作成功,0表示操作失败。 6、范例中数据均为16进制表示。 7、该文档为精简版,仅保证实现基本功能,部分协议未录入。

 


 

2.协议规范

1、心跳包 (0x0001)

 

功能

终端定时上报心跳包,确认GPRS网路连接正常,否则终端再次重连

 

上行

$$<L><ID><0x0001><checksum>\r\n

 

下行

@@<L><ID><0x0001><Flag><checksum>\r\n

 

  范例

2424 0011 30020000000013 0001 0B1D 0D0A

 

4040 0012 30020000000013 0001 01 F179 0D0A

 

 

功能

终端请求服务器动态分配地址,并连接新的地址,实现服务器负载均衡

 

上行

$$<L><ID><0x0002><checksum>\r\n

 

下行

@@<L><ID><0x0002 ><IP:port><checksum>\r\n

 

  范例

4040 0023 30020000000013 0002 3130362E332E3232362E3138303A38303930 73C2 0D0A

 

2、请求服务器动态分配地址 (0x0002)

表示终端需要连接服务器106.3.226.180:8090,开始正常工作。

3、单次地址查询 (0x4101)

 

功能

服务器查询设备当前位置

 

下行

@@<L><ID><0x4101><checksum>\r\n

 

下行

$$<L><ID><0x9955><data><checksum>\r\n

 

  范例

 

 

 

 

 4、设置定位包上传时间间隔(0x4102)

 

功能

设置终端定位包0x9955的上报间隔

 

下行

@@<L><ID><0x4102>< interval in hex code (2 bytes)><checksum>\r\n

 

上行

$$<L><ID><0x5100><Flag> <interval (2 bytes)><checksum>\r\n

 

  范例

4040 0013 30020000000013 4102 000A 3808 0D0A

 

上行缺少

 

注意:时间间隔为0表示停止向服务器上报定位数据。

 

5、设置亲情号码  (0x4103)

 

功能

设置终端亲情号码

 

下行

@@<L><ID><0x4103><button number>< phone number for receiving SMS>< phone number for receiving call><checksum>\r\n

 

上行

$$<L><ID><0x4103><Flag><checksum>\r\n

 

  范例

4040 0032 30060000000007 4103 01 31313031313031313000000000000000 31313031313031313000000000000000 B1DA 0D0A

 

24240012300600000000074103000D8D0D0A

 

 注意: 1Button number – 1个字节16进制的数据,支持4个,包括SOS按键和3个速拨按键。

 

button number

 

对应按键

1

SOS button

2

button 1

3

button 2

4

button 3

 

 2、号码使用16ASCII表示,不足16位用0补充,本协议中所有电话号码均按此规范。如号码 8613612345678表示为 0x38 0x36 0x31 0x33 0x36 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x00 0x00 0x00

6、设置监听号码 (0x4130)  

 

功能

设置监听号码

 

下行

@@<L><ID><0x4130><data><checksum>\r\n

 

上行

$$<L><ID><0x4130><Flag><checksum>\r\n

 

  范例

4040 001E 30060000000007 4130 31323334353637383930313233 3276 0D0A

 

上行缺少

 

  


 

7、设置时区 (0x4132)

 

功能

设置终端时区

 

下行

@@<L><ID><0x4132><data><checksum>\r\n

 

上行

$$<L><ID><0x4132><Flag><checksum>\r\n

 

  范例

 

 

 

 

注意:部分项目可能会导致异常。


 

8、查询亲情号码(0x9003)

 

功能

服务器查询终端绑定的亲情号码

 

下行

@@<L><ID><0x9003><button number><checksum>\r\n

 

上行

$$<L><ID><0x9003>< phone number for receiving SMS><phone number for receiving call><checksum>\r\n

 

  范例

4040 0012 30060000000007 9003 04 92B5 0D0A

 

2424 002130060000000007 9003 30303030303030303030303030303030 3118 0D0A

 

 

 

button number

 

对应号码

1

SOS button

2

button 1

3

button 2

4

button 3

0xFF

查询全部号码

 

 


 

9、定位信息上报 (0x9955/0x9956)

 

功能

终端上报位置信息

 

上行

$$<L><ID><0x9955><data><checksum>\r\n

 

$$<L><ID><0x9956><data;data;data;data;data;data;data;…data;data;data;><checksum>\r\n

 

下行

@@<L><ID><0x9955 ><Flag><checksum>\r\n

 

@@<L><ID><0x9956 ><Flag><checksum>\r\n

 

  范例

2424 0076 30060000000007 9955 3034353635312E3030302C412C323233322E323336352C4E2C31313430312E333738382C452C3030302E312C3135372E35372C3132303931342C2C7C31307C3130307C343638302C31303137332C3030302C3436307C303030307C30307C3036367C303932 1CC0 0D0A

 

4040 0012 30060000000007 9955 01 DE21 0D0A

 

 注意:

                        1 范例0x9955包中对应ASCII045651.000,A,2232.2365,N,11401.3788,E,000.1,157.57,120914,,|10|100|4680,10173,000,460|0000|00|066|092

 

具体格式见附录1 20x9956是将多条0x9955包合并,中间使用;分割,其中data最多40项。

10、短信转发(0x9957)

 

功能

服务器下发电话号码和短信内容,终端将其转发

 

下行

@@<L><ID><0x9957><phone number><SMS data><checksum>\r\n

 

上行

$$<L><ID><0x9957><Flag><checksum>\r\n

 

  范例

 

 

 

 

 注意: 1“phone number”16位的ASCII电话号码。 2“SMS data”为大段unicode码。 3、格式参考其他数据包。


 

11、请求中文地址信息(0x9958)

 

功能

终端上报位置信息,请求服务器转为地址描述

 

上行

$$<L><ID><0x9958><phone number><GPS/Cell data><checksum>\r\n

 

下行

@@<L><ID><0x9958><phone number><SMS data><checksum>\r\n

 

  范例

2424 0086 30060000000007 9958 2B383631333438383635353138360000 3039323530372E3030302C412C323233322E323338302C4E2C31313430312E333739342C452C3030302E302C3139372E33372C3132303931342C2C7C31307C3130307C33393036342C393533332C3031302C3436307C303030307C30307C3232337C313030 2264 0D0A

 

4040 010B 30060000000007 9958 2B383631333438383635353138360000 330030003000360030003000300030003000300030003000300037003A007F5E1C4E0177F16D3357025E8F7930753A53668F6C51995E2E00DD8DBB79F06C3671D1798062ED563300300036000B68320032003300737C2E00DD8DBB79F06C3671E55D388DED563200310036000B68320033003600737C2E00DD8DBB79F06C3671D1798062ED563300300034000B68320036003500737C2E00DD8DBB79E5651A900D54668FF47EEE4F33003200737C2E00DD8DBB79F16D3357025EB352B75F29527D6C668F0D67A152096750966C51F85333003300737C2E00DD8DBB79B073E34EA8534A5733003800737C  EF24  0D0A

 

 注意: 1phone number16位的ASCII电话号码。 2GPS/Cell data地址信息格式参考附录2 3SMS data为大端unicode码。 范例中地址信息:30030003000360030003000300030003000300030003000300037003A007F5E1C4E0177F16D3357025E8F7930753A53668F6C51995E2E00DD8DBB79F06C3671D1798062ED563300300036000B68320032003300737C2E00DD8DBB79F06C3671E55D388DED563200310036000B68320033003600737C2E00DD8DBB79F06C3671D1798062ED563300300034000B68320036003500737C2E00DD8DBB79E5651A900D54668FF47EEE4F33003200737C2E00DD8DBB79F16D3357025EB352B75F29527D6C668F0D67A152096750966C51F85333003300737C2E00DD8DBB79B073E34EA8534A5733003800737C 对应解码为字符: 30060000000007:广东省深圳市福田区车公庙.距离泰然科技园306226~~~


 

3. 附录1: 0x9955数据格式

Data consists of: GPRMC | HDOP | Altitude | Cell | State | Alarm | Battery | Signal  For example: 100008.000,A,2232.4679,N,11356.7805,E,0.204,89.22,210911,,|7.49|152.6|3571,9763,00,460|0000|00|100|100 

                        (1) GPRMC includes: hhmmss.dd,S,xxmm.dddd,<N|S>,yyymm.dddd,<E|W>,s.s,h.h,ddmmyy 

 

GPS未定位,则缺省该字段。GPS定位时,数据包解析如下: 134829.486,A,1126.6639,S,11133.3299,W,58.31,309.62,110200 

 

Parameter

 

描述

 

Example

hhmmss.dd

UTC 时间 hh = hours; mm = minutes; ss = seconds; dd = decimal part of seconds

13:48:29.486

S

Status indicator, A = valid, V = invalid

A=Valid

xxmm.dddd

 Latitude xx = degrees; mm = minutes; dddd = decimal part of minutes

11 deg. 26.6639 min

<N|S>

 Either character N or character S  N = North, S = South

S = South

yyymm.dddd

 Longitude yyy = degrees; mm = minutes; dddd = decimal part of minutes

111 deg. 33.3299 min

<E|W>

 Either character E or character W  E = East, W = West

W=West

s.s

Speed, knots

58.31 Knots

h.h

Heading

309.62 deg

 

ddmmyy

 Date dd = date; mm = month yy = year

11th, Aug. 2000

 


 

 (2) | 分割符 ASCII (=0x7c) (3) HDOP, in ASCII code, 0.5-99.9. HDOP is blank when the tracking unit has no GPS fix (4) Altitude, in algorism. (5) Cell  includes: cid,lac,mnc,mcc  For example:4272,10147,00,460 

Parameter

Description

Example

cid

Cell ID

4272

lac

LAC

10147

mnc

MNC

00

mcc

MCC

460

 

  (6) State: Status of input and output Bit0~Bit7: Reserved and default as 0  Bit8: Status of Input1  If Bit8=0: Input1 is inactive; Bit8=1: Input1 is active (SOS button is pressed)  Bit9: Status of Input2  If Bit9=0: Input2 is inactive; Bit9=1: Input2 is active (Button 1 is pressed)  Bit10: Status of Input3  If Bit10=0: Input3 is inactive; Bit10=1: Input3 is active (Button 2 is pressed)  Bit11: Status of Input4  If Bit11=0: Input4 is inactive; Bit11=1: Input4 is active (Button 3 is pressed) Bit12: Status of Input5  If Bit12=0: Input5 is inactive; Bit12=1: Input5 is active (Answer button is pressed)  Bit13: Status of Input6  If Bit13=0: Input6 is inactive; Bit13=1: Input6 is active (“Hang up/Power key” button is pressed) 

(7) Alarm: Alarm command 

Alarm code

Definition

=0x01

SOS button is pressed

=0x02

2nd button is pressed

=0x03

3rd button is pressed

=0x04

First button is pressed

=0x05

Reserved

=0x10

Low battery alarm

=0x11

Over speed alarm

=0x12

Movement alarm

=0x13

Reserved

=0x14

Alarm of tracking unit being turned on

=0x15

Alarm of tracking unit entering blind area

=0x16

Alarm of tracking unit leaving blind area

=0x31

SOS button is released

=0x32

2nd button is released

=0x33

3rd button is released

=0x34

First button is released

=0x35

Reserved

=0x40

Vibrate alarm

 

  (8) Battery: Percentage of the battery voltage  (9) Signal: Percentage of the signal strength