前言

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

第23条“婚约”

编解码插件上传位置

上一篇结尾我们说了如果进行插件开发,必须先了解上传插件包的结构和要求,何为“上传包”?
首先,这个“上传包”就在我们下载的demo文件中:


它指的是把我们写好的编解码插件打成一个jar包,然后再写一个配置文件,这个配置文件的内容与这个jar包相关,与你当前所处的电信平台的产品相关,也就是说配置文件关联你的jar包和当前需要上传jar包的项目!

综上所述,上传的文件会有各种各样的限制,直接上图证明俺不是瞎说的!

前14条主要约束我们的产品信息完整和配置文件内容,只要按照要求填写就完了!
这里我们不再一条条对了,直接跟大家说需要怎么修改package.zip中的package-info.json文件
首先文件格式如下:

{"specVersion":"1.0","fileName":"codec-demo","version":"0.0.1","deviceType":"WaterMeter","manufacturerName":"bcdyd","model":"WaterMeter","description":"codec","platform":"linux","packageType":"CIGPlugin","date":"2019-11-26 08:16:59","ignoreList":[],"bundles":[{"bundleName": "WaterMeter-厂商ID-WaterMeter","bundleVersion": "0.0.1","priority":5,"fileName": "WaterMeter-厂商ID-WaterMeter-0.0.1.jar","bundleDesc":"","versionDesc":""}]
}

specVersion:不需要修改;
fileName:不需要修改;
version:需要和你的jar包中版本对应,即与项目pom.xml 中的

<version>0.0.1</version>

一致;
deviceType:与你平台上的设备类型一致;
manufacturerName:与你平台上的厂商名称一致;
model:与你平台上的产品型号是一致的;
description:不需要修改;
platform:不需要修改;
packageType:不需要修改;
date:不需要修改;
ignoreList:不需要修改;
bundleName:设备类型-厂商ID-产品型号;
bundleVersion:与version一致;
priority:不需要修改;
fileName:jar包名字;
bundleDesc:不需要修改;
versionDesc:不需要修改;
修改项目中的pom文件:
大体结构:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.thrid.party</groupId><!-- 请修改为你的编解码插件的名字,命名规范:设备类型-厂商ID-设备型号,例如:WaterMeter-Huawei-NBIoTDevice --><artifactId>WaterMeter-Huawei-NBIoTDevice</artifactId><version>1.0.0</version><!-- 请检查这里的值为bundle,不能为jar --><packaging>bundle</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><junit.version>4.11</junit.version><fasterxml.jackson.version>2.7.4</fasterxml.jackson.version><felix.maven.plugin.version>2.5.4</felix.maven.plugin.version><json.lib.version>2.4</json.lib.version><m2m.cig.version>1.3.1</m2m.cig.version><slf4j.api.version>1.7.6</slf4j.api.version><basedir>./</basedir></properties><dependencies><!-- 单元测试使用 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><!-- 日志使用 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.api.version}</version></dependency><!-- 转换JSON使用,必须 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${fasterxml.jackson.version}</version></dependency><!-- Huawei提供的编解码接口,必须 --><!-- systemPath请替换成你本地的目录 \codecDemo\lib\com.huawei.m2m.cig.tup-1.3.1.jar --><dependency><groupId>com.huawei</groupId><artifactId>protocal-jar</artifactId><version>1.3.1</version><scope>system</scope><systemPath>${basedir}/lib/com.huawei.m2m.cig.tup-1.3.1.jar</systemPath></dependency></dependencies><build><plugins><!-- 编码需要使用JDK1.8版本 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- OSGI规范打包配置 --><plugin><groupId>org.apache.felix</groupId><artifactId>maven-bundle-plugin</artifactId><version>${felix.maven.plugin.version}</version><extensions>true</extensions><configuration><buildDirectory>./target</buildDirectory><archive><addMavenDescriptor>false</addMavenDescriptor></archive><instructions><Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment><Bundle-Activator></Bundle-Activator><Service-Component>OSGI-INF/*</Service-Component><!-- 请修改为你的编解码插件的名字,命名规范:设备类型-厂商ID-设备型号,例如:WaterMeter-Huawei-NBIoTDevice --><Bundle-SymbolicName>WaterMeter-Huawei-NBIoTDevice</Bundle-SymbolicName><Export-Package></Export-Package><Import-Package>org.slf4j,org.slf4j.spi,org.apache.log4j.spi,com.huawei.m2m.cig.tup.modules.protocol_adapter,com.fasterxml.jackson.databind,com.fasterxml.jackson.databind.node</Import-Package><!-- 除junit,slf4j-api,jackson-databind,protocal-jar, 其他所有的依赖包,必须把包对应的artifactId填入Embed-Dependency。artifactId之间以逗号分隔。 --><Embed-Dependency><!-- json-lib --></Embed-Dependency></instructions></configuration><executions><execution><id>generate-resource</id><goals><goal>manifest</goal></goals></execution></executions></plugin></plugins></build>
</project>

按照注释修改完成就ok了~!
修改maven配置文件:

在如图所示的位置:

<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" immediate="true" name="com.Huawei.NBIoTDevice.WaterMeter.ProtocolAdapterImpl"><implementation class="com.Huawei.NBIoTDevice.WaterMeter.ProtocolAdapterImpl"/><service><provide interface="com.huawei.m2m.cig.tup.modules.protocol_adapter.IProtocolAdapter" /></service>
</scr:component>

这里需要重点注意一下,第21条22条23条就是说的这个文件!

上面说的name也好class也好都是项目中ProtocolAdapterImpl.java文件的访问路径,这里还有一点需要注意,就是本项目的包名:

如上题所示我们的包名不是随便取的,必须是com.厂商名称.产品型号.设备类型
完成以上工作,就完成了编解码项目的所有配置工作,下一步就是找到程序被调用的入口及编写窍门了!!
编解码插件编写入口!

NB物联网之天翼物联(4)——配置编解码插件相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 物联网开放平台全面赋能生态伙伴,电信“天翼物联开发者大赛”技术沙龙北京站如期举行...

    物联网开放平台全面赋能生态伙伴,电信"天翼物联开发者大赛"技术沙龙北京站如期举行 [中国▪北京]12月7日,中国电信携手华北地区生态伙伴齐聚京城,共话物联网产业生态未来.本次沙龙以 ...

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

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

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

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

  9. 天翼物联携手6家单位发起移动物联网高质量发展共同倡议

    近日,由工信部指导,中国信息通信研究院(以下简称"中国信通院").中国通信学会.无锡市人民政府.人民邮电报社.江苏省工业和信息化厅.江苏省通信管理局共同主办,无锡物联网创新促进中心 ...

最新文章

  1. 如何反驳「神经网络本质不过是初中生都会的复合函数」?
  2. CentOS 7 中 Systemd详解
  3. Dockerfile文件全面详解
  4. 反arp攻击软件_网络安全工程师教Kali Linux:ARP欺骗概述
  5. ETSI MEC — 与 5G 的融合
  6. mysql-connector-net-6.7.4.msi,在ActiveReports中使用MySQL数据库
  7. 通用权限管理系统组件中简易员工档案管理模块参考
  8. ble gatt核心结构
  9. STM32F4 HAL库开发 -- NVIC 中断优先级管理
  10. notepad python_Notepad++配置Python开发环境
  11. Codeforces 919D - Substring
  12. c++修复工具_几款平价又好用的U盘修复工具分享
  13. java使用队列实现栈思路_算法面试:队列实现栈的方案
  14. 如何利用shell查看Ubuntu系统版本号和电脑类型
  15. S50VB100-ASEMI日本新电元平替整流桥S50VB100
  16. CrackMe —— 004
  17. 教研教改课题 php,关于申报2019年全国高校、职业院校物流教改教研课题的通知...
  18. faster-rcnn 训练自己的数据集
  19. adb概览及协议参考
  20. Mac鼠标滚轮控制浏览器

热门文章

  1. OpenStack OVS GRE/VXLAN
  2. 一级计算机多选题,2016年计算机一级考试WPS基础模拟多选题
  3. paip 中国银联接口错误码总结
  4. 安卓 虚拟按键显示与隐藏适配
  5. 杰里之 非 TWS 方案解决播放 wtg 提示音后蓝 牙音乐卡顿问题【篇】
  6. python while循环求和_Python基础——for/while循环
  7. 虚拟化磁盘模式、数据存储详解
  8. VirtualBox使用物理硬盘分区作虚拟机磁盘
  9. 在html中如何截取字符串,javascript中如何截取字符串?
  10. STC15W408AS单片机使用CH340下载工具下载程序一直停留在检测单片机型号