生活随笔
收集整理的這篇文章主要介紹了
NB物联网之天翼物联(4)——配置编解码插件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
前面為大家介紹了編輯碼插件的大體結構,本篇為大家詳解怎么配置編解碼插件上傳包的參數!
向大家推薦如何做到電信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><artifactId>WaterMeter-Huawei-NBIoTDevice
</artifactId><version>1.0.0
</version><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><dependency><groupId>com.fasterxml.jackson.core
</groupId><artifactId>jackson-databind
</artifactId><version>${fasterxml.jackson.version}
</version></dependency><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><plugin><groupId>org.apache.maven.plugins
</groupId><artifactId>maven-compiler-plugin
</artifactId><configuration><source>1.8
</source><target>1.8
</target></configuration></plugin><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><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><Embed-Dependency></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)——配置编解码插件的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。