前言

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

编解码插件的两种形式

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条要求呢?

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

  1. NB物联网之天翼物联(3)——初窥编解码插件(java开发物联网)

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

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

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

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

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

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

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

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

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

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

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

  7. 利尔达受邀出席天翼物联开发者大赛创新成果发布会暨颁奖典礼

    11月8日,第三届天翼物联开发者大赛创新成果发布会暨颁奖典礼在江西国际移动物联网博览会上成功召开.江西省科学技术厅副厅长陈金桥.鹰潭市人民政府副市长李小平.天翼物联.中国电信.华为.中兴.利尔达科等公 ...

  8. 产品 电信nb接口调用_通用电信华为物联网IOT开放平台NB-IOT对接profile透传编解码插件离线定制开发...

    原标题:通用电信华为物联网IOT开放平台NB-IOT对接profile透传编解码插件离线定制开发 电信平台登录界面: 设备发送数据到电信平台透传 : 设备发送数据到电信平台透传 NB-IOT设备到电信 ...

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

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

最新文章

  1. sse指令加速例子-无对比
  2. python字典定义方式_Python字典常用方法及汇总
  3. 燧原科技首发国内第二代人工智能训练芯片“邃思2.0”
  4. android常用网址
  5. 新建虚拟机后打开虚拟机前的设置,防止ip变动
  6. TCP/IP 基础简介
  7. Rust: map中的问题,两种写法有什么不同?
  8. 随手记--Windows系统下的cmd和powershell的区别
  9. [AutoCAD.Net][事件] AUTOCAD 选择对象后触发事件
  10. 计算机无法安装新字体,在计算机上安装新字体
  11. 如何合并excel文件
  12. 蛋白质ph稳定性计算机模拟,基于计算机模拟、自组装和力谱技术的蛋白质分子间相互作用研究...
  13. canal使用过程中的报错
  14. linux tomcat cpu占用高,排查tomcat服务器CPU使用率过高
  15. 联想计算机怎样分区,电脑硬盘怎么分区才合理?看完秒懂
  16. python基础知识集(三)
  17. iqooneo3 如何不用vivo账号下载外部应用_你说iQOO Neo 3很香?抱歉,我有不同的意见...
  18. 设置mysql root密码
  19. 小白如何学习操作系统?
  20. 关于Python choice() 函数介绍

热门文章

  1. Android:剖析源码,随心所欲控制Toast显示
  2. Java source1.5不支持diamond运算符
  3. ppp协议和hdlc协议的不同,填充、同步异步传输《计算机网络》
  4. scratch案例开发2
  5. rsyslog日志级别 配置日志输出级别
  6. class Complex
  7. 联想7y50服务器预装系统了吗,联想y50重装系统教程
  8. eyou隐藏升级弹窗、云插件库、接口配置、功能开关【按需显示插件】
  9. Unknown custom element: <uni-icons> - did you register the component correctly uniapp
  10. C# TCP/IP通讯协议的整理(三)附带——与倍福PLC通讯