NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

时间:2024-04-06 07:30:54

一、按照《中国电信物联网开放平台编解码库开发与升级指南.pdf》文档来操作;

二、在完成profile文件的编写条件下,根据已有的编解码插件codecdemo来修改

其中包含几个重要文件:

  1. CmdProcess.java

   修改serviceI

  1. ProtocolAdapterImpl.java   (代码实现,包含实现接口IProtocolAdapter的类)

   修改厂商名称和设备型号

  1. ReportProcess.java (上报程序)

   修改填写私有字段

  1. ProtocolServiceImplTest.java(测试用例)
  2. Pom.xml(Maven的配置文件)

均需按照要求及我们自己在profile文件中的定义来修改

 

三、修改完成之后进行编解码 maven 打包

 (在此之前要做好搭建 eclipse+Java+mvn 插件开发环境工作)

参考:

Maven的安装及配置:

https://jingyan.baidu.com/article/d8072ac45d3660ec94cefd51.html

JDK环境变量配置:(若之前已经配置好则不需要)

https://jingyan.baidu.com/article/ca41422fe3b7261eae99edc6.html

 

完成插件编程后使用 maven 进行打包, windows 中步骤如下:
a
. 打开 DOS 窗口,进入 pom.xml 所在的目录;
b
. 输入 maven 打包命令: mvn package
c. DOS 窗口中显示“BUILD SUCCESS”后,打开与 pom.xml 目录同级的 target 文件
夹,获取打包好的
jar
打包后的结构如图所示, 注意
jar 的命名规范:设备类型-厂商 ID-设备型号-
.jar,例如: Lightbox_Huawei_NBDevice-1.0.0.jar
1. com 目录存放的是 class 文件。
2. META-INF 下存放的是 OSGI 框架下的 jar 的描述文件(根据 pom.xml 配置生成
的)。

3. OSGI-INF 下存放的是服务配置文件,把编解码注册为服务,供平台调用。
4.其他 jar 是编解码引用到的 jar 包。

NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

  • 制作插件包
    1、将编解码 jar 包和描述文件打包成 ZIP 格式的插件包。
    2. 新建文件夹命名为"package",包含一个 preload/子文件夹。

3. 在"package"文件夹中,新建 package-info.json 文件。插件包目录结构如图所示。

NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

package-info.json 文件模板如下:

 NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

4.选中"package"文件夹中的全部文件,使用 winRAR 等压缩工具打包成 ZIP 格式的
压缩包
package.zip(注意 package.zip 下不能包含 package 这层目录,如图所
示)。

NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

5.使用离线签名工具对 package.zip 进行签名,然后可以通过 IoT 联接管理平台安装
编解码插件。待签名的软件包存放的路径请勿包括中文,否则会验签失败。

参考《NB-IoT编解码插件检测工具使用说明.pdf》

 

  • 使用本地工具signtool测试插件和profile文件,详见《NB-IoT编解码插件检测工具使用说明.pdf》

若检测正确即可以向OceanConnect平台上传profile和编解码插件

 

  • 注册设备

1、登录OceanConnect平台,单击“我的设备 > 注册设备”,即可看到应用下所有已上传的Profile,单击选中需要注册设备对应的Profile。

NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

2、在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。

设备名称:用于区分不同设备,名称可自定义(如NBLightbox)。

设备标识码:设备唯一标识。使用NB模组对接时,填写模组的IMEI号码。

 

  1. 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。

 

  1. 终端入网

终端入网的详细步骤如下所示:

Step 1:终端上电,执行“AT+NRB”复位终端。如果返回OK,表示终端正常运行。

Step 2:执行“AT+CFUN=0”关闭功能开关。如果执行成功,返回OK。

Step 3:执行“AT+NTSETID=1,设备ID”设置设备ID。设备ID为NB模组的IMEI号,如果执行成功,返回OK。 我们这里是“AT+NTSETID=1,863703034540745 863703034511811

Step 4:执行“AT+NCDP=IP, PORT”设置需要对接IoT平台的地址,端口为5683。如果执行成功,返回OK。 我们这里是“AT+NCDP=180.101.147.115,5683

Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。

Step 6:执行“AT+NBAND=频段”设置频段。如果执行成功,返回OK。频段信息可以咨询NB模组厂商。 我们这里是“AT+NBAND=5

Step 7:执行“AT+CGDCONT=1,“IP”,“APN”设置核心网APN。如果执行成功,返回 OK。核心网APN可联系运营商(与运营商网络对接时)或者OpenLab负责人(与OpenLab网络对接时)进行获取。(注:此步骤可省略)

Step 8:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。

Step 9:执行“AT+CGPADDR”查询终端是否获取到核心网分配的IP地址,如果获取到IP地址,表示终端入网成功。

Step 10:执行“AT+NNMI=1”设置下行数据通知功能,如果执行成功,返回OK

 

5、数据上报

串口工具中上报数据

执行“AT+NMGS=7,00002016050101”发送上行数据,如果上行数据发送成功,返回OK。由于设置了 “AT+NNMI=1”,如果编解码插件中写了IoT平台对上报数据的应答,则上行数据发送成功后会自动获取应答数据。

上报数据的AT命令为:AT+NMGS=7,00002016050101。具体解析如下:

1. AT+NMGS=N,XXXXXXXXXX为上报数据的AT命令格式,其中“N”表示一共上报几个字节,后面为具体的上报字节内容,以十六进制字符串表示。这些需要提前在编解码插件中写好。

2. 本例中,一共上报7个字节,分别为“00”、“00”、“20”、“16”、“05”、“01”、“01”。其中,第一个字节“00”表示上报数据deviceReq,第二个字节“00”表示没有后续数据

第三个字节“20”表示temperatureCur(当前温度32),第四个字节“16”表示humidityCur(当前湿度22),第五个字节“05”表示batteryCur(当前电压值5V),第六个字节“01”表示lock1State(锁1状态关闭),第七个字节“01”表示lock2State(锁2状态关闭)。

注:这些内容与profile文件和编解码插件是一一对应的。

由于本例中的编解码插件写了上报数据应答,在上报数据成功后会收到“+NNMI:4,00000000”的应答。(ACK后面还需修改)

 

6、 IoT平台中查看数据

Step 1 登录SP Portal,点击菜单“设备管理 > 设备”,可看到注册设备已由“离线”状态变为“在线”状态。

Step 2 单击与deviceId对应的注册设备,进入”设备列表 > 网关”页。

Step 3 在”设备列表 > 网关”页,选择”数据”项,即可看到已经上报且被解析后的json数据。

(或者OceanConnect平台,点击我的设备->设备详情->历史数据)

NBIOT编解码插件开发流程---上行数据(基于华为电信物联网平台)

 

在实际应用中,数据到达平台后,可以通过两种方式在应用服务器中接收数据:

1.调用数据查询类接口,从平台取出缓存的数据至应用服务器。

2.调用订阅接口,设置好推送地址,数据到达平台后会按照既定的IP地址将主动将数据推送至应用服务器。