本篇文章将介绍JT808协议的解析思路。
另请大神绕路,不喜勿喷!
先写个大致的思路,有疑问可以联系本人,联系方式:
emial: hylexus@163.com
1 JT808协议扫盲
1.1 数据类型
数据类型
描述及要求
BYTE
无符号单字节整形(字节, 8 位)
WORD
无符号双字节整形(字, 16 位)
DWORD
无符号四字节整形(双字, 32 位)
BYTE[n]
n 字节
BCD[n]
8421 码, n 字节
STRING
GBK 编码,若无数据,置空
1.2 消息结构
标识位
消息头
消息体
校验码
标识位
1byte(0x7e)
16byte
1byte
1byte(0x7e)
1.3 消息头
消息ID(0-1) 消息体属性(2-3) 终端手机号(4-9) 消息流水号(10-11) 消息包封装项(12-15)
byte[0-1] 消息ID word(16)
byte[2-3] 消息体属性 word(16)
bit[0-9] 消息体长度
bit[10-12] 数据加密方式
此三位都为 0,表示消息体不加密
第 10 位为 1,表示消息体经过 RSA 算法加密
其它保留
bit[13] 分包
1:消息体卫长消息,进行分包发送处理,具体分包信息由消息包封装项决定
0:则消息头中无消息包封装项字段
bit[14-15] 保留
byte[4-9] 终端手机号或设备ID bcd[6]
根据安装后终端自身的手机号转换
手机号不足12 位,则在前面补 0