JT/T808协议报文解析
0:前言
JTT808协议包由如下几部分组成:
1. 标识位始终为7E,一个字节。
2. 消息头由消息ID + 其余字节组成 这里规定共12字节,转义后不定。
3. 消息体占用字节数要根据具体需上传的数据确定。
4. 校验码是从消息头的第一个字节到消息体的最后一个字节逐字节按位异或的来,占一个字节,转义后不定。
若消息头、消息体及校验码中出现 0x7e,则要进行转义处理,转义规则定义如下:
0x7e <————> 0x7d后紧跟一个0x02;
0x7d <————> 0x7d后紧跟一个0x01。
转义处理过程如下:发送消息时:消息封装——>计算并填充校验码——>转义;接收消息时:转义还原——>验证校验码——>解析消息。
示例:
发送一包内容为0x7e 0x30 0x7e 0x08 0x7d 0x55 0x7e的数据包,则经过封装如下:0x7e 0x30 0x7d 0x02 0x08 0x7d 0x01 0x55 0x7e。
1:终端注册
消息名称: 终端注册
消息ID:0x0100
消息体格式:
字段1:省域ID,占二个字节
字段2:市县域ID,占二个字节
字段3:制造商ID和终端型号,共占用24个字节,其中后20字节为终端型号
字段4:终端ID,IMEI号,BCD码,占
字段5:车牌颜色,占一个字节
字段6:车辆标识,占4个字节
示例:
7E01000035495061553747000000000000000000000000000000000000000000000000000000000000086349506155374700313233345B7E
解析:
7E
消息头
0100 消息头之消息ID
00354950615537470000 消息头其余部分
消息体
0000省域ID
0000市县域ID
000000000000000000000000000000000000000000000000制造商ID和终端型号,注意:从终端型号20个字节里,借最后一个字节做IMEI
0863495061553747 此处为w1 5G模组的IMEI号码:IMEI号码为15位借了一位
00车牌颜色
31323334 车辆标识
校验码
5B
7E
2:终端鉴权
消息名称: 终端鉴权
消息ID: 0x0F02
消息体格式:
字段1:16字节鉴权码
示例:
7E0102001C49506161664300006B486D66347769324D76534A37685568537E
解析:
7E
消息头
0102 消息头之消息ID
001C4950616166430000 消息头其余部分
消息体
6B486D66347769324D76534A37685568 鉴权码
校验码
53
7E
3:位置信息汇报
消息名称: 位置信息汇报
消息ID: 0x0200
消息体格式:
字段1:报警标志位,4个字节,保留
字段2:定位状态, 0x01 是普通定位,0x02 是差分定位,0x04 是RTK 固定解,0x05 是RTK 浮点解,一个字节
字段3:卫星信号强度大于42 以上的卫星个数,一个字节
字段4:卫星信号强度大于40 以上的卫星个数,一个字节
字段5:卫星信号强度大于35 以上的卫星个数,一个字节
字段6:纬度,四个字节
字段7:经度,四个字节
字段8:高度,两个字节
字段9:速度,两个字节
字段10:方向,两个字节
字段11:时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0200002800000000000000380000000001080C130158C53506C9DED603E8001E003C250430110333C47E
解析:
7E
消息头
0200 消息头之消息ID
00280000000000000038 消息头其余部分
消息体
00000000 报警标志位,保留
01 定位状态, 0x01 是普通定位
08 卫星信号强度大于42 以上的卫星个数
0C 卫星信号强度大于40 以上的卫星个数
13 卫星信号强度大于35 以上的卫星个数
0158C535 纬度*1000000的十六进制
06C9DED6 经度同上
03E8 高度
001E 速度
003C 方向
250430110333 时间(BCD码),格式:yymmddhhmmss
校验码
C4
7E
4:健康数据之心率
消息名称: 健康数据
消息ID: 0x0F01
消息体格式:
字段1: 心率值,长度(1字节),取值范围[0-255]
字段2: 保留字段,长度(4字节)
字段3: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F01001749506161664300024E000000002504301021430A7E
解析:
7E
消息头
0F01 消息头之消息ID
00174950616166430002 消息头其余部分
消息体
4E 心率值
00000000 保留字段
250430102143 时间(BCD码),格式:yymmddhhmmss
校验码
0A
7E
5:蓝牙信标
消息名称: 扫描蓝牙信标
消息ID: 0x0F02
消息体格式:
字段1: 长度(1字节),扫描到有效蓝牙信标的个数,(超过4个,取其中信号最好的前4)
字段2: 如果存在,第一条蓝牙信标信息
字段3: 如果存在,第二条蓝牙信标信息
字段4: 如果存在,第三条蓝牙信标信息
字段5: 如果存在,第四条蓝牙信标信息
蓝牙信息的组成
字段(1-n).1: 蓝牙mac地址,长度(12字节) ,编码格式:ascii.
字段(1-n).2: 蓝牙rssi值,长度(1字节),rssi的绝对值,数值型
字段(1-n).3: 蓝牙信标电量,长度(1字节),数值型,取值范围[0-100]
示例:
7E0F02001B495061553747002501ED992B674EED603C250429191716B87E
解析:
7E
消息头
0F02 消息头之消息ID
001B4950615537470025 消息头其余部分
消息体
01 扫描到有效蓝牙信标的个数,这里扫描到一个
ED992B674EED603C25042919 这个蓝牙信标的mac地址
17 蓝牙信标rssi值
16 蓝牙信标电量
校验码
B8
7E
6:健康数据之血氧
消息名称: 健康数据
消息ID: 0x0F03
消息体格式:
字段1: 血氧值,长度(1字节),取值范围[0-100]
字段2: 保留字段,长度(4字节)
字段3: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F03001700000000000000006200000000250430095158687E
解析:
7E
消息头
0F03 消息头之消息ID
00170000000000000000 消息头其余部分
消息体
62 血氧值
00000000 保留字段
250430095158 时间(BCD码),格式:yymmddhhmmss
校验码
B8
7E
7:健康数据之计步
消息名称: 健康数据
消息ID: 0x0F04
消息体格式:
字段1: 久坐时长,长度(2字节),取值范围[0-1440],以分钟为单位
字段2: 步数,长度(4字节),取值范围[0-1000000..]
字段3: 运动时长,长度(4字节),取值范围[0-1440.],以分钟为单位
字段4: 卡路里消耗,长度(4字节),取值范围[0-100000],上传的是卡路里要转化为千卡
字段5: 距离,长度(4字节),取值范围[0-100000],以米为单位
字段6: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F0400162730173400080000000000C80002000200001D320000006F250814150101857E
解析:
7E
消息头
0F04 消息头之消息ID
00164950616166430002 消息头其余部分
消息体
000000C8 步数
0002 久坐时长
0002 运动时长
00001D32 卡路里消耗
0000006F 距离
250814150101 时间(BCD码),格式:yymmddhhmmss
85 校验码
7E
8:健康数据之温度
消息名称: 健康数据
消息ID: 0x0F05
消息体格式:
字段1: 温度,长度(4字节),实际温度值乘以10,取值范围[0-1000]
字段2: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F050016495061616643000100000054250430100125507E
解析:
7E
消息头
0F05 消息头之消息ID
00164950616166430001 消息头其余部分
消息体
00000054 实际温度值乘以10
250430100125 时间(BCD码),格式:yymmddhhmmss
校验码
50
7E
9:健康数据之SOS
消息名称: 健康数据之SOS
消息ID: 0x0F06
消息体格式:
字段1: SOS报警状态,长度(1字节)
字段2:报警状态,四个字节
字段3:电量+定位状态,四个字节
字段4:纬度,四个字节
字段5:经度,四个字节
字段6:高度,四个字节
字段7:速度,四个字节
字段8:方向,四个字节
字段9: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F06001D273015351643271001000000006400000101CE1DA507295276003B000700002607071523087C7E
解析:
7E
消息头
0F06 消息头之消息ID
001D2730153516432710 消息头其余部分
消息体
01 SOS报警状态
00000000 报警状态
64000001 64 :电量100 00 00 01:定位状态 01单点 02差分 04固定解 05浮点解
01CE1DA5 纬度*1000000的十六进制
07295276 经度同上
003B 高度
0007 速度
0000 方向
260707152308 时间(BCD码),格式:yymmddhhmmss
校验码7C
7E
10:健康数据之血压
消息名称: 健康数据
消息ID: 0x0F07
消息体格式:
字段1: 收缩压(高压)(1字节),取值范围[0-255]单位(单位:毫米汞柱(mmHg))
字段2: 舒张压(低压)(1字节),取值范围[0-255]单位(单位:毫米汞柱(mmHg))
字段3: 时间(BCD码),长度(6字节),格式:yymmddhhmmss
示例:
7E0F07001449506161664300037450250430100858567E
解析:
7E
消息头
0F07 消息头之消息ID
00144950616166430003 消息头其余部分
消息体
74 收缩压
50 舒张压
250430100858 时间(BCD码),格式:yymmddhhmmss
校验码
56
7E
