查看: 2556|回复: 0

[技术交流] 【和你一起聊聊NB-IoT】电信平台—透传编解码插件开发

[复制链接]

50

主题

409

帖子

1309

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
1309
发表于 2019-5-6 09:12:38 | 显示全部楼层 |阅读模式
写在前面:该插件适用于电信IoT平台其他平台未必可用,另外本章仅介绍编解码插件的开发,profile的编辑请看上篇《电信IoT平台-profile生成
1 准备工具1.1 任意编辑器
这里建议使用VSCode。
1.2 打包工具-maven
注意:当然在使用这个工具前要保证JAVA相关配置已经到位
使用方式很简单,只需要添加到系统环境变量即可。像这样:
然后到path里增加以下这行:
具体打包的过程我们到下面编辑完了工程再说。
2 编辑工程2.1 获取示例代码
示例代码已上传至GitHub,可通过GitHub下载。
2.2 简单修改插件许多客户使用的都是简单的透传功能,因此该工程的业务逻辑不需要修改,只需要根据自己的厂家需求修改对应的名称即可。
具体操作如下:
1.首先打开VSCode,点击文件,选择打开文件夹,打开我们的示例代码。
2.编辑pom.xml文件,代码跳转到第7行和第88行,将属性名称修改至与profile文件夹中devicetype-capability.json对应属性一致。譬如下面这个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"
                }

            ]
        }
    ]
}

对应的pom.xml第7行和第88行应修改成TEST-TestPlug-T001,对应关系为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";
同样与上文属性对应。

2.3 生成新插件
编辑完毕之后,可以开始使用一开始安装的maven打包了。
到工程的根目录下按住shift鼠标点击右键,在此处打开powershell窗口,输入命令mvn package过程中无ERROR即是打包成功。到target文件夹下即可看见生成的jar包,如:TEST-TestPlug-T001-1.0.0.jar。
然后,新建一个文件夹命名为preload将jar包放入,在该文件夹外新建一个文件命名为package-info.json,编辑内容为:

{
    "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"
    }]
}



同样与上文提到的属性相对应,注意bundleName和fileName也是,不要忘记。
最后,将preload文件夹和package-info.json添加到压缩包,压缩包命名为package,格式为.zip。至此,插件生成完毕,到平台选择对应的上传即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表