1.数据类型
数据类型 | 描述及要求 |
---|---|
BYTE | 无符号单字节整型(字节,8 位) |
WORD | 无符号双字节整型(字,16 位) |
DWORD | 无符号四字节整型(双字,32 位) |
BYTE[n] | n 字节 |
BCD[n] | 8421 码,n 字节 |
STRING | GBK 编码,若无数据,置空 |
2.传输规则
协议采用大端模式(big-endian)的网络字节序来传递字和双字。约定如下:
——字节(BYTE)的传输约定:按照字节流的方式传输;
——字(WORD)的传输约定:先传递高八位,再传递低八位;
——双字(DWORD)的传输约定:先传输最高的8位(b31,b24),然后是较高的8位(b23,b16),然后是较低的8位(b15,b8),然后是最低的8位(b7,b0)。
3.消息组成
3.1.消息结构
每条消息由标识位、消息头、消息体和校验码组成,消息结构如下所示:
3.2.标识位
采用 0x7e 表示,若校验码、消息头以及消息体中出现 0x7e,则要进行转义
处理,转义规则定义如下:
0x7e<————>0x7d 后紧跟一个 0x02;
0x7d<————>0x7d 后紧跟一个 0x01。
转义处理过程如下:
发送消息时:消息封装——>计算并填充校验码——>转义;
接收消息时:转义还原——>验证校验码——>解析消息。
示例:
发送一包内容为 0x30 0x7e 0x08 0x7d 0x55 的数据包,则经过封装如下:
0x7e 0x30 0x7d 0x02 0x08 0x7d 0x01 0x55 0x7e。
3.3.消息头
起始字节 | 字段 | 数据类型 | 描述及要求 |
---|---|---|---|
0 | 消息 ID | WORD | - |
2 | 消息体属性 | WORD | 消息体属性格式结构图见表2.3 |
4 | 终端手机号 | BCD[6] | 自定义12位唯一标识号,不足12位前面补0 |
10 | 消息流水号 | WORD | 按发送顺序从 0 开始循环累加 |
12 | 消息包封装项 |
3.3.1.消息体属性
Bit15:保留。
Bit14版本:此位默认保留为0
Bit13分包:保留,不使用,默认为0。
Bit12-10数据加密方式:
——当此三位都为 0,表示消息体不加密;
——当第 10 位为 1,表示消息体经过 RSA 算法加密;
Bit9-0:消息体长度。
3.4.校验码
校验码指从消息头开始,同后一字节异或,直到校验码前一个字节,占用一个字节。
4.协议交互流程
1, 终端在未注册状态下,应首先进行注册,注册成功后终端将获得鉴权码并进行保存,鉴权码在终端登录时使用。
2.已经注册的终端,只需使用保存的鉴权码登录即可。
3.鉴权成功的终端,按照配置的上报间隔上报位置信息(含状态和报警信息,详细参考消息0x0200)。
4.平台也可以主动配置和查询终端参数。
4.1.消息应答关系表
最后编辑:admin 更新时间:2023-05-06 21:29