說明:該插件適用于電信IoT平臺其他平臺未必可用帝璧,另外本章僅介紹插件的開發(fā),profile的編輯請看上篇
1 準(zhǔn)備工具
1.1 任意編輯器
這里建議使用VSCode,為什么就不多說了妆够,用了都說香炭臭,誰用誰知道。
1.2 打包工具-maven
注意:當(dāng)然在使用這個工具前要保證JAVA相關(guān)配置已經(jīng)到位
使用方式很簡單敌呈,只需要添加到系統(tǒng)環(huán)境變量即可贸宏。像這樣:
然后到
path
里增加以下這行:具體打包的過程我們到下面編輯完了工程再說。
2 編輯工程
2.1 獲取示例代碼
示例代碼已上傳至GitHub磕洪,可通過GitHub下載吭练。https://github.com/DefLin/PassThrough_Plugins
2.2 簡單修改插件
許多客戶使用的都是簡單的透傳功能,因此該工程的業(yè)務(wù)邏輯不需要修改析显,只需要根據(jù)自己的廠家需求修改對應(yīng)的名稱即可鲫咽。
具體操作如下:
1.首先打開VSCode,點擊文件
,選擇打開文件夾
分尸,打開我們的示例代碼锦聊。
2.編輯pom.xml
文件,代碼跳轉(zhuǎn)到第7行和第88行箩绍,將屬性名稱修改至與profile
文件夾中devicetype-capability.json
對應(yīng)屬性一致孔庭。譬如下面這個profile:
{
"devices": [
{
"manufacturerId": "TestPlug",
"manufacturerName": "TestPlug",
"model": "T001",
"protocolType": "CoAP",
"deviceType": "TEST",
"omCapability":
{
"upgradeCapability":{
"supportUpgrade":false
},
"fwUpgradeCapability":{
"supportUpgrade":true,
"upgradeProtocolType":"LWM2M",
"downloadProtocolType":"CoAP"
}
},
"serviceTypeCapabilities": [
{
"serviceId": "Connectivity",
"serviceType": "Connectivity",
"option": "Mandatory"
},
{
"serviceId": "SystemCmdRawData",
"serviceType": "SystemCmdRawData",
"option": "Master"
}
]
}
]
}
對應(yīng)的pom.xml
第7行和第88行應(yīng)修改成TEST-TestPlug-T001
,對應(yīng)關(guān)系為deviceType-manufacturerId-model
伶选。
另外史飞,再找到以下文件PassThrough_Plugins\src\main\java\com\thrid\party\codec\demo\ProtocolAdapterImpl.java
修改第13行代碼
private static final String MANU_FACTURERID = "TestPlug";
以及第15行代碼
private static final String MODEL = "T001";
同樣與上文屬性對應(yīng)。
2.3 生成新插件
編輯完畢之后仰税,可以開始使用一開始安裝的maven
打包了构资。
到工程的根目錄下按住shift
鼠標(biāo)點擊右鍵,在此處打開powershell窗口
陨簇,輸入命令mvn package
過程中無ERROR
即是打包成功吐绵。到target
文件夾下即可看見生成的jar包,如:TEST-TestPlug-T001-1.0.0.jar
河绽。
然后己单,新建一個文件夾命名為preload
將jar包放入,在該文件夾外新建一個文件命名為package-info.json
耙饰,編輯內(nèi)容為:
{
"specVersion":"1.0",
"fileName":"package",
"version":"1.0.0",
"deviceType":"TEST",
"manufacturerName":"TestPlug",
"model":"T001",
"description":"codec",
"platform":"linux",
"packageType":"CIGPlugin",
"date":"2017-09-22 12:16:59",
"ignoreList":[],
"bundles":[
{
"bundleName": "TEST-TestPlug-T001",
"bundleVersion": "1.0.0",
"priority":5,
"fileName": "TEST-TestPlug-T001-1.0.0.jar",
"bundleDesc":"demo",
"versionDesc":"demo"
}]
}
同樣與上文提到的屬性相對應(yīng)纹笼,注意bundleName
和fileName
也是,不要忘記苟跪。
最后廷痘,將preload文件夾
和package-info.json
添加到壓縮包,壓縮包命名為package
件已,格式為.zip
笋额。至此,插件生成完畢篷扩,到平臺選擇對應(yīng)的上傳即可兄猩。