RkConverter二进制报文解析工具
简介
为了高效传输,物联网项目通常采用了二进制协议来进行数据交换。
RkConverter库的目标是让开发从低效、重复、无技术含量的二进制报文解析中解放出来专注于业务和协议变化。
用法
字节数组转对象
蓝牙设备返回了设备信息字节数组为{82,75,52,49,48,48,0,68}
数据交换解析协议为
只需要两步即可将字节数转换为需要的对象
1、为DeviceInfo对象属性添加RkField注解描述解析规则
public class DeviceInfo {@RkField(position = 0,length = 6)private String model;@RkField(position = 6,length = 2)private int versionCode;public String getModel() {return model;}public void setModel(String model) {this.model = model;}public int getVersionCode() {return versionCode;}public void setVersionCode(int versionCode) {this.versionCode = versionCode;}
}
复制代码
2、调用RkFieldConverter#bytes2entity方法使用字节数组设置DeviceInfo对象属性
byte[] bytes = new byte[]{82,75,52,49,48,48,0,68};
DeviceInfo mDeviceInfo = new DeviceInfo();
mDeviceInfo = RkFieldConverter.bytes2entity(mDeviceInfo,bytes);
assertEquals("RK4100",mDeviceInfo.getModel());
assertEquals(68,mDeviceInfo.getVersionCode());
复制代码
对象转字节数组
调用RkFieldConverter#entity2bytes方法将对象转换成字节数组方便将数据写入蓝牙设备。
DeviceInfo mDeviceInfo = new DeviceInfo();
mDeviceInfo.setModel("RK4100");
mDeviceInfo.setVersionCode(68);
byte[] bytes = RkFieldConverter.entity2bytes(mDeviceInfo);
assertArrayEquals(new byte[]{82,75,52,49,48,48,0,68},bytes);
复制代码
GitHub 项目地址
RkConverter二进制报文解析工具相关推荐
- 制作IEC101/104报文解析工具
文章目录 准备 一.IEC101/104协议 二.制作解析工具步骤 1.建立协议族 2.建立协议 3.建立术语 4.建立报文块 5.建立报文解析规则 总结 准备 这里是基于<在线解析二进制报文& ...
- modbus报文解析工具_Linux下网络流量常用那些监控工具
这些工具提供的功能非常强大,我们平时使用的只是冰山一角,比如lsof.ip.tcpdump.iptables等.本文不会深入研究这些命令的强大用法,因为每个命令都足以写一篇文章,本文只是简单地介绍并辅 ...
- tcp报文解析工具_15 张图,了解一下 TCP/IP 必知也必会的 10个要点
作者丨Ruheng https://juejin.im/post/6844903490595061767 一.TCP/IP模型 TCP/IP协议模型(Transmission Control Prot ...
- ISO8583报文组装解析工具和定义器示例
8583报文组装和解析工具类(Send8583Util),代码如下: import com.alibaba.fastjson.JSONObject; import org.apache.commons ...
- 【Rust】argh:基于 derive 宏且对二进制体积进行优化的命令行解析工具
Derive-based argument parsing optimized for code size and conformance to the Fuchsia commandline too ...
- 在将varchar值id转换为int时失败_Python—CAN报文转换工具教程
一.CAN报文简介 CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 1 ...
- 8583 报文解析过程
一. 全局概述 1. <多渠道平台接入接口规范>这个标准规定了各种接入端(主要包括直联多渠道平台的终端, 包括这里主要关注的POS机)与中国银联多渠道平台之间进行联机交易时使用的报文接口, ...
- 银联银行卡交换系统8583报文解析
前言 最近在做8583报文这块解析,也遇到一些坑.下面将会介绍自己学习和了解8583报文这块的经验,希望可以帮到那些刚刚接触8583报文的同学们. 入门 首先我们需要知道的是我们的8583报文是基于P ...
- 8583报文解析1.0
8583报文解析1.0 文章目录 8583报文解析1.0 一.规则 1.1:域规范简表 1.2:规范说明 1.2.1: 报文头 1.2.2: 操作类型 1.2.3: 位图:有效域明细 1.2.4:域规 ...
- JAVA实现报文解析:协议的数据类型和完整的报文结构解析
**JAVA实现GBT32960报文解析系列文章链接:** JAVA实现GBT32960报文解析(一):协议的数据类型和完整的报文结构解析 JAVA实现GBT32960报文解析(二):数据包结构解析源 ...
最新文章
- react 禁止微信调整字体大小
- org.apache.struts2.dispatcher.FilterDispatcher的四个功能
- Ubuntu之bashrc:成功解决Ubuntu系统内出现的conda:未找到命令
- Hasor【付诸实践 02】SpringBoot 集成 Dataway 无代码接口工具配置及问题解决(含GreenPlum建表语句、demo源码、测试说明)
- storm UI解释
- 一道没人搞得定的趣味Shell编程游戏题!,看看你会不会?
- 12_python基础—函数基础(参数、返回值、调用)
- 编程人的「对象」长啥样?
- php ZeroMQ 的使用
- redis 异常解决办法
- 【visio】visio软件安装
- uniapp使用阿里百川SDK唤醒淘宝APP 打开淘宝领券页面/渠道备案,uniapp对接淘宝联盟等等超级详细
- 微信小程序毕业设计 基于微信共享小程序系统开题报告
- vue中使用leaflet加载地图影像并拾取坐标点
- 河海大学计算机信息学院2013年考研录取名单,河海大学地学院2013年考研录取名单...
- 玩转 Windows 10 中的 Linux 子系统
- 独立开发变现周刊(第66期): 如何把一个短链接生成工具变成一个可持续盈利的产品?...
- 正则表达式/\$\{id\}/gi详解
- Vue移动网页开发调试过程(第二篇)——weinre
- 竞赛通知|2021年全国大学生电子设计竞赛启动通知!
热门文章
- Atitit.html解析器的选型 jsoup nsoup ,java c# .net 版本
- atitit. java跟php的比较..为什么大企业喜欢java 而不是php
- atitit. 日志系统的原则and设计and最佳实践(1)-----原理理论总结.
- 袁玉玮:简介人工智能在基金界的应用现状 (二)卖方交易员被冲击
- 语法比较:Julia,Matlab,Python
- OpenAnolis社区致Linux开发者的一封信
- 【短时平均过零率】基于matlab语音信号短时平均过零率【含Matlab源码 1721期】
- 【滤波器】基于matlab GUI分数延迟滤波器设计【含Matlab源码 1347期】
- 【运动学】基于matlab GUI模拟投篮系统(角度+力度可调)【含Matlab源码 1114期】
- 【优化算法】蝗虫优化算法(GOA)【含Matlab源码 936期】