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

简介: NB物联网之天翼物联(4)——配置编解码插件

前言


前面为大家介绍了编辑码插件的大体结构,本篇为大家详解怎么配置编解码插件上传包的参数!

向大家推荐如何做到电信NB与移动NB兼容


第23条“婚约”


编解码插件上传位置

image.png

上一篇结尾我们说了如果进行插件开发,必须先了解上传插件包的结构和要求,何为“上传包”?

首先,这个“上传包”就在我们下载的demo文件中:

image.png


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


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

image.png

前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>

1

一致;

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条就是说的这个文件!

image.png

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

image.png

如上题所示我们的包名不是随便取的,必须是com.厂商名称.产品型号.设备类型

完成以上工作,就完成了编解码项目的所有配置工作,下一步就是找到程序被调用的入口及编写窍门了!!

编解码插件编写入口!


相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
相关文章
|
11月前
|
安全 物联网
阿里云产品体系分为6大分类——物联网——分为7类——物联安全
阿里云产品体系分为6大分类——物联网——分为7类——物联安全自制脑图
120 1
|
编解码 物联网 测试技术
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
NB物联网之天翼物联(7)——一次性通过电信NB平台自助测试
|
编解码 JSON 物联网
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
NB物联网之天翼物联(6)——移动电信NB的区别与兼容开发
|
编解码 JSON 物联网
NB物联网之天翼物联(5)——编写编解码插件
NB物联网之天翼物联(5)——编写编解码插件
NB物联网之天翼物联(5)——编写编解码插件
|
2天前
|
供应链 物联网 区块链
未来交织:区块链技术、物联网和虚拟现实的融合革新
【4月更文挑战第25天】 随着科技的迅猛发展,新兴技术如区块链、物联网(IoT)、以及虚拟现实(VR)正在重塑我们的世界。这些技术不仅在独立领域中取得显著进展,而且开始相互交融,催生出一系列创新应用。本文将探讨这些技术的发展趋势,并深入剖析它们在不同行业中的应用场景,包括供应链管理、智能家居、远程工作、以及沉浸式娱乐等领域。
|
6天前
|
存储 供应链 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第21天】 随着科技不断进步,新兴技术正在重塑我们的世界。本文将深入探讨三种引人注目的技术——区块链、物联网(IoT)和虚拟现实(VR)——它们各自的发展趋势及其在不同领域的应用前景。区块链技术以其不可篡改的数据记录特性,在金融安全、供应链管理等领域展现出巨大潜力;物联网通过智能设备互联,推动智能家居、智慧城市的发展;而虚拟现实则以其沉浸式体验,改变教育、娱乐等多个行业的面貌。这些技术的交叉融合预示着一个更加智能、互联和虚拟的未来。
|
6天前
|
供应链 安全 物联网
未来技术纵横谈:区块链、物联网与虚拟现实的融合革新
【4月更文挑战第22天】 在数字化浪潮中,新兴技术的蓬勃发展正推动着传统行业的变革与升级。区块链技术以其不可篡改和去中心化的特性,为数据安全和信息透明提供了新的解决方案;物联网(IoT)通过智能设备的互联互通,实现了环境与行为的智能化管理;而虚拟现实(VR)技术则拓展了人们的感官体验,创造了沉浸式互动的新空间。本文聚焦于这些技术的发展趋势,探讨其在多个应用场景中的结合与创新,旨在描绘一幅技术交织下的未来蓝图。
|
1天前
|
安全 物联网 区块链
未来技术纵横谈:区块链、物联网与虚拟现实的融合与创新
【4月更文挑战第26天】 随着科技的不断进步,新兴技术如区块链技术、物联网(IoT)、以及虚拟现实(VR)正在逐渐改变我们的生活和工作方式。本文将探讨这些技术的独立发展路径,并着重分析它们相互结合时可能产生的创新应用。通过深度剖析每项技术的核心优势和潜在挑战,文章旨在描绘出一个多元化的技术趋势蓝图,并对如何利用这些技术推动社会和经济的可持续发展提供前瞻性的思考。
|
2天前
|
安全 物联网 区块链
未来技术的融合潮流:区块链、物联网与虚拟现实的交汇点
【4月更文挑战第25天】 随着科技的不断进步,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)已逐渐从概念验证走向实际应用。这些技术不仅单独发展迅猛,而且开始相互融合,创造出前所未有的应用场景和商业模式。本文将深入探讨这些技术的发展趋势,分析它们如何协同工作,以及在多个行业中的潜在应用。特别地,我们将聚焦于金融、医疗和娱乐等行业,揭示这些技术如何推动创新并带来颠覆性的变化。
|
3天前
|
供应链 安全 物联网
未来技术的融合潮流:区块链、物联网与虚拟现实的革新之旅
【4月更文挑战第25天】 在数字时代的浪潮中,新兴技术正以前所未有的速度重塑世界。本文将深入探讨区块链技术、物联网(IoT)以及虚拟现实(VR)这三个领域的发展趋势和实际应用。从确保交易安全到实现设备的智能对话,再到创造沉浸式体验,这些技术正在推动着社会的各个维度向前发展。文章旨在提供一个全景视角,展现这些技术如何相互交织,共同构建一个更加智能、互联且安全的未来。
7 0

热门文章

最新文章

相关产品

  • 物联网平台