此处固件升级,是产品级别的固件升级管理。客户可对产品下的批量设备继续固件OTA升级的策略配置。客户可管理不同产品的不同版本固件的升级信息。客户可根据固件类型进行筛选,区分系统固件、模组固件、MCU固件。
升级流程,由上传固件,固件验证、配置发布策略,查看发布状态等步骤组成,时序图如下:
			
			| 关键名词 | 数据类型 | 生成规则 | 说明 | 
|---|---|---|---|
| 产品版本名称 | 字符串 | 用户自定义 | 平台用于描述基于产品级别的固件整包的名称 | 
| 产品版本号 | 正整数 | 平台自增 | 平台产品级别的固件整包的唯一版本号,最小值为1,开发平台基于该版本号进行固件版本管理,平台做设备版本比对时,仅关注该版本号 | 
| 模块编号/插件编号 | 1-100正整数 | 用户自定义 | 一个产品版本下,可以支持多个(插件/模块)固件包的管理、维护,对于硬件开发者而言,它是用户开发的插件或模块对应的串口编号,唯一不可重复,0为开放平台默认保留的通讯模组编号 | 
| 软件版本号 | 字符串 | 用户自定义 | 产品版本下模块/插件对外显示的版本号,也是设备端用来校验设备是否需要进行固件升级的版本号,建议格式:Vx.y.z | 
| 硬件版本号 | 字符串 | 用户自定义 | 固件所属硬件的版本号,非必填 | 
针对MCU和SoC方案的通信模组以及MCU部分,区分不同的升级处理步骤:
			
			| 开发方案 | 固件类型 | 固件来源 | 产品版本 | 说明 | 
|---|---|---|---|---|
| MCU方案 | 模组+MCU | 1、模组固件来源clife。2、MCU固件客户自行上传。 | 统一由客户定义 | 1、模组固件,无需上传固件,系统验证,自行发布。2、MCU固件客户自定义上传,可系统或自行线下验证,并进行发布。 | 
| SoC方案 | 模组 | 由客户自行上传 | 客户定义 | 由客户上传固件,可系统或自行线下验证,并进行发布 | 
固件的OTA升级,根据不同的开发方案,区分固件通信模块、MCU、系统等不同类型,客户需填写产品版本号,以及各模块的内部版本号,支持上传固件程序文件包或者下载链接。上传的固件状态区分待验证、验证中、验证完成、已发布,对应的操作如下:
| 固件升级状态 | 可操作按钮 | 
|---|---|
| 待验证 | 验证,删除 | 
| 验证中 | 修改验证,查看验证,删除 | 
| 验证完成 | 发布,删除 | 
| 已发布 | 查看批次,删除 | 
独立MCU方案方案产品,通信模组的固件,可选择升级或不升级,升级则自动拉取平台的最新固件版本,MCU升级则由客户自定义上传MCU模块的名称、编号、软件版本号、硬件版本号以及固件包:
	
				
			SoC方案产品,通信模组的固件,可选择升级或不升级,升级则由客户自定义上传的最新固件,同时可以上传其他升级插件包,需定义插件的名称、编号、软件版本号、硬件版本号以及固件包:
	
				
				
			上传固件后,可以查看固件,修改验证,查看验证以及修改验证中估计,且上传的固件必须经过验证环节才能发布,C-Life平台支持系统认证和客户线下自行认证,验证支持客户输入或者导入指定的设备物理地址(SN码/Mac地址/IMEI)。
				
			验证中的设备各个升级状态,均支持查看,包括升级后的版本,状态以及验证时间。
			固件在验证完成之后,则进入可发布状态,固件的发布支持多种升级方式,并可自由配置升级的设备对象、升级时间、升级次数等升级测量规则。
| 升级状态 | 升级内容区别 | 升级范围 | 
|---|---|---|
| 普通升级 | 用户可感知,升级触发时用户可以在app上查看到升级提醒,确认后才能升级 | 全部设备、指定设备 | 
| 强制升级 | 用户可感知,在app上查看到升级提示,无需确认自动开始升级 | 全部设备、指定设备 | 
| 静默升级 | 用户无感知,无需确认,设备主动请求升级 | 全部设备、指定设备 | 
| 推送升级 | 用户无感知,无需确认,平台主动推送下发升级到设备(需配置升级策略) | 指定设备 | 
				
				
				
				
			固件包可以进行多次针对不同设备的升级推送,形成不同的升级批次。C-Life平台支持查看批次以及批次下升级的设备详情。
				批次下设备的升级详情,可查看批次的上传、发布时间、升级方式、升级访问,同时可查看此批次下每个具体设备ID升级状态,升级具体日志等详细信息。