文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

最近在不同项目中对接了多个车载GPS厂商服务终端,绝大多数厂商可以提供809协议的数据对接,还有部分可以提供自定义协议等方式的对接。多个项目中,我公司处于略强势地位,所以根据现场实际的项目进度和部署环境以及对方支持的对接方式,提出了不同的对接方案。这里做个总结。

2.809协议对接

2.1协议背景

2011年5月10日中国交通通信信息中心下发了《印发道路运输车辆卫星定位系统平台和道路运输车辆卫星定位系统车载终端标准符合性审查办法(试行)的通知》。通知要求,系统平台和车载终端应当分别满足《平台要求》和《终端要求》,同时分别满足《道路运输车辆卫星定位系统平台数据交换》和《道路运输车辆卫星定位系统终端通讯协议及数据格式》的要求。系统平台和车载终端,应按照本办法通过标准符合性审查。不符合标准的,不得用于道路运输车辆动态监管工作。《道路运输车辆卫星定位系统平台和道路运输车辆卫星定位系统车载终端标准》简称部标,部标包括《道路运输车辆卫星定位系统平台技术要求》(JT/T796-2011,简称《平台部标》)和《 道路运输车辆卫星定位系统车载终端技术要求》(JT/T794-2011,简称《终端部标》)。至此,关于系统平台和车载终端必须符合部标的政策性文件正式出台。而对应硬件终端标准的通信协议标准JT/T808-2011JT/T809-2011协议也随之出台。部标808和809的出台,统一了产品的标准,统一了平台与终端之间的通讯协议,对于GPS运营商而言,只要平台支持部标,那可以选择任意一家的GPS车载终端,也不会受厂商的制约,GPS运营商在市场竞争过程中将更看重产品的质量及服务,从而也间接地促进市场上产品的稳定性和可靠性。

通过该协议流程可以知道,808协议为GPS客户终端与GPS服务终端的对接协议,而809协议为GPS服务终端与上级平台之间的对接协议。所以这里我们主要需要研究的是809协议。

2.2协议具体内容

该协议可以在网上进行下载:http://www.hzlitai.com.cn/uploads/soft/1_150116150811.pdf。协议内容包含了:

需要理解的地方为(转):

a.双链路维护,就是基于上面的对等概念,在Socket通信上面其实就是要同时扮演服务器监听和客户端转发的角色;从下级平台来看,转发数据的链路就是主链路,从上级平台来看,主链路用来就是监听并接收子平台转发过来的数据;所以开发政府平台的,有的是开发企业平台的,立场不一样,理解就不一样。

b.正确的理解加解密算法和校验和算法,否则运管平台接入的时候,无法接入。

c.复杂的流程测试,和单一socket数据通信不一样,需要实现从登录、安全认证、链路保持和注销、基础车辆数据上传、注册、交换定位信息、拍照、驾驶员身份识别和车辆电子运单的功能。

对于我们企业对接GPS,我们监听主链路即可,主链路中包含了GPS服务端发送过来的数据。从链路是GPS服务端监听反馈信息使用。

2.3实现方法

a.判断状态

b.解析信息

3.自定义协议对接

由于我方不是交通监管部门,仅仅只是需要对接GPS数据,所以复杂的809协议往往适得其反。于是,我们可以和GPS服务方定义一种简单的传输协议。

可以描述为,我方监听一个端口,传输方以我们定义好的报文规范,将数据在每次心跳时传输到指定端口即可。我方对传输过来的数据进行接收和解析。

4.前置库对接

当我们和多个不同GPS厂商同时对接时,由于各厂商的对接协议和提供的功能可能均不相同,此时我们强制提供一个我们的规范表,将其放置在前置库中(车载商均可以连接该库)。其流程设计如下:

a.所有厂商将GPS数据实时写入该前置库表中,该表有一个flag字段。将该表理解为轨迹实时表,其轨迹的存储为saveorupdate,即主键车牌存在轨迹时,再传入为更新,没有该车牌时为插入新轨迹数据。

b.我方提供定时JOB,将前置库中的数据定时整体迁移至我方网段中的业务库临时轨迹表中。

c.我方提供定时JOB,对该临时表中的坐标进行实时转换,报警业务进行判断。转换后的数据存入实时轨迹表以及历史轨迹表中。报警信息存入对应的报警表中。

5.WebService对接

5.1我方提供WS服务

我方提供WS服务,该服务中对传入参数进行定义,支持单次调用和以XML格式的批量传入。

XML格式定义如下:

5.2对方提供WS服务

我方编写JOB,定时调用对方WS服务进行轨迹获取。

6.总结

由于我方的车载仅为数据展示方,对于底层协议的对接方式,可以规避尽量规避。前置库对接以及WS对接,均可将对接的方式简化,而且可以将协议对接时的通信长连接对服务器的消耗进行规避。所以,项目中我们首推这两种方案。

                         -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

          如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

轨迹系列6——车载GPS对接方案汇总小结(809、自定义协议、前置库、WS)的更多相关文章

  1. Android适应方案汇总(三)

    在Android适应方案汇总(一个).(两)在.我们理解一些基本概念. 那么详细的开发,我们应该重视起来. 首先,我们需要知道.关键的事实是,这两个适配器: (1).这点在单位的使用上用dp.sp以及 ...

  2. 轨迹系列4——WebGIS中使用ZRender实现轨迹前端动态播放特效

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中需要在地图上以时间轴方式播放人员.车辆在地图上的历史行进 ...

  3. AI资源对接需求汇总:第3期

    更好的阅读体验,请查看首发原文链接:AI资源对接需求汇总:第3期 平台介绍 平台由人工智能领域几个知名原创公众号发起,总读者约25万. 主要面向人工智能领域的从业者,涵盖图像处理.三维计算机视觉.机器 ...

  4. SpringBoot 系列教程之事务隔离级别知识点小结

    SpringBoot 系列教程之事务隔离级别知识点小结 上一篇博文介绍了声明式事务@Transactional的简单使用姿势,最文章的最后给出了这个注解的多个属性,本文将着重放在事务隔离级别的知识点上 ...

  5. 轨迹系列1——一种基于路网图层的GPS轨迹优化方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 GPS数据正常情况下有20M左右的偏移,在遇到高楼和桥梁等情况 ...

  6. 轨迹系列5——验证轨迹GPS坐标转换为本地坐标的四/七参数是否准确的一种方案

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1. 背景 目前对多个项目轨迹不准确的情况做了排查,发现导致轨迹偏移百分 ...

  7. Mysql备份系列(1)--备份方案总结性梳理

    mysql数据库备份有多么重要已不需过多赘述了,废话不多说!以下总结了mysql数据库的几种备份方案: 一.binlog二进制日志通常作为备份的重要资源,所以再说备份方案之前先总结一下binlog日志 ...

  8. ES+Hbase对接方案概述

    方案背景 Hbase的索引方案有很多,越来越多的人开始选择ES+Hbase的方案,其实该方案并没有想象中那么完美,ES并发低,同时查询速度相对Hbase也慢很多,那为什么会选择他呢,它的写入比较快,如 ...

  9. GPS功能:百度路书自定义【轨迹回放】

    如题所述:百度的编辑界面很直观,修改后就可以运行,地址:http://developer.baidu.com/map/jsdemo.htm#c2_8: 因为同事研究了一下午结果都没搞出来,他copy百 ...

随机推荐

  1. Java中的队列同步器AQS

    一.AQS概念 1.队列同步器是用来构建锁或者其他同步组件的基础框架,使用一个int型变量代表同步状态,通过内置的队列来完成线程的排队工作. 2.下面是JDK8文档中对于AQS的部分介绍 public ...

  2. Javascript高级编程学习笔记(84)—— Canvas(1)基本用法

    Canvas绘图 Canvas自HTML5引入后,由于其炫酷的效果成为HTML5新增功能中最受欢迎的部分 Canvas元素通过在页面中设定一个区域,然后就可以使用JS在其中绘制图形 <canva ...

  3. Linux 下源码编译FFMEG

    目录 1. 安装依赖关系 2. 源码安装 yasm 3. 源码安装 NASM 4. 源码安装libx264 5. 源码安装x265 6. 源码安装 libmp3lame 7. 源码安装 libopus ...

  4. 【git】idea /git bash命令 操作分支

    1.需求 因为目前要对项目做一些改动,而项目又即将上线,这些新的改动又不需要一起上线,所以这个时候需要在原有的master分支上重新拉出一个分支进行开发. 2.分支操作 打开git bash工具→切换 ...

  5. 作为程序员必须掌握的Java虚拟机中的22个重难点

    Java虚拟机一直是比较重要的知识点,是Java高级开发必会的.本文为你总结了关于JVM的22个重点.难点,图文并茂的向你展示和JVM有关的重点知识.全文共7000字左右. 概念 虚拟机:指以软件的方 ...

  6. mysql逆向生成 java 实体类

    import java.io.File; import java.io.FileWriter; import java.io.PrintWriter; import java.sql.Connecti ...

  7. python连接Linux命令行

    #!/usr/bin/python # -*- coding: utf-8 -*- '''https://www.ibm.com/developerworks/cn/linux/l-cn-pexpec ...

  8. qcharts编译

    编译环境vs2013+qt5.5.1+perl5 qchart源码在git上自己下载,或者在此下载,参考文档:Qt Charts 5.7.0 安装教程,这篇文章是使用mingw的方式编译qcharts ...

  9. asp.net core系列 37 WebAPI 使用OpenAPI (swagger)中间件

    一.概述 在使用Web API时,对于开发人员来说,了解其各种方法可能是一项挑战.在ASP.NET Core上,Web api 辅助工具介绍二个中间件,包括:Swashbuckle和NSwag .NE ...

  10. 面试小知识:MySQL索引相关

    前言 本模板主要是一些面试相关的题目,对于每一道问题,我会提供简单的解答,答案的来源主要是基于自己看了各方资料之后的理解,如果有错的,欢迎指点出来. 1. 什么是最左前缀原则? 以下回答全部是基于My ...