什么是编解码插件
一款产品的设备上报数据时,如果“数据格式”为“二进制码流”,则该产品需要进行编解码插件开发;如果“数据格式”为“JSON”,则该产品下不需要进行编解码插件开发。
以NB-IoT场景为例,NB-IoT设备和物联网平台之间采用CoAP协议通讯,CoAP消息的payload为应用层数据,应用层数据的格式由设备自行定义。由于NB-IoT设备一般对省电要求较高,所以应用层数据一般不采用流行的JSON格式,而是采用二进制格式。但是,物联网平台与应用侧使用JSON格式进行通信。因此,您需要开发编码插件,供物联网平台调用,以完成二进制格式和JSON格式的转换。

编解码插件开发方式有:图形化、离线开发、脚本化开发。本文介绍如何通过离线方式开发编解码插件。
开发环境准备
Maven的配置涉及Windows环境变量的配置与在Eclipse中的配置,环境变量的配置请参考网上资源,本节仅介绍Maven在Eclipse中的配置。
1. 选择Eclipse菜单“Windows”->“Preferences”,打开Preferences窗口,选择“Maven”->“Installations”->“Add”。

2. 选择maven插件包路径,点击“Finish”,导入Maven插件。

3. 选择导入的maven插件,点击“OK”。

导入编解码插件Demo工程
下载编解码插件DEMO工程,在“source_code”文件夹中获取“codecDemo.zip”,将其解压到本地。

2. 打开Eclipse,右击Eclipse左侧“Project Explorer”空白处,选择“Import > Import...”。

3. 展开“Maven”,选择“Existing Maven Projects”,点击“Next”。

4. 点击“Browse”,选择步骤1解压获得的“codecDemo”文件夹,勾选“/pom.xml”,点击“Finish”。

实现样例讲解
导入的编解码插件Demo工程结构如下图所示。

本工程是一个Maven工程,您可在此样例工程的基础上修改如下部分,适配成自己需要的编解码插件。
修改Maven的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
<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>
......
<dependencies>
......
<!-- 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>
<!-- OSGI规范打包配置 -->
<plugin>
<configuration>
<instructions>
<!-- 请修改为你的编解码插件的名字,命名规范:设备类型-厂商ID-设备型号,例如:WaterMeter-Huawei-NBIoTDevice -->
<Bundle-SymbolicName>WaterMeter-Huawei-NBIoTDevice</Bundle-SymbolicName>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>
|
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
评论(0)