“两客一危一重货”车辆运输安全是当前道路运输安全管理工作的重中之重,相应的车辆GPS定位监控平台是监控“两客一危一重货”车辆运输安全的重要平台。本系统结合交通部JT808、JT1078等协议标准,提供Java开发车载视频定位监控系统的开发思路。

一:JT808协议解析和服务器搭建。

JT808协议分为2011版、2013版、2019版本。市面上大多是2013版,少数2019版。2013和2019版本的最大区别是报文固定头部把手机号从原来的6字节BCD码改成了10字节BCD码。

2013版报文头:

2019版报文头:

对于TCP报文的解析,消息头可以使用公共组件,通过版本标记解析不同版本的消息头。消息体用每个消息自定义的解析格式。

public abstract class JTMessage {protected String msgId;//消息编号protected String tid;//终端IDprotected String msgNo;//消息流水protected int version;//版本号protected int isPack;//分包

解析报文头:

         //解析报文头ReadByteFromHex reader = new ReadByteFromHex(msg);//=============解析消息头开始=============reader.readByte(1);// 7EString msgId = reader.readByte(2);// 消息idString msgBodyAttr = reader.readByte(2);// 消息体属性int msgBodyInt = Integer.parseInt(msgBodyAttr, 16);boolean isVersion = (msgBodyInt & 0x4000) > 0;// 是否有版本号 取第13位是否为1 0x4000二进制是0100000000000000int version = 0; //2019版本开始从1递增if (isVersion) {version = Integer.parseInt(reader.readByte(1), 16); // 版本号}//如果版本号大于0 则手机号为10位String tid = version > 0 ? reader.readByte(10) : reader.readByte(6);// 手机号,当做idString msgNo = reader.readByte(2);// 消息流水// 是否分包boolean isPack = (msgBodyInt & 0x2000) > 0;// 是否分包 取第13位是否为1 0x2000二进制是0010000000000000int packTotal = 0;int packNum = 0;if (isPack) {// 如果有分包则多读4个字节packTotal = Integer.parseInt(reader.readByte(2), 16);packNum = Integer.parseInt(reader.readByte(2), 16);}boolean isRSA = (msgBodyInt & 0x400) > 0;// 消息体是否过RSA算法加密; 取第13位是否为1 0x400二进制是0000010000000000//=============解析消息头结束=============

解析消息体:

//=============解析消息体开始=============String bodyHex = reader.readByte(msgBodyInt & 0x3ff); // 消息体属性前10位是消息体长度 0x3ff二进制是0000001111111111if ("0200".equals(msgId)) {//位置上报JTMessage t0200 = new T0200(tid, msgNo);t0200.decodeBody(bodyHex);return t0200;} else if ("0002".equals(msgId)) {//心跳JTMessage t0202 = new T0002(tid, msgNo);t0202.decodeBody(bodyHex);return t0202;} else if ("0003".equals(msgId)) {//注销JTMessage t0003 = new T0003(tid, msgNo);t0003.decodeBody(bodyHex);return t0003;} else if ("0100".equals(msgId)) {//注册JTMessage t0100 = new T0100(tid, msgNo);t0100.decodeBody(bodyHex);return t0100;} else if ("0102".equals(msgId)) {//鉴权JTMessage t0102 = new T0102(tid, msgNo);t0102.decodeBody(bodyHex);return t0102;} else if ("0001".equals(msgId)) {//终端通用应答JTMessage t0001 = new T0001(tid, msgNo);t0001.decodeBody(bodyHex);return t0001;} else if ("0704".equals(msgId)) {//定位数据批量上传JTMessage t0704 = new T0704(tid, msgNo);t0704.decodeBody(bodyHex);return t0704;}//=============解析消息体结束=============

二、设备上报流程:              

注意,设备数据大批量上报的情况下,服务器需要支持高并发,netty作为天然的高并发框架,可以用作JT808服务器的接入点。

三、JT1078服务器的搭建流程:

1078服务器就是一个流媒体服务器,要处理的功能是接收设备上报的视频数据,解析成浏览器能够播放的格式,并通过websocket或者http协议发送到浏览器,浏览器解码观看视频。

下面是系统demo演示地址:gps.cachtek.com

Java实现符合交通部标JT808和JT1078协议服务器的思路相关推荐

  1. 交通部标JT808及JT1078车辆定位与视频监控平台开源对比

    1.GPS部标软件平台和视频软件平台 技术支持:个人 或 不详 联系QQ:2379423771 演示地址:没有演示地址,只有博客网址:http://www.jt808.com/ 最早的GPS定位平台商 ...

  2. 部标JT808 JT/T808协议网关

    项目介绍 基于Netty,实现JT808 JT/T808部标协议的消息处理,与编码解码: 使用SpringBoot + MyBatis提供数据入库.Web接口服务: 协议部分不依赖Spring,可移除 ...

  3. 基于java spring框架开发部标1078视频监控平台精华文章索引

    部标1078视频监控平台,是一个庞杂的工程,涵盖了多层协议,部标jt808,jt809,jt1078,苏标Adas协议等,多个平台功能标准,部标796标准,部标1077标准和苏标主动安全标准,视频方面 ...

  4. SpringBoot+Netty构建高并发稳健的部标JT808网关

    应很多朋友的要求,今天分享一下如何使用SpringBoot和Netty构建高并发稳健的JT808网关,并且是兼容JT808-2011和JT808-2019的网关,此网关已经有多个客户在商用. JT80 ...

  5. java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署

    java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署 java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  6. java计算机毕业设计交通非现场执法系统源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计交通非现场执法系统源码+mysql数据库+系统+lw文 java计算机毕业设计交通非现场执法系统源码+mysql数据库+系统+lw文档+部署 档+部署 本源码技术栈: 项目架构: ...

  7. java毕业设计OTET交通在线查询购票系统Mybatis+系统+数据库+调试部署

    java毕业设计OTET交通在线查询购票系统Mybatis+系统+数据库+调试部署 java毕业设计OTET交通在线查询购票系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S ...

  8. java计算机毕业设计交通非现场执法系统MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计交通非现场执法系统MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计交通非现场执法系统MyBatis+系统+LW文档+源码+调试部署 本源码技术栈: 项目架构 ...

  9. 基于JAVA智能道路交通管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA智能道路交通管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA智能道路交通管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技术栈: ...

最新文章

  1. iOS UITextField输入框随键盘弹出界面上移
  2. 《Pro ASP.NET MVC 3 Framework》学习笔记之九【Ninject的使用-下】
  3. Linux-iptables命令
  4. BZOJ 4247 挂饰 背包DP
  5. Oracle10g/11g数据库性能的诊断和监控方法论
  6. xmlhttprequest level 2
  7. 【Makefile由浅入深完全学习记录6】Makefile中变量的高级主题上
  8. css3新增特性集合贴
  9. Makefile:宏定义EXTRA_CFLAGS += -D 与CONFIG_ =y
  10. Linux用管道移动文件夹,linux常用命令(示例代码)
  11. 学习笔记(五)——相关系数及Excel实现相关分析操作
  12. 【转】WinRAR软件许可框
  13. 一文读懂nginx gzip
  14. 基于Proteus学习单片机系列(三)——按键
  15. org.apache.http.ConnectionClosedException: Premature end of Content-Length delimited message body
  16. 【数据可视化】python/pyecharts 画地图(热力图)(世界地图,省市地图,区县地图)、动态流向图
  17. BUUCTF刷题——metasequoia_2020_samsara
  18. 转速/线速度/角速度计算FC
  19. 舒米,又夺冠了。。。。。
  20. immutable.js中文文档

热门文章

  1. shared_preferences使用
  2. SAP MM 工厂级别的批次管理?
  3. 信息安全行业入门与各类技术简介
  4. 主板提示15秒内关机
  5. 拯救者14(i7-4720HQ)解决触控板设置项无法打开的问题过程记录
  6. 汇千网-华米亮出独立GPU、自研操作系统,新引擎30秒监测血压
  7. 小猪的Python学习之旅 —— 15.浅尝Python数据分析
  8. go入门--设置 GOPATH 有什么意义?
  9. 运营周期种子期是什么?
  10. 一些闲言碎语,好记星不如烂笔头(一)