乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 1.引用标准JT/T809-2011 《道路运输车辆卫星定位系统平台数据交换》
乐高易JT809车联网数据交换中间件服务端采用netty作为底层架构,是一个基于JT/T809- 2011 《道路运输车辆卫星定位系统平台数据交换》协议-服务端(上级平台)》的数据交换中间件,采用MQ以json消息(支持RabbitMQ/Kafka)与业务平台进行交互,能够无缝接入各种异构系统,连接企业之间的车辆监控系统,实现数据互通,中间件主要功能包括:
一、 协议封装
中间件提供基于标准的json消息(消息格式见使用手册)与业务平台进行交互,业务平台按照中间件规定的json消息格式发送至指定MQ队列当中,中间件对json消息进行数据转换,封装成符合JT/T809- 2011 《道路运输车辆卫星定位系统平台数据交换》协议的消息格式。
二、 协议解析
中间件对业务平台发送过来的符合协议的消息格式的消息,进行数据转换,封装成标准的json消息(消息格式见使用手册),并发送到指定的MQ队列当中。
三、 链路管理
中间件按照协议规定的通讯方式、链路管理规范,管理下级平台与上级平台之间的链路通讯、状态维护、链路状态通知等。
四、 数据交换
中间件按照协议的要求,现实上级平台与下级平台之间的数据传输功能。
五、 安全控制
中间件具备数据加密、IP白名单等安全控制功能。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.消息定义网关中间件与上级平台之间通过json+MQ队列方式进行数据交换,协议网关(中间件)从下级平台接收的消息经过数据转换之后放到对应的MQ队列中,上级业务平台通过监听对应的MQ队列获得对应的消息根据业务需要进行业务处理,当上级业务平台需要与下级平台进行通信时,上级业务平台根据本文定义的消息格式把对应的消息发送至对应MQ队列中即可,协议网关(中间件)会监听对应的MQ队列获取对应的消息根据809协议的规定经过消息转换之后,把消息发送至下级平台。
(1){elink-upstream-urgent-queue}:车联网网关紧急上行消息队列,该队列主要存放车载终端设备注册、鉴权、上下线等消息。业务平台可监听该队列获取相关消息。
(2){elink-upstream-media-queue}:车联网网关多媒体上行消息队列,业务平台可监听该队列获取相关的多媒体数据。
(3){elink-upstream-gps-queue}:车联网网关位置信息上行消息队列,业务平台可监听该队列获取相关终端设备上传的位置信息。
(4){elink-upstream-common-queue}:车联网网关普通上行消息队列,该队列存放(1)、(2)、(3)以外的上行消息。业务平台可监听该队列获取相关的消息。
(5){elink.gateway.id}:上级平台下行消息队列,上级平台使用该消息队列发送消息给下级平台。
(1)上行消息
下级平台向上级平台发送的消息,消息格式如下:
{
"messageId":"1000",
"gatewayId":"网关id",
"exchangeId":"消息流水号",
"createTime":"接收时间",
"message":{
消息体
},
"dataLength":"消息字节数"
}
注意:messageId固定为"1000"。
消息体定义(message)格式:
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) {
"messageHeader":{
消息头
},
"messageBody":{
消息体
}
}
消息头(messageHeader)参数是固定的,消息头格式如下:
协议名称,jt809_2011, jt809_2019
消息头样例:
{ "messageSeq":1, "gnssCenterId":5350518, "protocol":"jt809_2011", "messageId":"1200", "protocolVersion":"2011"}
消息体(messageBody)则根据协议定义各不相同,具体见下文的消息定义。
(2)下行消息
上级平台向下级平台下发的消息,消息格式如下:
{ "messageId":"9000", "gatewayId":"网关id", "exchangeId":"平台消息流水号", "message":"{消息体定义}"}
注意:messageId固定为"9000"。
消息体定义格式:
{
"messageHeader":{
消息头
},
"messageBody":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 消息头(messageHeader)参数是固定的,消息头格式如下:
{ "gnssCenterId":"下级平台接入码", "protocol":"协议名称", "protocolVersion":"协议版本", "messageId":"消息id"}
(3)协议网关(中间件)应答消息
协议网关(中间件)应答上级平台下行消息的处理结果,其中messageId固定为"0001",消息格式:
-1:未知错误
0:成功
1:下级平台不在线
2:消息有误
3:不支持该消息
消息样例:
{ "messageId":"0001", "gatewayId":"网关id", "exchangeId":"平台消息流水号", "message":{ "result":"消息处理结果", "desc":"消息处理结果描述" }}
(4)链路状态消息
其中messageId固定为"0002",消息体描述见下文。
{ "messageId":"0002", "gatewayId":"网关id", "exchangeId":"", "message":{
消息体定义
}}
(5)流量异常消息
如果协议中间件配置了流量控制策略,当下级平台的发送消息的频率异常时会触发流量告警,其中messageId固定为"0008",消息体描述见下文。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "messageId":"0008", "gatewayId":"网关id", "exchangeId":"", "message":"{消息体定义}"}
(6)接入平台信息列表请求消息
上级平台应答“9001”消息,其中messageId固定为"1001",消息体描述见下文。
{ "messageId":"1001", "gatewayId":"网关id", "exchangeId":"", "message":{}}
(7)接入平台信息列表请求应答消息
如果协议中间件使用配置文件“inferior-platforms.xml”配置了接入平台信息,则上级业务平台不必处理该消息,其中messageId固定为"9001",消息体描述见下文。
{ "messageId":"9001", "gatewayId":"网关id", "exchangeId":"", "message":"{消息体定义}"}
消息概述
(1) 消息名称:接入平台信息列表请求消息
(2) 消息描述:网关中间件向上级业务平台请求当前接入平台信息列表
(3) 消息方向:协议网关(中间件)->上级平台
(4) 业务逻辑:协议网关启动时,向业务平台发送接入平台信息列表请求消息,业务平台收到该消息之后应答“接入平台信息列表请求应答消息”。
消息体定义
消息示例
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "gatewayId":"elink-iov-exchange-server", "createTime":1677500627635}
消息概述
(1) 消息名称:接入平台信息列表请求应答消息
(2) 消息描述:上级业务平台应答网关中间件当前接入平台信息列表
(3) 消息方向: 上级平台->协议网关(中间件)
(4) 业务逻辑:如果协议中间件使用配置文件“inferior-platforms.xml”配置了接入平台信息,则上级业务平台不必处理该消息。
消息体定义
下级平台接入码(下级平台接入时需提供给下级平台),必须保证平台唯一 ,数据类型:Long
下级平台从链路ip(需要下级平台提供),非必填,非空时下级平台登录时校验ip地址
下级平台从链路端口(需要下级平台提供),非必填,数据类型:Integer,非空时下级平台登录时校验端口
下级平台登录账号(下级平台接入时需提供给下级平台) ,数据类型:Long
下级平台登录密码(下级平台接入时需提供给下级平台) ,数据类型:string,最大长度不超过8个字符
下级平台加密参数m1(下级平台接入时需提供给下级平台),数据类型:Long
下级平台加密参数ia1(下级平台接入时需提供给下级平台),数据类型:Long
下级平台加密参数ic1(下级平台接入时需提供给下级平台),数据类型:Long
消息示例
{ "messageId":"9001", "message":[ { "gnssCenterId":5350518,
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "protocol":"jt809_2011", "protocolVersion":"2011", "subordinateLinkEnable":true, "ip":"127.0.0.1", "port":6047, "userId":9000631, "password":"12345678", "m1":10000000, "ia1":20000000, "ic1":30000000, "verifyCode":888 } ]}
(1) 消息名称:链路管理消息
(2) 消息描述:上级平台可以利用该消息,强制关闭下级平台的主从链路
(3) 消息方向:上级平台->协议网关(中间件)
(4) 业务逻辑:
(1)上级平台发现下级平台的链路异常时,可发送该消息强制关闭链路;
(2)上级平台发现从链路异常断开时,可重新开启;
(3)正常情况下,上级平台不需要管理从链路,协议网关(中间件)在主链路建立的同时建立从链路。
协议名称,jt809_2011, jt809_2019
0:关闭从链路
1: 关闭主链路
2: 关闭主从链路
3:开启从链路
{ "messageId":"1002", "message":{ "gnssCenterId":5350518,
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "protocol":"jt809_2011", "protocolVersion":"2011", "action":0 }}
(1) 消息名称:链路状态变更通知
(2) 消息描述:当下级平台与协议网关(中间件)之间的链路状态发生变化时,协议网关(中间件)发送消息通知上级平台
(3) 消息方向:协议网关(中间件)->上级平台
(4) 业务逻辑:上级平台接收到协议网关(中间件)的链路变更通知后,可根据自身业务进行处理,如暂停往下级平台发送消息。
协议名称,jt809_2011, jt809_2019
{ "messageId":"0002", "message":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "linkType":1, "result":1, "desc":"" }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.8 主链路登录请求消息1001(1) 消息名称:主链路登录请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1001
(4) 消息描述:下级平台与上级平台建立主链路之后,主动向上级平台发送主链路登录请求消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关进行登录验证,上级业务平台不必处理该消息,接收保存即可
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1001" }, "messageBody":{ "userId":30000000, "password":"30000000", "ip":"127.0.0.1", "port":19101 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.9 主链路登录应答消息1002(1) 消息名称:主链路登录应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1002
(4) 消息描述:上级平台应答下级平台主链路登录请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:协议网关自动应答“1001”消息
验证结果,定义如下:
0x00:成功;
0x01 :IP地址不正确;
0x02:接入码不正确;
0x03:用户没有注册;
Ox04:密码错误;
0x05:资源紧张,稍后再连接(已经占用);
0x06:其他
{ "exchangeId":"4", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1002" }, "messageBody":{ "result":0, "verifyCode":789 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.10 主链路注销请求消息1003(1) 消息名称:主链路注销请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1003
(4) 消息描述:下级平台发送消息告知上级平台请求注销主链路,上级平台应答之后,下级平台可以注销主链路。
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:该消息由协议网关(中间件)自动应答。上级平台不需要应答该消息,做存库处理用做日后以备查。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1003" }, "messageBody":{ "userId":10000000, "password":"20000000" } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:主链路注销应答消息(2) 链路类型:主链路
(3) 消息Id:0x1004
(4) 消息描述:上级平台应答下级平台主链路注销请求消息,消息体为空,协议网关(中间件接收到“1003”消息之后主动发送主链路断开消息通知下级平台,并自动断开主链路。
(5) 消息方向:协议网关(中间件)->下级平台
(6) 业务逻辑:协议网关(中间件)自动应答“1003”消息。上级平台可忽略该消息。
{ "exchangeId":"4", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1004" }, "messageBody":{ } }}
(1) 消息名称:主链路连接保持请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1005
(4) 消息描述:下级平台在空闲时定时发送该消息做为心跳检测
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:协议网关(中间件)自动应答“1006”消息,上级平台可忽略该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1005" }, "messageBody":{ } }}
(1) 消息名称:主链路连接保持应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1006
(4) 消息描述:主链路连接保持应答消息,消息体为空
(5) 消息方向:协议网关(中间件)->下级平台
(6) 业务逻辑:协议网关(中间件)自动应答“1005”消息,上级平台可忽略该消息。
{ "exchangeId":"4", "messageId":"9000", "message":{ "messageHeader":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1006" }, "messageBody":{ } }}
(1) 消息名称:主链路断开通知消息
(2) 链路类型:从链路
(3) 消息Id:0x1007
(4) 消息描述:
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息或做存库处理用做日后以备查。
错误代码,定义如下:
Ox00:主链路断开;
Ox01:其他原因
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1007" }, "messageBody":{ "errorCode":1
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.15 下级平台主动关闭主从链路通知消息1008 (1) 消息名称:下级平台主动关闭主从链路通知消息
(2) 链路类型:从链路
(3) 消息Id:0x1008
(4) 消息描述:由网关处理该消息,上级平台不需要处理
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息或做存库处理用做日后以备查。
链路关闭原因,定义如下:
0x00:网关重启;
0x01:其他原因
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "messageId":"1008", "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011" }, "messageBody":{ "reasonCode":0 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.16 从链路连接请求消息9001(1) 消息名称:从链路连接请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9001
(4) 消息描述:在下级平台与上级平台建立主链路之后,协议网关(中间件)主动发送从链路连接请求消息,建立从链路。
(5) 消息方向:协议网关(中间件)->下级平台
(6) 业务逻辑:
(2)协议网关(中间件)会在上级平台应答“1002”消息时,启动从链路;
(3)当上级平台发现从链路断开时,可主动发送该信息(或者通过链路管理消息)重新启动从链路(一般不需要主动发送该消息,由下级平台控制链路处理)。
{ "exchangeId":"13", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9001" }, "messageBody":{ "verifyCode":789 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.17 从链路连接应答消息9002(1) 消息名称:从链路连接应答消息
(2) 链路类型:从链路
(3) 消息Id:0x9002
(4) 消息描述:由协议网关(中间件)处理该消息,下级平台不需要处理。
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息或做存库处理用做日后以备查。
验证结果,定义如下:
0x00:成功;
0x01 : VERIFY_CODE错误;
Ox02:资源紧张,稍后再连接(已经占用);
0x03:其他
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9002" }, "messageBody":{ "result":0 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.18 从链路注销请求消息9003(1) 消息名称:从链路注销请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9003
(4) 消息描述:主链路关闭时,协议网关(中间件)自动发送该消息。
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台也可以主动发送该消息强制注销从链路
{ "exchangeId":"15", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9003" }, "messageBody":{ "verifyCode":789 } }}
(1) 消息名称:从链路注销应答消息
(2) 链路类型:从链路
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (3) 消息Id:0x9004(4) 消息描述:由协议网关(中间件)处理该消息,上级平台不需要处理
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9004" }, "messageBody":{ } }}
(1) 消息名称:从链路连接保持请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9005
(4) 消息描述:
(5) 消息方向:协议网关(中间件)->下级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"20", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9005" }, "messageBody":{ } }}
(1) 消息名称:从链路连接保持应答消息
(2) 链路类型:从链路
(3) 消息Id:0x9006
(4) 消息描述:
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518,
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9006" }, "messageBody":{ } }}
(1) 消息名称:从链路断开通知消息
(2) 链路类型:主链路
(3) 消息Id:0x9007
(4) 消息描述:
(5) 消息方向:协议网关(中间件)->下级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台可忽略该消息。
错误代码,定义如下:
Ox00:无法连接下级平台指定的服务IP与
端口;
Ox01:上级平台客户端与下级平台服务端
断开;
0x02:其他原因
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9007" }, "messageBody":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.23 上级平台主动关闭主从链路通知消息9008 (1) 消息名称:上级平台主动关闭主从链路通知消息
(2) 链路类型:主链路
(3) 消息Id:0x9008
(4) 消息描述:
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:由协议网关(中间件)进行链路管理。上级平台也可以主动发送该消息强制关闭主从链路
链路关闭原因,定义如下:
0x00:网关重启;
Ox01:其他原因
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9008" }, "messageBody":{ "reasonCode":0 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.24 接收定位信息数量通知消息9101(1) 消息名称:接收定位信息数量通知消息
(2) 链路类型:从链路
(3) 消息Id:0x9101
(4) 消息描述:接收定位信息数量通知消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台定时统计接收到的位置信息数量,并反馈给下级平台。上级平台可根据自身的业务确定是否需要发送该消息。
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9101" }, "messageBody":{ "total":10, "startTime":1675094400000, "endTime":1675177200000
} }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:上传车辆注册消息(2) 链路类型:主链路
(3) 消息Id:0x1201
(4) 消息描述:下级平台主动上传车辆注册消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:当下级平台有新的车辆注册入网时,发送该消息通知上级平台。上级平台接收到该消息后,应根据自身的业务特点进行处理。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A12345", "vehicleColor":2, "dataType":"1201", "platformId":"00000000000", "producerId":"00000000000", "terminalModelType":"2222222222222", "terminalId":"0123456", "terminalSimCode":"13611111111" }
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:实时上传车辆定位消息
(2) 链路类型:主链路
(3) 消息Id:0x1202
(4) 消息描述:下级平台实时上传车辆定位消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息后,应根据自身的业务特点进行处理。
车辆状态,
二进制表示: B31B30……B2B1BO。具体定义按照JTT808--2011中表17的规定。
报警状态,
二进制表示,0表示正常,1表示报警:B31B30B29.…B2B1BO。具体定义按照JT/T 808—2011中表18的规定
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "message":{ "messageHeader":{ "messageId":"1200", "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011" }, "messageBody":{ "vehicleColor":1, "altitude":669, "lng":121.177961, "dvrSpeed":149, "dataType":"1202", "speed":154, "vehicleNo":"桂K609F1", "encrypt":1, "alarm":0, "time":1675299481002, "state":518, "lat":31.150808, "mileage":188, "direction":350 } }}
(1) 消息名称:车辆定位信息自动补报消息
(2) 链路类型:主链路
(3) 消息Id:0x1203
(4) 消息描述:车辆定位信息自动补报消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息后,应根据自身的业务特点进行处理。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "vehicleNo":"桂K609F1", "encrypt":1, "alarm":0, "time":1675299481002, "state":518, "lat":31.150808, "mileage":188, "direction":350 } ] } }}
(1) 消息名称:启动车辆定位信息交换应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1205
(4) 消息描述:下级平台收到上级平台下发启动车辆定位信息交换请求消息9205后,下级平台应答该消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息后,应根据自身的业务特点进行处理,如标识对应的9205消息处理成功。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1205" } }}
(1) 消息名称:结束车辆定位信息交换应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1206
(4) 消息描述:下级平台收到上级平台结束车辆定位信息交换请求消息9206后,下级平台的应答消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息后,应根据自身的业务特点进行处理,如标识对应的9206消息处理成功。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1206" } }}
3.30 申请交换指定车辆定位信息请求消息1207 (1) 消息名称:申请交换指定车辆定位信息请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1207
(4) 消息描述:下级平台申请交换指定车辆定位信息请求消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息,应答“9207”消息,并定时向下级平台发送位置信息“9202”。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00000", "vehicleColor":2, "dataType":"1207", "startTime":1675094400000, "endTime":1675177200000 } }}
3.31 取消交换指定车辆定位信息请求消息1208 (1) 消息名称:取消交换指定车辆定位信息请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1208
(4) 消息描述:下级平台取消交换指定车辆定位信息请求消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息,并停止向下级平台发送位置信息“9202”,并应答“9208”消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00000", "vehicleColor":2, "dataType":"1208" } }}
(1) 消息名称:补发车辆定位信息请求消息
(2) 链路类型:主链路
(3) 消息Id:0x1209
(4) 消息描述:
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息,向下级平台补发位置信息“9203”,并应答“9209”消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200"
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) }, "messageBody":{ "vehicleNo":"测A00000", "vehicleColor":2, "dataType":"1209", "startTime":1675094400000, "endTime":1675177200000 } }}
3.33 上报车辆驾驶员身份识别信息应答消息120A (1) 消息名称:上报车辆驾驶员身份识别信息应答消息
(2) 链路类型:主链路
(3) 消息Id:0x120A
(4) 消息描述:下级平台应答上级平台下发的“920A”消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"120A", "driverName":"交通运输部行标", "driverId":"3289902836789987621", "licence":"312321312321312", "orgName":"中国交通部" } }}
(1) 消息名称:上报车辆电子运单应答消息
(2) 链路类型:主链路
(3) 消息Id:0x120B
(4) 消息描述:下级平台应答上级平台下发的“920B”消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"120B", "waybill":"98" } }}
(1) 消息名称:主动上报驾驶员身份信息消息
(2) 链路类型:主链路
(3) 消息Id:0x120C
(4) 消息描述:下级平台主动上报驾驶员身份信息消息120C
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息。
{ "exchangeId":"0", "messageId":"1000", "gatewayId":"elink-iov-exchange-server",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A12345", "vehicleColor":2, "dataType":"120C", "driverName":"test", "driverId":"412323198008080909", "licence":"12345678", "orgName":"123456789" } }}
(1) 消息名称:主动上报车辆电子运单信息消息
(2) 链路类型:主链路
(3) 消息Id:0x120D
(4) 消息描述:下级平台主动上报车辆电子运单信息消息120D
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息之后,根据自身业务处理消息。
{ "exchangeId":"0", "messageId":"1000",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1200" }, "messageBody":{ "vehicleNo":"测A12345", "vehicleColor":2, "dataType":"120D", "waybill":"123456789987654321" } }}
(1) 消息名称:交换车辆定位消息
(2) 链路类型:从链路
(3) 消息Id:0x9202
(4) 消息描述:上级平台下发指定车辆位置信息给下级平台
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台在接收到下级平台的1205消息后,通过该消息实时发送车辆位置信息给下级平台。
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011",
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "messageId":"9200" }, "messageBody":{ "dataType":"9202", "vehicleNo":"桂K609F1", "vehicleColor":1, "altitude":669, "lng":121.177961, "dvrSpeed":149, "speed":154, "encrypt":1, "alarm":0, "time":1675299481002, "state":518, "lat":31.150808, "mileage":188, "direction":350 } }}
(1) 消息名称:车辆定位信息补发消息
(2) 链路类型:从链路
(3) 消息Id:0x9203
(4) 消息描述:上级平台收到下级平台的“1209”消息后,使用该消息补发车辆位置信息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台补发车辆定位信息给下级平台,注意一次最多可发送5条。
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518,
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9203", "gpsList":[ { "altitude":669, "lng":121.177961, "dvrSpeed":149, "dataType":"9202", "speed":154, "encrypt":1, "alarm":0, "time":1675299481002, "state":518, "lat":31.150808, "mileage":188, "direction":350 } ] } }}
(1) 消息名称:交换车辆静态信息消息
(2) 链路类型:从链路
(3) 消息Id:0x9204
(4) 消息描述:上级平台使用该消息与下级平台交换车辆信息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要向下级平台发送该消息
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9204", "carInfo":{ "VIN":"测A00001" } } }}
(1) 消息名称:启动车辆定位信息交换请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9205
(4) 消息描述:上级平台向下级平台申请交换车辆定位信息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要向下级平台主动发送该消息,请求下级平台上报指定车辆的位置信息
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 启动车辆定位信息交换的原因,定义如下:
0x00:车辆进入指定区域;
Ox01 ;人工指定交换;
0x02:应急状态下车辆定位信息回传;
0x03:其他原因
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9205", "reasonCode":0 } }}
(1) 消息名称:结束车辆定位信息交换请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9206
(4) 消息描述:上级平台向下级平台发送结束车辆定位信息交换请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要向下级平台发送该消息,结束交换指定车辆的位置信息,下级平台收到该消息之后,停止上报该车辆的位置信息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 结束车辆定位信息交换的原因,定义如下:
0x00:车辆离开指定区域;
0x01 :人工停止交换;
0x02 :紧急监控完成;
0x03:车辆离线;
0x04:其他原因
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9206", "reasonCode":0 } }}
3.42 申请交换指定车辆定位信息应答消息9207 (1) 消息名称:申请交换指定车辆定位信息应答消息
(2) 链路类型:从链路
(3) 消息Id:0x9207
(4) 消息描述: 上级平台应答下级平台的“1207”消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台收到下级平台发送的“1207”消息后,应答该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 申请交换指定车辆定位信息结果,定义如下:
0x00:申请成功;
Ox01:上级平台没有该车数据;
Ox02:申请时间段错误;
0x03:其他
{ "exchangeId":"21", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9207", "result":0 } }}
3.43 取消交换指定车辆定位信息应答消息9208 (1) 消息名称:取消交换指定车辆定位信息应答消息
(2) 链路类型:从链路
(3) 消息Id:0x9208
(4) 消息描述:上级平台应答下级平台的“1208”消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台收到下级平台发送的“1208”消息后,应答该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 取消申请交换指定车辆定位信息结果,定义如下:
0x00:取消申请成功;
Ox01 :之前没有对应申请信息;
0x02:其他
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9208", "result":0 } }}
(1) 消息名称:补发车辆定位信息应答消息
(2) 链路类型:从链路
(3) 消息Id:0x9209
(4) 消息描述:上级平台应答下级平台的“1209”消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台收到下级平台发送的“1209”消息后,应答该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 补发车辆定位信息应答结果,定义如下:
0x00:成功,上级平台即刻补发;
0x01 :成功,上级平台择机补发;
0x02:失败,上级平台无对应申请的定位数据;
0x03 :失败,申请内容不正确;
0x04:其他原因
{ "exchangeId":"22", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9209", "result":0 } }}
3.45 上报车辆驾驶员身份识别信息请求消息920A (1) 消息名称:上报车辆驾驶员身份识别信息请求消息
(2) 链路类型:从链路
(3) 消息Id:0x920A
(4) 消息描述:上级平台向下级平台发送上报车辆驾驶员身份识别信息请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (6) 业务逻辑:上级平台根据业务需要向下级平台发送该消息,请求下级平台上报指定车辆驾驶员身份识别信息。{ "exchangeId":"8", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"920A" } }}
(1) 消息名称:上报车辆电子运单请求消息
(2) 链路类型:从链路
(3) 消息Id:0x920B
(4) 消息描述: 上级平台向下级平台发送上报车辆电子运单请求
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要向下级平台发送该消息,请求上报指定车辆电子运单。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 消息体定义{ "exchangeId":"5", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9200" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"920B" } }}
(1) 消息名称:平台查岗应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1301
(4) 消息描述:下级平台应答上级平台的查岗请求(9301)
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台接收到该消息后,验证该消息的应答内容。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"822083584", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1300" }, "messageBody":{ "dataType":"1301", "objectType":2, "objectId":"002", "infoId":1, "infoContent":"北京" } }}
(1) 消息名称:下发平台间报文应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1302
(4) 消息描述:下发平台应答上级平台的报文请求消息(9302)
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"922746880", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1300" }, "messageBody":{ "dataType":"1302", "infoId":1 } }}
(1) 消息名称:平台查岗请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9301
(4) 消息描述:上级平台定时向下级平台发送查岗请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台定时向下级平台发送查岗请求消息,检查下级平台是否安排有值守人员。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"19", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9300" }, "messageBody":{ "dataType":"9301", "objectType":2, "objectId":"002", "infoId":1, "infoContent":"001" } }}
(1) 消息名称:下发平台间报文请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9302
(4) 消息描述:上级平台向下级平台发送报文提醒消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑: 上级平台根据业务需要向下级平台发送报文提醒消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) { "exchangeId":"14", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9300" }, "messageBody":{ "dataType":"9302", "objectType":2, "objectId":"002", "infoId":1, "infoContent":"001" } }}
(1) 消息名称:报警督办应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1401
(4) 消息描述:下级平台应该上级平台下发的报警督办请求消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务需要处理该消息。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 报警处理结果,定义如下:
Ox00:处理中;
0x01:已处理完毕;
0x02:不作处理;
0x03:将来处理
{ "exchangeId":"1073741824", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1400" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1401", "supervisionId":1, "result":0 } }}
(1) 消息名称:上报报警信息消息
(2) 链路类型:主链路
(3) 消息Id:0x1402
(4) 消息描述:下级平台上报报警信息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (4) 消息描述:下级平台主动上报报警处理结果信息消息(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
报警处理结果,定义如下:
Ox00:处理中:
0x01:已处理完毕:
0x02:不作处理;
0x03:将米处理
{ "exchangeId":"33", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1400" }, "messageBody":{ "vehicleNo":"测A12345", "vehicleColor":2, "dataType":"1403", "infoId":22, "result":1 } }}
(1) 消息名称:报警督办请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9401
(4) 消息描述: 上级平台向下级平台发送报警督办请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "supervisorTel":"003", "supervisorEmail":"002" } }}
(1) 消息名称:报警预警消息
(2) 链路类型:从链路
(3) 消息Id:0x9402
(4) 消息描述:上级平台向下级平台发送报警预警消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要主动向下级平台发送该消息。
报警信息来源,定义如下:
0x01:车载终端;
0x02:企业监控平台;
0x03:政府监管平台;
0x09:其他
报警类型,809协议表75中对应的十六进制转化成十进制
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9400" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1,
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) "dataType":"9402", "warnSrc":1, "warnType":1, "warnTime":1675177200000, "warnContent":"001" } }}
(1) 消息名称:实时交换报警信息消息
(2) 链路类型:从链路
(3) 消息Id:0x9403
(4) 消息描述: 上级平台向下级平台实时交换报警信息消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务需要主动向下级平台发送该消息。
报警信息来源,定义如下:
0x01:车载终端;
0x02:企业监控平台;
0x03:政府监管平台;
0x09:其他
报警类型,809协议表75中对应的十六进制转化成十进制
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9400"
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9403", "warnSrc":1, "warnType":1, "warnTime":1675177200000, "warnContent":"001" } }}
(1) 消息名称:车辆单项监听应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1501
(4) 消息描述:下级平台向上级平台发送车辆单项监听应答消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
车辆单向监听应答结果,定义如下:
Ox00:监听成功;
0x01:监听失败
{ "exchangeId":"1207959552", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1500"
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1501", "result":0 } }}
(1) 消息名称:车辆拍照请求消息应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1502
(4) 消息描述:下级平台应答上级平台的车辆拍照请求消息应答消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
拍照应答标识,标识拍照后的结果或原因,定义如下:
0x00:不支持拍照相;
0x01:完成拍照;
0x02:完成拍照、照片数据稍后传送;
0x03:未拍照(不在线);
0x04:未拍照(无法使用指定镜头);
0x05:未拍照(其他原因);
0x09:车牌号码错误
图片大小,定义如下:
0x01 :320 * 240;
0x02:640 * 48 ;
0x03 :800 * 600;
0x04:1024* 76;
0x05:176* 144[ QCIF ];
Ox06:352 * 288[ CIF];
0x07:704 * 288[ IIALF D1];
Ox08 :704 *576[ D1 ]
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:下发车辆报文应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1503
(4) 消息描述:下级平台应答上级平台车辆报文消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
下发车辆报文应答结果,定义如下:
0x00:下发成功;
0x01 :下发失败
{ "exchangeId":"1258291200", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1503", "msgId":917, "result":0 } }
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:上报车辆行驶记录应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1504
(4) 消息描述:下级平台应答上级平台上报车辆行驶记录消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息
终端上传的行驶记录信息byte字节转成十六进制字符串
{ "exchangeId":"1342177280", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1504", "commandType":"01", "travelDataInfo":"行驶记录仪数据十六进制字符串" } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.61 车辆应急接入监管平台请求消息应答消息1505(1) 消息名称:车辆应急接入监管平台应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1505
(4) 消息描述: 下级平台应答上级平台车辆应急接入监管平台信息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
Ox00:车载终端成功收到该命令;
0x01 :无该车辆;
Ox02:其他原因失败
{ "exchangeId":"1375731712", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1505", "result":0 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.62 车辆单项监听请求消息9501(1) 消息名称:车辆单项监听请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9501
(4) 消息描述:上级平台向下级平台的终端发送车辆单项监听请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务向下级平台发送该消息
{ "exchangeId":"7", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9501", "monitorTel":"13609616355" } }}
(1) 消息名称:车辆拍照请求消息请求消息
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (2) 链路类型:从链路(3) 消息Id:0x9502
(4) 消息描述:上级平台向下级平台的终端发送车辆拍照请求消息请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务向下级平台发送该消息。
图片大小,定义如下:
0x01 :320 * 240;
0x02:640 * 48 ;
0x03 :800 * 600;
0x04:1024* 76;
0x05:176* 144[ QCIF ];
Ox06:352 * 288[ CIF];
0x07:704 * 288[ IIALF D1];
Ox08 :704 *576[ D1 ]
{ "exchangeId":"1", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9502", "lensId":1, "size":2 } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:下发车辆报文请求消息(2) 链路类型:从链路
(3) 消息Id:0x9503
(4) 消息描述:上级平台向下级平台的终端发送车辆报文请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务向下级平台发送该消息。
报文优先级,定义如下:
0x00:紧急;
0x01:一般
{ "exchangeId":"0", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9503", "msgSequence":2, "msgPriority":1, "msgContent":"001" } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:上报车辆行驶记录请求消息(2) 链路类型:从链路
(3) 消息Id:0x9504
(4) 消息描述:上级平台向下级平台的终端发送车辆行驶记录请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务向下级平台发送该消息。
{ "exchangeId":"18", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9500" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9504", "commandType":"1" } }}
3.66 车辆应急接入监管平台请求消息请求消息9505 (1) 消息名称:车辆应急接入监管平台请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9505
(4) 消息描述:上级平台向下级平台的终端发送车辆应急接入监管平台请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3.67 补报车辆静态信息应答消息1601(1) 消息名称:补报车辆静态信息应答消息
(2) 链路类型:主链路
(3) 消息Id:0x1601
(4) 消息描述:下级平台应该上级平台补报车辆静态信息消息
(5) 消息方向:下级平台->协议网关(中间件)->上级平台
(6) 业务逻辑:上级平台根据业务处理该消息。
{ "exchangeId":"1476395008", "messageId":"1000", "gatewayId":"elink-iov-exchange-server", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"1600" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"1601", "carInfo":{ "OWERS_NAME":"宝钢集团有限公司", "VEHICLE_NATIONALITY":"330108", "OWERS_TEL":"13516814499", "OWERS_ID":"382738", "VIN":"测A11111", "TRANS_TYPE":"030", "VEHICLE_COLOR":"2", "VEHICLE_TYPE":"40" } } }
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) (1) 消息名称:补报车辆静态信息请求消息
(2) 链路类型:从链路
(3) 消息Id:0x9601
(4) 消息描述:上级平台向下级平台发送补报车辆静态信息请求消息
(5) 消息方向:上级平台->协议网关(中间件)->下级平台
(6) 业务逻辑:上级平台根据业务向下级平台发送该消息。
{ "exchangeId":"6", "messageId":"9000", "message":{ "messageHeader":{ "gnssCenterId":5350518, "protocol":"jt809_2011", "protocolVersion":"2011", "messageId":"9600" }, "messageBody":{ "vehicleNo":"测A00001", "vehicleColor":1, "dataType":"9601" } }}
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 4.二次开发(1) 了解java基础,熟悉搭建java环境
(2) 熟悉kafka/RabbitMQ的使用,包括部署、开发、运维监控等
(3) 熟悉809协议消息的相关业务流程
(1) 上级平台需管理下级平台鉴权信息,包括:用户ID(userId,数据类型:Long)、用户密码(password,数据类型:String,长度不超过8个字符)、下级平台接入码(平台唯一,gnssCenterId,数据类型:Long)以及加密参数m1、ia1、ic1(平台默认m1=10000000,ia1=20000000,ic1=30000000);
(2) 当下级平台需要接入上级平台时,需要把网关中间件所在服务器的公网IP地址、端口号以及以上信息发给下级平台,用于连接时鉴权使用;
(3) 当下级平台连接上级平台之后,首先发送0x1001消息给上级平台,上级平台经过鉴权校验之后,发送0x1002消息至中间件,下级平台方可正常发送数据。
(4) 上级平台监听相关的消息队列,根据业务需要处理相关消息。
(5) 上级平台需要往下级平台发送消息时,按照本文规定格式把消息发送到对应的队列中即可。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 4.4 下行消息流程1、上级平台按照文档中定义的json格式封装好消息并把消息发送至消息中间件中对应的队列中;
2、上级平台可以定时查询消息的处理状态;
3、数据交换中间件监听队列获取消息,按照JT/T809协议规定的格式封装消息,并把消息下发给下级平台,最后应答上级平台“0001消息”(消息处理结果);
4、下级平台处理完成上级平台下发的消息后,应答上级平台对应的消息;
5、数据交换中间件接收到下级平台应答的消息,经过解码数据转换之后,把消息发布至消息中间件对应的队列中;
6、上级平台监听消息队列,根据自身的业务需求处理应答消息,如把对应的下发消息状态设置为“下级平台已应答”等。
elink-iov-exchange-server-message-processor以责任链方式处理消息,详细逻辑在代码中有注释。
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 4.6 快速测试程序为了快速完成测试,上级平台在部署RabbitMQ时,可开启web管理端,通过web管理端发送对应消息到相关队列中,即可与下级平台进行通讯,如下图所示:
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 4.7 应用程序部署操作系统:建议使用linux,centOS 7以上版本。
Java环境:建议安装jdk 1.8。
Rabbitmq:建议安装rabbitmq最新版本。
elink-iov-jt809-XXX-exchange-server,为java应用程序,运行在java环境上,依赖rabbitmq。
应用程序需要我司授权才能够运行,目前应用程序的运行支持windows以及centos授权,再程序运行之前,首先需要收集服务器信息给我司的技术人员生成license授权文件才能启动程序(把我司提供的授权文件copyright放在应用程序conf目录下覆盖原有文件即可)。
接入网关配置文件application.properties,存放目录为应用程序根目录下的conf文件夹(注:该文件夹下所有的文件必须,不能删除)。其中application.properties文件修改rabbitmq配置以下两项配置(红色部分),其他的默认配置即可:
#协议所使用的TCP端口
#JT/T809_2011版本协议连接该端口
elink.jt809_2011.server.port=6045
#JT/T809_2019版本协议连接该端口
elink.jt809_2019.server.port=6046
spring.rabbitmq.host=localhost spring.rabbitmq.port=5672
spring.rabbitmq.username=admin spring.rabbitmq.password=123456 #是否开启rabbitmq消息持久化特性,开启该特性会减低性能,可提高消息可靠性,平台各个服务配置请保持一致 rabbitmq.message.durable=true
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) #上行消息网关
rabbitmq.upstream.message.exchange=elink.upstream.message.direct.exchange
#下行消息网关,平台发送消息时,把终端连接的网关id作为路由key,把消息发送到该消息网关即可
rabbitmq.downstream.message.exchange=elink.downstream.message.direct.exchange
注意其中配置“elink.*.server.port”,为下级平台主链路连接的tcp端口,注意操作系统配置防火墙开放该端口。
接入平台信息配置文件inferior-platforms.xml,存放目录为应用程序根目录下的conf文件夹。使用网关中间件管理下级平台接入信息时,需要配置该配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<platforms>
<platform>
<!-- 下级平台通讯协议,固定值 -->
<protocol>jt809_2019</protocol>
<!-- 下级平台通讯协议版本,固定值 -->
<protocolVersion>2019</protocolVersion>
<!-- 下级平台名称 -->
<gnssCenterName>下级平台名称1</gnssCenterName>
<!-- 下级平台接入码(下级平台接入时需提供给下级平台),必须保证平台唯一 ,数据类型:Long-->
<gnssCenterId>9616320</gnssCenterId>
<!--是否使用下级平台从链路,视下级平台情况决定-->
<subordinateLinkEnable>true</subordinateLinkEnable>
<!--下级平台从链路ip(需要下级平台提供),非必填,非空时下级平台登录时校验ip地址 --> <ip></ip>
<!--下级平台从链路端口(需要下级平台提供),非必填,数据类型:Integer,非空时下级平台登录时校验端口-->
<port></port>
<!-- 下级平台登录账号(下级平台接入时需提供给下级平台) ,数据类型:Long-->
<userId>9000630</userId>
<!-- 下级平台登录密码(下级平台接入时需提供给下级平台) ,数据类型:string,最大长度不超过8个字符-->
<password>12345678</password>
<!--下级平台加密参数m1(下级平台接入时需提供给下级平台),数据类型:Long-->
<m1>60000000</m1>
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) <!--下级平台加密参数ia1(下级平台接入时需提供给下级平台),数据类型:Long-->
<ia1>70000000</ia1>
<!--下级平台加密参数ic1(下级平台接入时需提供给下级平台),数据类型:Long-->
<ic1>80000000</ic1>
<!--下级平台接入验证码,数据类型:Integer -->
<verifyCode>888</verifyCode>
</platform>
<platform>
<protocol>jt809_2019</protocol>
<protocolVersion>2019</protocolVersion>
<gnssCenterName>下级平台名称2</gnssCenterName>
<gnssCenterId>9616321</gnssCenterId>
<subordinateLinkEnable>true</subordinateLinkEnable>
<ip></ip>
<port></port>
<userId>9000631</userId>
<password>12345678</password>
<m1>60000000</m1>
<ia1>70000000</ia1>
<ic1>80000000</ic1>
<verifyCode>888</verifyCode>
</platform>
</platforms>
把elink-iov-jt809-XXX-exchange-server应用程序复制到安装有java环境的操作系统中即可,应用程序的启动脚本文件放在应用程序根目录下的bin文件夹中。注意启动应用程序前需检查端口是否已被其他应用程序占用(linux下执行命令:netstat -ano|grep 6045)。
windows操作系统
方式一:双击 bin/startup.bat执行文件启动应用程序,以该方式启动,命令窗口关闭之后,程序也将停止,不建议以该方式启动。
方式二:以后台服务形式运行,操作步骤:
1、双击bin/installAppService.bat执行文件把应用程序注册成为win后台服务。注册成功之后,会在win服务列表中有一个名字为“elink-iov-jt809-XXX-exchange-server”的服务,该服务为开机自动启动;
2、可以在命令窗口中使用命令或者在服务列表中手动启动或者停止。命令方式:
启动程序:net start elink-iov-jt809-XXX-exchange-server
停止程序:net stop elink-iov-jt809-XXX-exchange-server
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) 3、双击bin/uninstallAppService.bat执行文件,则卸载“elink-iov-jt809-XXX-exchange-server”已经注册的win后台服务。程序卸载时可双击该执行文件。
linux操作系统
bin/startup.sh为linux下启动脚本(需要赋予该文件执行权限:chmod 777 startup.sh)。
启动程序命令:./startup.sh start
停止程序命令:./startup.sh stop
linux命令注解:
重启已经运行的程序,与前者区别是程序必须已经在运行
报告运行时的Java thread dump(thread dump百度百科:http://baike.baidu.com/view/5111187.htm)
注意事项:
a、启动前需要检查接入网关所使用的端口是否被占用,linux下命令:netstat -ano|grep 6045
b、查看程序是否启动linux命令:ps -aux | grep elink-iov-jt809-XXX-exchange-server;
c、若需要重启接入网关应用,在停止程序之后,需要查看程序所监听端口(如:netstat -ano|grep 6045,一般等待一两分钟就能完全释放,取决于操作系统的socket timeout配置)是否完全释放在重新启动应用,否则程序启动会报错。
logback-spring.xml为日志配置文件,通过修改该配置文件可以配置输出日志的级别,平台默认级别为“info”。当平台已经进入稳定运行阶段,接入的车辆数量比较大时,为了减少打印日志对系统的性能影响,建议把日志级别调整为“error”级别。见以下标红部分:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志级别 -->
<property name="log.level" value="INFO"/>
<logger name="com.legaoyi.iov.exchange.server.mq" level="INFO" additivity="false">
<appender-ref ref="mqAppender" />
<appender-ref ref="errorAppender" />
</logger>
乐高易软件乐高易车联网数据交换中间件技术支持:78772895(QQ) <!-- 平台上行消息日志 -->
<logger name="com.legaoyi.iov.exchange.server.LoggerChannelInboudHandler" level="INFO" additivity="false">
<appender-ref ref="inboundAppender" />
<appender-ref ref="errorAppender" />
</logger>
<!-- 平台下行消息日志 -->
<logger name="com.legaoyi.iov.exchange.server.LoggerChannelOutboudHandler" level="INFO" additivity="false">
<appender-ref ref="outboundAppender" />
<appender-ref ref="errorAppender" />
</logger>
</configuration>
elink-iov-jt809-XXX-exchange-server.log
日志文件放在应用程序根目录下的logs文件夹中,默认保留最近7天的日志,默认日志级别为“info”。该日志主要存放了链路管理的相关消息以及中间件程序运行异常日志。其中:
“info” 级别:一般为未解码或者已编码的消息。
“warn” 级别:一般为链路管理的消息,如下级平台建立tcp连接,黑名单信息等。
“error”级别:中间件异常日志。
日志文件放在应用程序根目录下的logs文件夹中,默认保留最近7天的日志,默认日志级别为“warn”。该日志存放了中间件发送到MQ以及上级平台发送给下级平台的消息日志。
inbound.log
日志文件放在应用程序根目录下的logs文件夹中,默认保留最近7天的日志,默认日志级别为“info”。该日志存放了下级平台发送给上级平台的原始消息。
outbound.log
日志文件放在应用程序根目录下的logs文件夹中,默认保留最近7天的日志,默认日志级别为“info”。该日志存放了上级平台发送给下级平台的原始消息。