先来了解一下基础的数据类型:

bit : bit就是位,二进制数据类型,取值只有0或1 ;

byte : 1 byte = 8 bit ;取值范围: -127 ~ 128 ;

1、JTT808基本数据类型:

个人理解:WORD = 长度是2的byte数组 、 DWORD = 长度是4的byte数组 、 byte[n] = 长度是n的byte数组,其它不解释了;

2、消息结构

每条消息由标识位、消息头、消息体、校验码、标识位组成:

3、标识位:

采用 0x7e 表示,若校验码、消息头以及消息体中出现 0x7e,则要进行转义处理,转义
规则定义如下:
0x7e <————> 0x7d 后紧跟一个 0x02;
0x7d <————> 0x7d 后紧跟一个 0x01。
转义处理过程如下:
发送消息时:消息封装——>计算并填充校验码——>转义;
接收消息时:转义还原——>验证校验码——>解析消息。
示例:
发送一包内容为: 0x30 0x7e 0x08 0x7d 0x55 的数据包,
则经过封装如下:0x7e 0x30 7d 0x02 0x08 0x7d 0x01 0x55 0x7e。
4、消息头:
消息体属性的数据格式就是bit,位;
5、消息体:
消息体就需要根据你实际发送什么数据给服务器,不同的数据消息Id都不一样;
6、校验码:
校验码指从消息头开始(也就是消息头和消息体),同后一字节异或,直到校验码前一个字节,占用一个字节
   /*** BCC 校验算法** @param data* @return*/public static String getBCC(byte[] data) {String ret = "";byte BCC[] = new byte[1];for (int i = 0; i < data.length; i++) {BCC[0] = (byte) (BCC[0] ^ data[i]);}String hex = Integer.toHexString(BCC[0] & 0xFF);if (hex.length() == 1) {hex = '0' + hex;}ret += hex.toUpperCase();return ret;}

二,连接服务器:

三、发送消息:

Android JTT808协议通讯相关推荐

  1. Android蓝牙串口通讯【转】

    本文转载自:http://blog.sina.com.cn/s/blog_631e3f2601012ixi.html Android蓝牙串口通讯 闲着无聊玩起了Android蓝牙模块与单片机蓝牙模块的 ...

  2. 安卓(android)即时通讯

    安卓(android)即时通讯,也就是实现在安卓平台下的即时通讯.随着android系统的发展成熟,在即时通讯这一版块逐渐发展成一个综合化的信息平台.在Android 平台上开发即时通讯系统,它能够使 ...

  3. 非常详细的测试unity与android之间的通讯操作

    非常详细的测试unity与android之间的通讯操作 博客分类: unity3dandroid 非常详细的测试unity与android之间的通讯操作 转载自 http://www.narkii.c ...

  4. linux shell 脚本实现tcp/upd协议通讯(重定向应用)

    前几天发了重定向以及管道相关使用方法,今天这里发些很有趣的例子.通过重定向实现基于tcp/udp协议的软件通讯. linux 设备里面有个比较特殊的文件: /dev/[tcp|upd]/host/po ...

  5. Visual C++设计UDP协议通讯示例

    Visual C++设计UDP协议通讯示例 2005-06-06 15:56作者:fs007出处:vckbase责任编辑:方舟 下载本文源代码 一.绪言 UDP是一种面向非连接,不可靠的通讯协议,相对 ...

  6. android http协议添加Authorization认证方式

      今天,简单讲讲android里如何使用http请求时在头部添加Authorization认证方式. 其实也很简单,之前需要做一个功能,在android去使用http访问设备,但是每次的访问 ...

  7. TCP协议通讯流程(三次握手及四次挥手)

    TCP协议通讯流程(三次握手及四次挥手) 文章目录 TCP协议通讯流程(三次握手及四次挥手) 一.服务器端 二.客户端 三.三次握手四次挥手 三.具体流程 四.相关注意事项 一.服务器端 调用sock ...

  8. php 通讯协议,通讯协议作用

    通讯协议的作用 由于TCP是基于流的,客户端发送的请求数据是像水流一样流入到服务端,服务端探测到有数据到来后应该检查数据是否是完整的,因为可能只是一个请求的部分数据到达服务端,甚至可能是多个请求连在一 ...

  9. 基于android的即时通讯APP 聊天APP

    基于android的即时通讯APP 或者 聊天APP 一 项目概述 该项目是基于Android 的聊天APP系统,该APP包含前台,后台管理系统,前台包含用户通讯录,用户详情,用户聊天服务,用户二维码 ...

  10. springboot配合socket实现icap协议通讯

    SOCKET实现ICAP协议通讯 首先基于springboot搭一个socket即时通讯 注意事项: 首先基于springboot搭一个socket即时通讯 @PostMapping("/u ...

最新文章

  1. HDLBits 系列(38)值得一看的状态机设计题目
  2. 下排牙齿中间高两边低_不知道如何添加辅食?让宝宝牙齿数量来帮你忙(附食谱)...
  3. 如鹏网.Net基础2 专题课:ASCII码和拆数
  4. linux 校验文件生成,在Linux中了解如何使用MD5校验和生成和验证文件
  5. 技术圈盛会!腾讯云+社区开发者大会免费报名!
  6. 大数据平台助力核与辐射安全监管
  7. [JavaWeb-JavaScript]JavaScript_Global全局对象
  8. 操作系统上机题目(多线程2)
  9. LwIP移植准备工作
  10. big sur darwin6.iso下载_苹果macOS Big Sur 11.0 正式版系统适配机型 附升级教程和系统镜像下载...
  11. Windows10内存泄漏,分页池高分析及解决方案
  12. java图形用户界面设计
  13. Python数组索引
  14. 计算机软件系统故障的分类,系统故障
  15. 均值已知检验方差_21.(6)AB test 假设检验例题实操
  16. Linux 网络编程-进程管道
  17. 索尼新动作,联手Nolan推出AR摩托车头盔
  18. 将用户需求转成产品需求
  19. 设计模式之禅【适配器模式】
  20. 导出为excel无法引用解决方法

热门文章

  1. 从入门到精通零知识证明与zkSNARK
  2. 怎么生成一个永久性的二维码?微信群二维码如何长期有效?
  3. Skiplist和strcpy以及AVL/红黑树
  4. 图谱实战 | 开源知识图谱融合工具剖析:Dedupe与OpenEA工具实现思想、关键环节与实操分析...
  5. ble mesh 学习笔记(9)telink的mesh-lpn代码分析
  6. 教你快速记住公司工作邮箱格式,再也不用百度“邮箱格式怎么写”啦!
  7. flash中zip/unip的实际意图
  8. 强烈推荐10套开源免费的高品质源码,源码免费下载
  9. java 文件存在 覆盖_java – 如果文件存在于目录中,我该如何覆盖它
  10. 分享使用ASO提升App Store排名的技巧,appstore排名优化