前言

电信的编解码插件本意上是可以让我们的开发更加灵活,但是你好歹把文档写明白啊。。。同时在正常的生产中我们的产品不可能只使用电信的模块,有时甚至是客户要求使用移动还是电信的模块,所以兼容性给我们的体验非常直观!我们先不考虑兼容性问题,先把流程走通吧还是!

编解码插件的两种形式

1、线上编辑
当大家刚看到线上编辑的时候内心一定非常激动,想咋改咋改,而且看上去非常直观,但是当你真正用到这个页面时估计会懵逼,在定义profile的时候相信你已经发现了,字段类型只有int 和string类型,而且string类型是用ascii码传递的,而在线编解码工具规定,profile中字段是什么类型编解码就必须使用什么类型去接受!总之,非常难用~~,不推荐大家使用!!
2、离线编解码插件
离线编解码插件活动空间就比较大了,首先这个东西是一个jar包,当设备有上传信息的时候会调用你这个jar包中的一个接口,在接口内部你可以任意操作,然后根据不同的上传类型(根据解析16进制码流得出)传到不同的profile 中的对应的 service 中去(根据serviceId);下发也是同样的道理!但是捏,电信不可能什么东西都让你往他的服务器上传的,所以需要人工审核!
总结:华为官方的文档是不推荐使用离线编解码插件的,我们最开始也不太想用,太麻烦了,而且一旦修改就要现申请,但是最后大家都没研究透怎么使用在线编辑的方式,有能够吃透的大神欢迎留言!

下载离线编解码插件包包

如果你想在电信的文档中找到这个编解码插件的样例估计会很难,首先它没有一个明确的位置,其次电信网站非常卡点一下半天不动,所以我们是作者去华为的物联网平台文档去找,果然他就在 这里!


这是一个java 的 maven项目,下载完成之后我们来一起看下它的结构!

包包里有什么

如图所示:

codeDemo里面有两个文件夹,第一个文件夹是编解码插件上传格式,这里暂且不叙,等我们走到上传的时候在详细了解!
第二个文件夹中是项目,没错就是它!直接导入!

正常的maven项目导入过程,不多说了。
导入完成,项目结构如下图所示

这个地方乍看上去是个普通的项目,其实很有讲究哟!

没想到,你是这么不正经的包包

到了看项目结构就要先了解一下编解码插件包了,以下是上传的编解码插件包的要求:
1、产品已定义profile
2、插件包中应存在package-info.json文件
3、package-info.json文件中bundles.bundleName的值应为:‘设备类型-厂商Id-模型’
4、package-info.json文件中model的值与产品profile中的应保持一致
5、package-info.json文件中deviceType的值与产品profile中的应保持一致
6、package-info.json文件中manufacturerName的值与产品profile中的应保持一致
7、package-info.json文件中packageType的值应为’CIGPlugin’
8、package-info.json文件中version和bundleVersion的值应保持一致
9、package-info.json文件中platform的值应为’linux’
10、package-info.json文件中specVersion的值应为’1.0’
11、package-info.json文件中应有bundles字段值
12、package-info.json文件bundles.fileName的值应为编解码插件jar包中的./META-INF/MANIFEST.MF文件中[Bundle-Name的值]-[Bundle-Version的值].jar
13、package-info.json文件bundles.bundleVersion的值与编解码插件jar包./META-INF/MANIFEST.MF文件Bundle-Version的值应保持一致
14、package-info.json文件bundles.bundleName的值与编解码插件jar包./META-INF/MANIFEST.MF文件Bundle-Name的值应保持一致
15、插件jar包中的./META-INF/MANIFEST.MF文件中Bundle-Name与Bundle-SymbolicName的值应保持一致
16、插件jar包中应存在./META-INF/MANIFEST.MF文件
17、插件jar包中的./META-INF/MANIFEST.MF文件不应包含Export_Package属性
18、插件jar包中的./META-INF/MANIFEST.MF文件应包含Bundle-Name
19、插件jar包中的./META-INF/MANIFEST.MF文件应包含Bundle-Version
20、插件jar包中的./META-INF/MANIFEST.MF文件应包含Bundle-SymbolicName
21、插件jar包中./OSGI-INF目录下有且只有一个xml文件
22、在插件jar包中./OSGI-INF目录下的xml文件中,scr标签应包含name属性,implementation标签应包含class属性,provide标签应包含interface属性
23插件jar包中./OSGI-INF目录下的xml文件implementation标签的class属性值应与scr标签下的name属性值保持一致

没错足足有23条,那么我们怎样去满足这23条要求呢? 请看下回分解。

NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)相关推荐

  1. java下发命令nbiot,NB物联网之天翼物联(3)——编解码插件上传规则细解(java开发物联网)...

    前言 电信的编解码插件本意上是可以让我们的开发更加灵活,但是你好歹把文档写明白啊...同时在正常的生产中我们的产品不可能只使用电信的模块,有时甚至是客户要求使用移动还是电信的模块,所以兼容性给我们的体 ...

  2. NB物联网之天翼物联(1)——电信NB平台到底有什么

    前言 本人目前任职于一家仪表企业,最近接到了NB物联网表的项目.做下笔记,以便后续使用,同时发现网上关于NB对接平台的资料太少,于是将踩得坑跟大家分享! 我们起先做的移动NB表,异常之顺利,平台的接口 ...

  3. NB物联网之天翼物联(2)——profile定义与使用

    前言 前面大体讲了电信NB平台的一些概念,本篇就来接触一下电信NB的核心配置之一profile. profile 就是配置文件嘛!编解码插件就是编解我们与设备通讯使用的十六进制码流的东西. 向大家推荐 ...

  4. NB物联网之天翼物联(4)——配置编解码插件

    前言 前面为大家介绍了编辑码插件的大体结构,本篇为大家详解怎么配置编解码插件上传包的参数! 向大家推荐如何做到电信NB与移动NB兼容 第23条"婚约" 编解码插件上传位置 上一篇结 ...

  5. NB物联网之天翼物联(5)——编写编解码插件

    前言 之前的两篇将编解码插件的外围配置都已经交代明白,本篇将为大家讲解编解码插件的组成以及如何编写编解码插件! ProtocolAdapterImpl 中的 encode And decode 在上一 ...

  6. 天翼物联加入ZETA联盟共建物联生态圈 推动LPWAN2.0泛在物联

    近日,中国电信旗下天翼物联科技有限公司(以下简称"天翼物联")加入ZETA联盟,成为ZETA联盟的核心会员及运营商合作伙伴.未来,天翼物联将从技术.产品.方案.平台.生态圈等多方面 ...

  7. 电信“天翼物联开发者大赛”技术沙龙走进京城,邀您共享NB-Iot盛宴

    电信"天翼物联开发者大赛"技术沙龙走进京城,邀您共享NB-Iot盛宴 中国电信首届"天翼物联开发者大赛"技术沙龙北京站 时间:2018年12月07日 13:30 ...

  8. 共迎物联网万亿市场,中国电信“天翼物联开发者大赛”技术沙龙武汉站成功举行...

    共迎物联网万亿市场,中国电信"天翼物联开发者大赛"技术沙龙武汉站成功举行 中国电信首届"天翼物联开发者大赛"技术沙龙已经先后走过华东(南京)和华中(武汉)两站, ...

  9. 天翼物联获2022年移动物联网“先进企业”

    近日,由工信部指导.中国信通院等单位主办的"首届移动物联网大会"在无锡圆满落幕.天翼物联获2022年移动物联网"先进企业"奖. 今年,我国移动物联网终端用户16 ...

最新文章

  1. 水题/poj 1852 Ants
  2. 两个摄像头是如何将照片拼接在一起的
  3. 第十二章 支持向量机-机器学习老师板书-斯坦福吴恩达教授
  4. webpack 初体验
  5. 关于链表的面试题(持续更新)
  6. oracle 其他表空间,Oracle查询表空间使用情况以及其他查询
  7. 光功率 博科交换机_如何将交换机40G QSFP+与10G SFP+端口互连?
  8. 五年烧光 3.5 亿美金,互联网独角兽是如何把自己玩死的?
  9. 通过深度优先搜索(DFS)对图的边进行分类
  10. NTP授时服务器(网络校时服务器)对医院信息化建设的重要
  11. java扫码枪键盘_JAVA读取USB扫描枪
  12. 利用jsonp跨域访问
  13. 计算机打字题目200字,拼音打字考试标准练习题200字
  14. opencv-python学习笔记(十一)—— 图像处理之图像直方图
  15. 心理测评软件的心理测试法的优缺点,心理测试的优缺点
  16. ubuntu 保存视频流的关键
  17. django实现上传头像和头像展示功能
  18. 虚拟机重启网卡命令和防火墙关闭和开启
  19. esim卡与ms卡的区别_什么是eSIM,它与SIM卡有何不同?
  20. mybatis拦截器实现数据脱敏拦截器使用

热门文章

  1. pusher 创建新应用_基于 Laravel + Pusher + Vue 通过事件广播构建实时聊天室应用
  2. Spring Boot DTO 示例 - 实体到 DTO 的转换
  3. 闲得蛋疼的众人本着科学的态度亲身实践“为什么不能吞灯泡?”
  4. Groovy的元编程
  5. NPDP产品经理小知识-团队发展的五个阶段(塔克曼模型)
  6. 基于昇思MindSpore Quantum,实现量子虚时演化算法
  7. ps中背景橡皮擦抠图方法
  8. Caused by: org.hibernate.PropertySetterAccessException: IllegalArgumentException
  9. Spring boot 解析mp4格式视频交给前端进行播放
  10. 【tensorflow:实战Google深度学习框架】读后感