微信蓝牙调试工具:https://iot.weixin.qq.com/wiki/document-0_5.html
可以解析微信协议,并且知道设备哪个字段赋值了,哪个字段没有赋值。
Protobuf的js库:
https://github.com/protobufjs/protobuf.js
理解protobuf之前必须要懂variant编码 !!!!!!!!!!
varian编码 :http://blog.sina.com.cn/s/blog_828e50020102vfrf.html
varian解码步骤:
1)去掉标识位,也就是每个字节的最高位。
2)反转字节
3)2进制转10进制即得到原来的数
什么是Protobuf协议?
和json xml一样,也是一种数据交换格式.可以序列化与反序列化.不同的是protobuf是一种变长协议,格式较为麻烦,但是效率很高.
参考文档:
http://blog.csdn.net/yueqian_scut/article/details/47606599 (variant算法)
注意这个规则:
https://blog.csdn.net/fullsail/article/details/42686699 (超级详细)
Protobuf的相关资料
http://blog.csdn.net/shuliwuflying/article/details/50814123
http://www.jianshu.com/p/e0d81a9963e9
protobuf语言:
http://www.cnblogs.com/dkblog/archive/2012/03/27/2419010.html
.proto转.java的开源库
http://www.jianshu.com/p/3a543757d086 (利用gradle配置,同步一下,走task即可生成java文件)
java对象与16进制字符串互转需要注意的问题:
1)对于proto中bytes类型得到java的字符串:
String mac1 = DataTransfer.bytes2HexString(authRequest.getMacAddress().toByteArray());
2)java对象转16进制报文
凡是数据数字,都是设置的10进制数据.
凡是字符串,都是native string.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。