美文网首页NB-IoT
电信IoT平台——离线插件开发

电信IoT平台——离线插件开发

作者: 林定益想去NASA捡垃圾 | 来源:发表于2019-04-29 17:10 被阅读157次

    说明:该插件适用于电信IoT平台其他平台未必可用,另外本章仅介绍插件的开发,profile的编辑请看上篇

    1 准备工具

    1.1 任意编辑器

    这里建议使用VSCode,为什么就不多说了,用了都说香,谁用谁知道。

    1.2 打包工具-maven

    注意:当然在使用这个工具前要保证JAVA相关配置已经到位

    下载地址

    使用方式很简单,只需要添加到系统环境变量即可。像这样:

    系统环境变量.jpg
    然后到path里增加以下这行:
    系统环境变量.png

    具体打包的过程我们到下面编辑完了工程再说。

    2 编辑工程

    2.1 获取示例代码

    示例代码已上传至GitHub,可通过GitHub下载。https://github.com/DefLin/PassThrough_Plugins

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

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

    插件上传.jpg

    相关文章

      网友评论

        本文标题:电信IoT平台——离线插件开发

        本文链接:https://www.haomeiwen.com/subject/fpbynqtx.html