• 沒有找到結果。

15.1 升级指导(联通用户专用)

非联通用户请查看设备接入服务。

概述

软件(Software)一般分为系统软件和应用软件,系统软件实现设备最基本的功能,

比如编译工具、系统文件管理等;应用软件可以根据设备的特点,提供不同的功能,

比如采集数据、数据分析处理等。

软件升级又称为SOTA(SoftWare Over The Air),是指用户可以通过OTA的方式支持 对LWM2M协议和MQTT协议的设备进行软件升级。基于LWM2M协议的产品模型,软 件升级遵循的协议为PCP协议(查看PCP协议介绍),设备侧需要遵循PCP协议进行软 件升级的适配开发,适配方法请参考15.2 设备侧适配开发指导(联通用户专用);基 于MQTT协议的产品模型,不校验软件升级协议类型。

物联网平台支持LWM2M协议和MQTT协议的产品模型的软件升级。

LWM2M 协议软件升级流程

LWM2M协议SOTA升级流程的详细说明:

1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软 件升级任务。

4~5. 物联网平台向设备下发查询设备软件版本的命令,查询成功后,物联网平台根据

7~8. 物联网平台查询终端设备所在的无线信号覆盖情况,获取小区ID、RSRP

(Reference Signal Received Power,参考信号接收功率)和SINR(Signal to Interference Plus Noise Ratio,信号干扰噪声比)信息。

● 查询成功:则根据如下方式计算可同时升级的并发数计算,并按照步骤10进行处 理。

– 如下图所示,如果设备的RSRP强度和SINR强度均落在等级“0”中,则同时 可以对该小区的50个相同信号覆盖区间的设备进行同时升级。

– 如果设备的RSRP强度和SINR强度分别落在等级“0”和“1”中,则以信号较 弱的等级“1”为准,则只能同时对该小区的10个设备进行升级。

– 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较 弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。

– 如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,

则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。

MQTT 协议软件升级流程

MQTT协议SOTA升级流程的详细说明:

1~2. 用户在设备管理服务的控制台上传软件包,并在控制台或者应用服务器上创建软 件升级任务。

3. 平台感知设备是否在线,当设备在线时立即触发升级协商流程。当设备不在线时,

等待设备上线订阅升级topic,平台感知设备上线,触发升级协商流程。

4~5. 平台向设备下发查询设备软件版本号的命令,查询成功后,物联网平台根据升级 的目标版本判断设备是否需要升级 。如果返回的软件版本信息与升级的目标版本信息 相同,则升级流程结束,不做升级处理,升级任务置为成功。如果返回的软件版本信 息与升级的目标版本信息不同,且该版本号支持升级,则继续进行下一步的升级处 理。

6~7. 物联网平台下发下载包URL、token及包的相关信息,用户根据下载包URL和 token通过HTTP协议来下载软件包,24小时后token无效。

检查软件升级能力

对终端设备进行软件升级,需要检查设备对应的产品模型中,是否支持设备的软件升 级能力。您可以通过如下方式检查和设置设备软件升级的能力

步骤1 登录设备管理服务的控制台,单击左下角 ,切换到设备管理页面。

步骤2 在“产品模型”界面点击“详情”,进入“产品详情”界面。

步骤3 在“维护能力配置”界面中,检查软件升级的能力。协议为LWM2M的产品模型,将 软件升级设置为“支持”,协议为PCP。协议为MQTT的产品模型,将软件升级设置为

“支持”,不校验软件升级协议类型。

说明

该操作只是修改了产品模型的能力,该产品模型对应的终端设备也需要支持软件升级的能力。否 则,当升级任务中选择了不支持软件升级的终端设备,会导致软件升级失败。

----结束

制作软件升级版本包

设备升级的软件包文件由各设备厂商提供,在物联网平台上传设备的软件升级包前,

需要制作软件升级的版本包,用于修改软件包的描述文件,如软件版本、厂商名称、

设备类型、产品模型等信息。下面将详细介绍版本包的制作方法。

步骤1 新建文件夹命名为“DM”,在DM文件夹下新建文件夹,命名为“linux”。

步骤2 使用Notepad++文本工具新建一个文本文件,拷贝如下内容到文本中,在Notepad+

+工具的“编码”菜单中选择“使用UTF-8编码”,然后将文本进行存储,存储路径选 择步骤1中的“linux”文件夹,文件名称命名为“UpgradeDesc”,保存类型选择

“.json”。

{ "specVersion": "",

"fileName": "", "packageType": "", "version": "", "deviceType": "", "manufacturerName": "", "model": "",

"protocolType":"", "description":"", "versionCheckCode":"", "deviceShard":"", "platform":"",

"supportSourceVersionList":[], "date":""

}

步骤3 打开创建的“UpgradeDesc.json”文件,修改软件升级描述文件,相关字段如下表所 示。

字段名 字段描述 是否必填

specVersion 描述文件版本号,固定值:“1.0”。 是 fileName 软件包文件名,例如:

“ExamplePackage_V1.0.10.xx”。 是 packageType 软件包类型,必须设置为:

“softwarePackage”。 是 version 软件包版本号长度不超过16个字节,例如:

“V1.0.10” 是

deviceType 设备类型,需要与产品模型保持一致。例如:

“WaterMeter”。 是

manufacturerNam

e 制造商名称,需要与产品模型保持一致。例如:

“TestUtf8ManuName”。 是 model 产品型号,需要与产品模型保持一致。例如:

“TestUtf8ModelM2M”。 是 protocolType 设备接入协议类型,需要与产品模型保持一致。

例如:“CoAP”。

说明设备接入的协议类型有三种:“CoAP”、

“LWM2M”、“MQTT”。

description 对软件包的自定义描述。 是 versionCheckCode 软件升级包校验码,长度为4个字符。软件包下载

时支持断点续传,根据该字段标识前后两次下载 的软件包分片是否为同一个软件包。

deviceShard 终端下载软件包的每个分片的大小,单位为

byte,如果不设置默认为500byte。大小为 否

字段名 字段描述 是否必填 supportSourceVers

ionList 支持用于升级此版本包的设备源版本列表。

支持通配符配置,*代表匹配任意0~n个字符,?代 表匹配单个任意字符,如果存在多个版本,请使 用英文“;”隔开。

date 出包时间,格式为:“yyyy-MM-dd”。 否

步骤4 在与“DM”同级目录下创建文件夹,命名为“linux”,该文件夹名称必须同步骤1中 的文件夹命令保持一致,将厂商软件包(软件包格式无限制)置于该文件中。

步骤5 选中“DM”和“linux”文件夹,使用压缩工具打包成ZIP格式的压缩包,建议命令为

“xx_package.zip”。

须知

● 文件“DM”和“linux”的命名是固定的。

● “xx_package.zip”下不能包含package这层目录。

● 仅支持ZIP格式的压缩包,不能压缩成其他格式后,例如rar,再手动修改文件类型 为zip。

步骤2 解压“signtool.zip”,双击“signtool.exe”,运行离线签名工具。

步骤3 在“生成数字签名公私钥对”区域,选择“签名算法”,设置“私钥加密口令”,点 击“生成公私密钥”,在弹出的窗口中选择需要保存的目录,点击“确定”,保存生 成的公钥文件和私钥文件。

步骤4 在“软件包数字签名”区域导入私钥文件并输入私钥加密口令(私钥加密口令为在步 骤3中设置的“私钥加密口令”)后,点击“确定”。并选择需要签名的软件包(软件 包格式只能为.zip格式),点击“进行数字签名”。

数字签名成功后,将会在原软件包所在目录下生成名称为 “xxx_signed.zip”的带签名 软件包。

步骤5 验证软件包数字签名是否成功,在“软件包签名验证”区域导入公钥文件后,并选择 步骤4中签名的软件包,点击“进行软件包验签”。

● 验证成功则弹出“验证签名成功!”提示框。

● 验证失败则弹出“验签异常!”提示框。

说明

在进行软件包验签时,带签名软件包的存放路径不能包含中文字符。

上传软件包:

步骤1 登录物联网平台控制台,点击右上角“进入设备管理服务”。单击左下角 ,在

“软件库 > 公钥管理”中,上传软件包签名生成的“公钥文件(public.pem)”,上 传公钥时,需选择厂商名称,该名称为上传的产品模型中定义的厂商名称。

步骤2 在“软件库 > 软件包管理”界面中,选择“添加软件包”,将已经签名的软件包进行 上传。

----结束

单个设备软件升级

用户对单个设备进行软件升级有两种方式:

1. 应用服务器通过调用的“创建软件升级任务”API接口,创建单个设备的升级任 务,详情请参考创建软件升级任务。

2. 通过控制台,创建单个设备的软件升级任务。

说明

● 设备升级前,请在“设备详情 > 命令”中,检查是否存在还在执行的命令,若存在,

需要先等待所有命令执行后或是取消等待执行的命令,才可以创建设备升级任务。

● 在设备软件升级期间,应用侧不要向设备下发其他命令消息,否则可能会导致设备升级 失败。

下面将重点介绍通过控制台创建单个设备的软件升级任务。

步骤1 登录物联网平台控制台,点击右上角“进入设备管理服务”。单击左下角 ,进 入“设备 > 所有设备”页面。

步骤2 在设备列表中选择需要升级的设备,进入“设备详情 > 软件”页面,点击当前软件版 本右侧的“升级”按钮。

说明

需要在检查软件升级能力中,打开软件升级支持的开关,才会在“软件”界面显示软件信息和

“升级”按钮。

步骤3 在弹出的界面中,选择需要升级的软件版本对应的软件包,单击“确定”,提示创建 软件升级任务成功。通过该方式进行软件升级,如果升级失败,是不会进行重试的。

步骤4 在“设备详情 > 操作记录中”,可以查看软件升级任务的状态。操作类型需要选择

“软件升级”。

软件升级任务的状态说明:

● 等待:等待任务的执行,创建完升级任务后,在10秒内为该状态,10秒后变更为

“运行中”。

● 运行中:表示正在进行升级操作,包括等待设备上线、设备升级操作期间均为该 状态。

● 停止:手动停止正在“运行中”的升级任务。

● 成功:终端设备反馈升级任务执行成功。

● 失败:设备升级失败,如下载升级包超时、升级响应超时、设备反馈升级结果失 败等原因。

----结束

批量设备软件升级

用户对批量设备进行软件升级有两种方式:

1. 应用服务器通过调用的“创建软件升级任务”API接口,创建批量设备的升级任

1. 应用服务器通过调用的“创建软件升级任务”API接口,创建批量设备的升级任

相關文件