前两篇也说明了一些应答的相关内容,对于刚接触的开发者来说恐怕还是不太容易理解,这里专门列举一个篇幅来讲解如何针对终端设备上报的信息进行应答。

严格来讲,如果不应答,终端设备会判别为服务平台断开连接,就会重复发送相同的信息直到平台应答。

应答有两种:注册应答和通用应答。

注册应答

顾名思义,注册应答是指在设备初次连接平台时会发送注册信息,消息id一般为:0x0100具体参考部标协议截图如下:

(图一)

应答的消息id为:0x8100具体参考部标协议截图如下:

(图二)

值得一提是,上图的内容其实不够全面,完整的应答格式应该包含部标协议中的消息头,消息头必须存在于每一条消息中,不管是终端发给平台还是平台发给终端,都必须包含消息头。

举例,如果平台收到一条终端发来的注册消息如下:

7e0100002c01918051355000110000000037303131325345472d39383838470000000000000000000000303531333535300130353133353530167e

我们该怎么来分析这条消息呢,首先,挑出消息标示,也就是首尾的7e。0100002c0191805135500011这一段是消息头,标准的字符串长度是:4(消息ID)+4(消息体属性)+12(终端手机号)+4(消息流水号)=24个字符,12个字节。拆分一下就是这样:0100`002c0191805135500011`

剩下的就是终端注册时携带的具体内容,可以参考(图一)去分拆消息。

如何应答这条消息呢?其实也是比较简单的,消息头可以直接复用,也就是把终端发送来的消息头直接截取出来使用,加上图二中的信息然后加上校验码,首位拼接上7e即可。

应答流水号:可以直接为0000

结果:如果设备号存在于平台则应答:00或者03如果设备号不存在或者平台不允许不存在于平台数据库的设备连接则映带04或者选择不应答。具体看需求策略。

鉴权码:当应答结果为03时无需填写,01时填写,设备接收后会保存,下次注册时携带。

综合下来就是这样:7e`810000030191805135500001001103b5`7e

需要注意的有两点:

1 .在封装完消息后,还未拼接首位的7e时要对消息进行一次转义,具体就是把消息中所有的7e替换为7d02

所有的7d替换为7d01

2.所有的消息发送完毕后服务端不要立即关闭连接(server->close()),这其实是个常识为题,obd为长连接状态,关闭后obd会不停触发注册信息。

平台通用应答(0x8001)

这个在上篇中已经说的比较详细了。相比上面的注册应答,通用应答更为简单,在理解了注册应答后再开看通用应答无非是应答id要随着终端上报的消息id而改变,应该的结果为:00其他的没有什么区别。

c语言jt808协议库,平台如何应答——关于JT/T808协议相关推荐

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

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

  2. 808协议 java_基于JT/T808协议的车辆监控平台架构方案

    技术支持QQ:78772895 1.车载终端协议网关采用mina/netty+spring架构,独立于其他应用,主要负责维护接入终端的tcp链接.上行以及下行消息的解码.编码.流量控制,黑白名单等安全 ...

  3. JT/T808协议之:0x0001终端通用应答和0x8001平台通用应答

    终端是指obd设备,既车载obd设备. 平台是指上文中说到的通过短信设置的上报IP指向的机器所提供的网关服务. 这两种消息一是终端设备发出的,一是平台发出的,都是通用应答的格式,所谓通用既是可以用于应 ...

  4. 基于JT/T808协议的车联网平台架构方案

    平台基于(<JT/T808-2011道路运输车辆卫星定位系统终端通讯协议及数据格式>.<JT/T808-2013道路运输车辆卫星定位系统北斗兼容车载终端通讯协议技术规范>.JT ...

  5. 基于JT/T808 协议的GPS解析分享 C#

    呵呵,这个东西困扰了几天,今天又发现一个BUG,查询资料的过程中遇到的都是项目推广的东西,没几篇帖子认真的仔细的说说怎么来解析,好不容易弄出来了,发出来大家参考一下!!! 只是简单的模拟一下解析的过程 ...

  6. 分布式高可用高并发物联网(车联网-JT808协议)平台架构方案

    技术支持QQ:78772895 平台基于(<JT/T808-2011道路运输车辆卫星定位系统终端通讯协议及数据格式>以及<JT/T808-2013道路运输车辆卫星定位系统北斗兼容车载 ...

  7. java调用easyxml接口_【技术教程】如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口?...

    原标题:[技术教程]如何通过Java程序调用RTSP拉流协议视频平台EasyNVR程序接口? RTSP协议视频平台EasyNVR经过多年的积累,已经是一套成熟且完善的视频平台了,用户可以通过网页直接访 ...

  8. c语言遍历文件内容_跨平台的C语言网络框架库acl

    acl概述 acl (全称Advanced C Library)是一个跨平台(支持LINUX,WIN32,Solaris,MacOS,FreeBSD)的网络通信库及服务器编程框架,同时提供更多的实用功 ...

  9. 面向5G的阿里自研标准化协议库XQUIC

    XQUIC是阿里巴巴淘系架构团队自研的IETF QUIC标准化协议库实现,在手机淘宝上进行了广泛的应用,并在多个不同类型的业务场景下取得明显的效果提升,为手机淘宝APP的用户带来丝般顺滑的网络体验: ...

最新文章

  1. BASH Shell 简易进度条小函数
  2. 方立勋_30天掌握JavaWeb_div和css基础
  3. php图片视频,PHP中使用php5-ffmpeg撷取视频图片实例
  4. linux终止mysql进程_Ubuntu Linux下定时监测MySQL进程终止时自动重启的方法
  5. 计算机通信事业单位专业知识点,事业单位计算机专业知识招考大纲
  6. Linux内核分析 - 网络[九]:邻居表
  7. Extjs chart 丰富呈多个数据形式
  8. Java XLSTransformer生成excel文件
  9. 安卓平台下的即时通讯
  10. js文件 格式_robots文件只能放在网站根目录吗?
  11. 用C语言编写PC与三菱PLC串口通讯,PC与三菱FX系列PLC通信的实现
  12. javafx 教程_Java验证(javafx)
  13. Ray Tracing
  14. 跳石(Skipping stone)
  15. 论文精读:GHM:Gradient Harmonized Single-stage Detector
  16. MySQL-SQL语句命令
  17. kubernetes,service详解下
  18. 先谈云计算再谈云大会
  19. VBA基础语法学习代码
  20. 『统计学』第一部分:常用概率分布

热门文章

  1. 本地psql连接远程Oracle虚拟机_03
  2. bash: vim: command not found
  3. node+express项目链接MySQL数据库(最简单版)
  4. python开两个守护线程_python 守护线程
  5. 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境
  6. full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
  7. C语言数据类型 / 变量类型 - C语言零基础入门教程
  8. php提示是否运行,php运行错误提示
  9. php繁体输出,PHP输出控制功能在简繁体转换中的应用
  10. 手机安装linux不root权限管理,不root手机也能使用linux环境并安装msf等工具