app及Java服务端实现JT808协议的定义解析
来源:互联网 发布:比价软件推荐 编辑:程序博客网 时间:2024/06/06 00:57
app及Java服务端实现JT808协议的定义解析,
网上很多帖子已经对JT808协议做了说明,我在这里就不做过多的赘述了。
最近接到一个项目是打车类的,所以对这协议做了研究
刚开始是 一头雾水,大约花了一周的时间 ,仔细阅读文档慢慢清晰起来,原理很简单 :
就是根据 协议结构发送接收字符串。 对! 就是这么简单!!!
自己参考一些博客 实现了App和java服务端这种协议的对话,实现了心跳,位置上传等功能,其他的都是一样的道理了 就不再实现了。
关注公众号获取代码,公众号:jszj2014215
或者联系QQ付费获取: 2637405696
通信协议定义
一、 协议定义
协议标准
协议格式(按JTT808协议格式)
标识位
消息头
消息体
检验码
标识位
在消息体属性保留位14位和15位区别是客户端还是服务器端
乘客端14位为1,15位为0
司机端14位为0,15位为1
无特别说明,所有协议的返回协议为服务器通用应答
消息ID
消息名
发起方
适用版本
0x0002
心跳包
司机端、乘客端
通用
0x0200
定位包
司机端、乘客端
通用
0x0201
附近车辆
乘客端
快租
0x8201
附近车辆应答
服务端
快租
0x0400
提交订单
乘客端
通用
0x8400
订单结果
服务端
通用
0x0401
订单取消
乘客端
通用
0x0402
新单提醒
服务端
快租
0x8402
抢单
司机端
快租
0x0403
抢单结果
服务端
快租
0x0404
乘客上车
司机端
快租
0x0405
到达目的地
司机端
快租
0x0406
接单状态
服务端
快租
0x0407
还车申请
乘客端
通用
i. 乘客端
1. 心跳协议
消息ID:0x 00 02
终端心跳数据消息体为空
2. 实时定位坐标协议-发送
消息ID:0x 02 00
位置信息汇报消息体由位置基本信息和位置附加信息项列表组成,消息结构图如图3所示:
位置基本信息
位置附加信息项列表
图3 位置汇报消息结构图
位置附加信息项列表由各位置附加信息项组合,也可没有,根据消息头中的长度字段确定。
位置基本信息数据格式见表16。
表16位置基本信息数据格式
起始字节
字段
数据类型
描述及要求
0
报警标志
DWORD
报警标志位定义见表18
4
状态
DWORD
状态位定义见表17
8
纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万 分之一度
12
经度
DWORD
以度为单位的经度值乘以10的6次方,精确到百万 分之一度
16
高程
WORD
海拔高度,单位为米(m)
18
速度
WORD
1/10km/h
20
方向
WORD
0~359,正北为0,顺时针
21
时间
BCD[6]
YY-MM-DD-hh-mm-ss(GMT+8时间,本标准中之后涉及的时间均采用此时区)
表17 状态位定义
位
状态
0
0:ACC关;1: ACC开
1
0:未定位;1:定位
2
0:北纬;1:南纬
3
0:东经;1:西经
4
0:运营状态;1:停运状态
5
0:经纬度未经保密插件加密;1:经纬度已经保密插件加密
6~9
保留
10
0:车辆油路正常;1:车辆油路断开
11
0:车辆电路正常;1:车辆电路断开
12
0:车门解锁;1:车门加锁
13~31
保留
表18报警标志位定义
位
定义
处理说明
0
1:紧急报警,触动报警开关后触发
收到应答后清零
1
1:超速报警
标志维持至报警条件解除
2
1:疲劳驾驶
标志维持至报警条件解除
3
1:预警
收到应答后清零
4
1:GNSS模块发生故障
标志维持至报警条件解除
5
1:GNSS天线未接或被剪断
标志维持至报警条件解除
6
1:GNSS天线短路
标志维持至报警条件解除
7
1:终端主电源欠压
标志维持至报警条件解除
8
1:终端主电源掉电
标志维持至报警条件解除
9
1:终端LCD或显示器故障
标志维持至报警条件解除
10
1:TTS模块故障
标志维持至报警条件解除
11
1:摄像头故障
标志维持至报警条件解除
12~17
保留
18
1:当天累计驾驶超时
标志维持至报警条件解除
19
1:超时停车
标志维持至报警条件解除
20
1:进出区域
收到应答后清零
21
1:进出路线
收到应答后清零
22
1:路段行驶时间不足/过长
收到应答后清零
23
1:路线偏离报警
标志维持至报警条件解除
24
1:车辆VSS故障 4
标志维持至报警条件解除
25
1:车辆油量异常
标志维持至报警条件解除
26
1:车辆被盗(通过车辆防盗器)
标志维持至报警条件解除
27
1:车辆非法点火
收到应答后清零
28
1:车辆非法位移
收到应答后清零
29
1:碰撞侧翻报警
标志维持至报警条件解除
30~31
保留
表19 位置附加信息项格式
字段
数据类型
描述及要求
附加信息ID
BYTE
1~255
附加信息长度
BYTE
附加信息
附加信息定义见表20
表20附加信息定义
附加信息ID
附加信息长度
描述及要求
0x01
4
里程,DWORD,1/10km,对应车上里程表读数
0x02
2
油量,WORD,1/10L,对应车上油量表读数
0x03
2
行驶记录功能获取的速度,WORD,1/10km/h
0x04
2
需要人工确认报警事件的ID,WORD,从1开始计数
0x05~0xF
保留
0x11
1或5
超速报警附加信息见表21
0x12
6
进出区域/路线报警附加信息见表22
0x13
7
路段行驶时间不足/过长报警附加信息见表23
表 21 超速报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
0:无特定位置;
1:圆形区域;
2:矩形区域;
3:多边形区域;
4:路段
1
区域或路段ID
DWORD
若位置类型为0,无该字段
表 22 进出区域/路线报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
1:圆型区域;
2:矩形区域;
3:多边形区域;
4:路线
1
区域或线路ID
DWORD
5
方向
BYTE
0:进; 1:出
表 23 路线行驶时间不足/过长报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
路段ID
DWORD
4
路段行驶时间
WORD
单位为秒(s)
6
结果
BYTE
0:不足;1:过长
3. 附近车辆坐标协议-发送
消息ID:0x 02 01
位置信息汇报消息体由位置基本信息和位置附加信息项列表组成,消息结构图如图3所示:
位置基本信息
位置附加信息项列表
图3 位置汇报消息结构图
位置附加信息项列表由各位置附加信息项组合,也可没有,根据消息头中的长度字段确定。
位置基本信息数据格式见表16。
表16位置基本信息数据格式
起始字节
字段
数据类型
描述及要求
0
报警标志
DWORD
报警标志位定义见表18
4
状态
DWORD
状态位定义见表17
8
纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万 分之一度
12
经度
DWORD
以度为单位的经度值乘以10的6次方,精确到百万 分之一度
16
高程
WORD
海拔高度,单位为米(m)
18
速度
WORD
1/10km/h
20
方向
WORD
0~359,正北为0,顺时针
21
时间
BCD[6]
YY-MM-DD-hh-mm-ss(GMT+8时间,本标准中之后涉及的时间均采用此时区)
表17 状态位定义
位
状态
0
0:ACC关;1: ACC开
1
0:未定位;1:定位
2
0:北纬;1:南纬
3
0:东经;1:西经
4
0:运营状态;1:停运状态
5
0:经纬度未经保密插件加密;1:经纬度已经保密插件加密
6~9
保留
10
0:车辆油路正常;1:车辆油路断开
11
0:车辆电路正常;1:车辆电路断开
12
0:车门解锁;1:车门加锁
13~31
保留
表18报警标志位定义
位
定义
处理说明
0
1:紧急报警,触动报警开关后触发
收到应答后清零
1
1:超速报警
标志维持至报警条件解除
2
1:疲劳驾驶
标志维持至报警条件解除
3
1:预警
收到应答后清零
4
1:GNSS模块发生故障
标志维持至报警条件解除
5
1:GNSS天线未接或被剪断
标志维持至报警条件解除
6
1:GNSS天线短路
标志维持至报警条件解除
7
1:终端主电源欠压
标志维持至报警条件解除
8
1:终端主电源掉电
标志维持至报警条件解除
9
1:终端LCD或显示器故障
标志维持至报警条件解除
10
1:TTS模块故障
标志维持至报警条件解除
11
1:摄像头故障
标志维持至报警条件解除
12~17
保留
18
1:当天累计驾驶超时
标志维持至报警条件解除
19
1:超时停车
标志维持至报警条件解除
20
1:进出区域
收到应答后清零
21
1:进出路线
收到应答后清零
22
1:路段行驶时间不足/过长
收到应答后清零
23
1:路线偏离报警
标志维持至报警条件解除
24
1:车辆VSS故障 4
标志维持至报警条件解除
25
1:车辆油量异常
标志维持至报警条件解除
26
1:车辆被盗(通过车辆防盗器)
标志维持至报警条件解除
27
1:车辆非法点火
收到应答后清零
28
1:车辆非法位移
收到应答后清零
29
1:碰撞侧翻报警
标志维持至报警条件解除
30~31
保留
表19 位置附加信息项格式
字段
数据类型
描述及要求
附加信息ID
BYTE
1~255
附加信息长度
BYTE
附加信息
附加信息定义见表20
表20附加信息定义
附加信息ID
附加信息长度
描述及要求
0x01
4
里程,DWORD,1/10km,对应车上里程表读数
0x02
2
油量,WORD,1/10L,对应车上油量表读数
0x03
2
行驶记录功能获取的速度,WORD,1/10km/h
0x04
2
需要人工确认报警事件的ID,WORD,从1开始计数
0x05~0xF
保留
0x11
1或5
超速报警附加信息见表21
0x12
6
进出区域/路线报警附加信息见表22
0x13
7
路段行驶时间不足/过长报警附加信息见表23
表 21 超速报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
0:无特定位置;
1:圆形区域;
2:矩形区域;
3:多边形区域;
4:路段
1
区域或路段ID
DWORD
若位置类型为0,无该字段
表 22 进出区域/路线报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
1:圆型区域;
2:矩形区域;
3:多边形区域;
4:路线
1
区域或线路ID
DWORD
5
方向
BYTE
0:进; 1:出
表 23 路线行驶时间不足/过长报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
路段ID
DWORD
4
路段行驶时间
WORD
单位为秒(s)
6
结果
BYTE
0:不足;1:过长
4. 附近车辆坐标协议-返回
消息ID:0x8201
消息体数据见下表
起始字节
字段
数据类型
描述及要求
0
车辆数
WORD
1
车辆定位项
车辆定位项数据格式见表57
表 57 车辆定位项数据格式
起始字节
字段
数据类型
描述及要求
0
车辆纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
4
车辆经度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
8
车牌号码
String
公安交通管理部门颁发的机动车号牌
5. 提交订单协议
消息ID:0x0400
消息体数据如下表
起始字节
字段
数据类型
描述及要求
0
车辆纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
4
车辆经度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
8
乘客人数
Byte
乘客人数
9
车牌号码
String
公安交通管理部门颁发的机动车号牌
6. 订单成功协议-返回
消息ID:0x8400
消息体数据如下表
起始字节
字段
数据类型
描述及要求
0
结果
Byte
0:成功/确认;1:失败;2:消息有误;3:不支持
1
订单号
BCD[9]
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
10
车牌号码
String
公安交通管理部门颁发的机动车号牌
7. 订单取消协议
消息ID:0x0401
消息体数据如下表
起始字节
字段
数据类型
描述及要求
0
订单号
BCD[9]
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
9
订单取消原因
String
长度不超过50个汉字
8. 还车申请协议-发送
a) 消息ID:0407
消息体数据如下表
起始字节
字段
数据类型
描述及要求
0
租客纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
4
租客经度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万分之一度
8
订单号
BCD[9]
格式 YYYYMMDDHHMMSSXXXX,例 201707061113550001
9.
ii. 司机端
1. 心跳协议
消息ID:0x0002
消息体为空
2. 位置上传协议
消息ID:0x0200
位置信息汇报消息体由位置基本信息和位置附加信息项列表组成,消息结构图如图3所示:
位置基本信息
位置附加信息项列表
图3 位置汇报消息结构图
位置附加信息项列表由各位置附加信息项组合,也可没有,根据消息头中的长度字段确定。
位置基本信息数据格式见表16。
表16位置基本信息数据格式
起始字节
字段
数据类型
描述及要求
0
报警标志
DWORD
报警标志位定义见表18
4
状态
DWORD
状态位定义见表17
8
纬度
DWORD
以度为单位的纬度值乘以10的6次方,精确到百万 分之一度
12
经度
DWORD
以度为单位的经度值乘以10的6次方,精确到百万 分之一度
16
高程
WORD
海拔高度,单位为米(m)
18
速度
WORD
1/10km/h
20
方向
WORD
0~359,正北为0,顺时针
21
时间
BCD[6]
YY-MM-DD-hh-mm-ss(GMT+8时间,本标准中之后涉及的时间均采用此时区)
表17 状态位定义
位
状态
0
0:ACC关;1: ACC开
1
0:未定位;1:定位
2
0:北纬;1:南纬
3
0:东经;1:西经
4
0:运营状态;1:停运状态
5
0:经纬度未经保密插件加密;1:经纬度已经保密插件加密
6~9
保留
10
0:车辆油路正常;1:车辆油路断开
11
0:车辆电路正常;1:车辆电路断开
12
0:车门解锁;1:车门加锁
13~31
保留
表18报警标志位定义
位
定义
处理说明
0
1:紧急报警,触动报警开关后触发
收到应答后清零
1
1:超速报警
标志维持至报警条件解除
2
1:疲劳驾驶
标志维持至报警条件解除
3
1:预警
收到应答后清零
4
1:GNSS模块发生故障
标志维持至报警条件解除
5
1:GNSS天线未接或被剪断
标志维持至报警条件解除
6
1:GNSS天线短路
标志维持至报警条件解除
7
1:终端主电源欠压
标志维持至报警条件解除
8
1:终端主电源掉电
标志维持至报警条件解除
9
1:终端LCD或显示器故障
标志维持至报警条件解除
10
1:TTS模块故障
标志维持至报警条件解除
11
1:摄像头故障
标志维持至报警条件解除
12~17
保留
18
1:当天累计驾驶超时
标志维持至报警条件解除
19
1:超时停车
标志维持至报警条件解除
20
1:进出区域
收到应答后清零
21
1:进出路线
收到应答后清零
22
1:路段行驶时间不足/过长
收到应答后清零
23
1:路线偏离报警
标志维持至报警条件解除
24
1:车辆VSS故障 4
标志维持至报警条件解除
25
1:车辆油量异常
标志维持至报警条件解除
26
1:车辆被盗(通过车辆防盗器)
标志维持至报警条件解除
27
1:车辆非法点火
收到应答后清零
28
1:车辆非法位移
收到应答后清零
29
1:碰撞侧翻报警
标志维持至报警条件解除
30~31
保留
表19 位置附加信息项格式
字段
数据类型
描述及要求
附加信息ID
BYTE
1~255
附加信息长度
BYTE
附加信息
附加信息定义见表20
表20附加信息定义
附加信息ID
附加信息长度
描述及要求
0x01
4
里程,DWORD,1/10km,对应车上里程表读数
0x02
2
油量,WORD,1/10L,对应车上油量表读数
0x03
2
行驶记录功能获取的速度,WORD,1/10km/h
0x04
2
需要人工确认报警事件的ID,WORD,从1开始计数
0x05~0xF
保留
0x11
1或5
超速报警附加信息见表21
0x12
6
进出区域/路线报警附加信息见表22
0x13
7
路段行驶时间不足/过长报警附加信息见表23
表 21 超速报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
0:无特定位置;
1:圆形区域;
2:矩形区域;
3:多边形区域;
4:路段
1
区域或路段ID
DWORD
若位置类型为0,无该字段
表 22 进出区域/路线报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
位置类型
BYTE
1:圆型区域;
2:矩形区域;
3:多边形区域;
4:路线
1
区域或线路ID
DWORD
5
方向
BYTE
0:进; 1:出
表 23 路线行驶时间不足/过长报警附加信息消息体数据格式
起始字节
字段
数据类型
描述及要求
0
路段ID
DWORD
4
路段行驶时间
WORD
单位为秒(s)
6
结果
BYTE
0:不足;1:过长
3.
4.
a) WEB接口开发
i. 登录
1. 参数:用户名、签名
2. 返回:用户ID、用户名、手机号等信息
ii. 手机号验证
1. 参数:用户ID、手机号码、验证码
2. 返回:0 成功 ;其他 失败
iii.
iv. 获取验证码
1. 参数:手机号码
2. 返回:验证码
v. 历史订单查询
1. 参数:乘客ID、起始时间、终止时间
2. 返回:乘客ID、乘客姓名、订单号、取车时间、取车地点、还车时间、还车地点
vi. 车辆信息
1. 参数:车牌号码
2. 返回:车牌号码、车型信息(X门X座等信息)
vii. 提交订单
1. 参数:乘客ID、取送方式(上门取送或到店取送)、取车城市、取车位置(客户位置)、还车城市、还车位置(客户位置)、取车时间、还车时间、车牌号码
2. 返回值 0 成功,其他失败
viii. 会员个人信息添加
1. 参数:头像、昵称、姓名、性别、年龄、行业、公司、职业、手机号码、密码、国籍、户籍、住址、准驾车型、驾驶证有效期起、驾驶证有效期止、
2. 返回值:0 成功 其他失败
ix. 会员个人信息编辑
1. 参数:头像、昵称、年龄、行业、公司、职业、国籍、户籍、住址、准驾车型、驾驶证有效期起、驾驶证有效期止
x. 会员个人信息查询
1. 参数:乘客ID
2. 返回:乘客头像、昵称、姓名、性别、年龄、行业、公司、职业、手机号码、密码、国籍、户籍、住址、准驾车型、驾驶证有效期起、驾驶证有效期止
xi. 会员账户查询
xii. 实名认证
1. 参数:用户ID、真实姓名、身份证号
2. 返回:0 成功 1 身份证号已被注册过,其他失败
xiii. 客户信息查询
1. 参数:订单号
2. 返回:乘客昵称、乘客姓名、乘客电话、乘客评价等级
xiv. 钱包信息查询
1. 参数:乘客ID
2. 返回:支付方式、余额、银行卡绑定信息、优惠券信息、积分
xv. 修改密码
1. 参数:原密码、新密码、用户ID
2. 返回:0 成功 其他失败
xvi. 版本查询
1. 参数:现版本号
2. 返回:新版本号
xvii. 用户指南
1. 参数:用户类型(乘客或司机)
2. 返回:用户帮助大类型、子类型、具体帮助项名、具体帮助项内容
xviii. 行程安全
1. 参数:用户ID、用户类别
2. 返回:紧急求助教程内容、紧急联系人信息(姓名、手机号码)
xix. 更换手机号
1. 参数:用户ID、新手机号码
2. 返回:0 成功;1新手机号码已注册过,不能使用;其他失败
xx. 注销账号
1. 参数:用户ID
2. 返回:0 成功 ;其他失败
xxi. 电话客服
1. 参数:无
2. 返回:客服电话号码
xxii. 开具发票
1. 参数:
xxiii. 开票历史
1. 参数:用户ID、起始日期、终止日期
2. 返回:
- app及Java服务端实现JT808协议的定义解析
- java解析JT808协议
- java解析JT808协议
- java解析JT808协议
- 服务端使用c++实现websocket协议解析及通信
- mysql 协议的服务端握手包及对其解析
- WebSocket 协议及服务端实现
- JT808协议消息结构
- Java实现对http协议的解析
- Java实现http协议的解析
- 【手机app微信支付】app微信支付服务端(java)的实现
- Visual C#类的定义及实现方法实例解析
- APP登录功能的Java服务端开发
- JT808协议开发代码大放送
- 协议的定义和实现
- java的UDP服务端实现
- MysqlProtocolAnalyzer一个Java实现的MySql协议解析库
- Step2:服务器及协议的定义
- 数据结构-链表 JAVA语言实现
- Spring Boot配置多个DataSource
- 高通android平台功耗优化方法
- 低功耗蓝牙BLE协议栈简介
- greenplum shared_buffers设置问题
- app及Java服务端实现JT808协议的定义解析
- 学习Caffe(四)Loss Layer解析
- CXF笔记
- VS 下 C++ 制作DLL
- json
- 通过js控制输入的字数
- Xmind基础教程-电子表格
- Python学习随笔五:抽象之函数
- ReentrantReadWriteLock读写锁的使用