概述
前言
电信的编解码插件本意上是可以让我们的开发更加灵活,但是你好歹把文档写明白啊。。。同时在正常的生产中我们的产品不可能只使用电信的模块,有时甚至是客户要求使用移动还是电信的模块,所以兼容性给我们的体验非常直观!我们先不考虑兼容性问题,先把流程走通吧还是!
编解码插件的两种形式
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开发物联网)前言编解码插件的两种形式下载离线编解码插件包包包包里有什么没想到,你是这么不正经的包包的全部内容,希望文章能够帮你解决NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)前言编解码插件的两种形式下载离线编解码插件包包包包里有什么没想到,你是这么不正经的包包所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复