设备固件升级概述¶
EnOS提供面向设备的固件OTA(Over-the-Air)升级服务,该服务支持云端对设备的固件版本管理和升级消息推送能力,以满足设备部署后的缺陷修复和功能升级等需求。
固件版本全生命周期管理¶
你可以通过EnOS Console实现固件版本全生命周期管理,新建固件版本并设定升级策略。云端自动对选中的设备推送升级请求,记录升级进度和结果。
通过EnOS管理固件版本生命周期的过程如下:
资源准备¶
设备文件存储资源
为OTA使用设备文件存储服务前,需确保OU已经通过 EnOS管理门户 > 资源管理 页面申请 设备文件存储 资源。有关申请资源的详细信息,参见 设备文件存储。
设备端OTA升级SDK¶
提供设备端OTA升级SDK,封装版本号上报和升级的相关消息接口,设备应自行实现具体的固件切换逻辑,并上报升级后的固件版本号。
固件OTA升级流程¶
EnOS支持以下固件升级方式:
云端主动推送升级:云端对设备端发起强制升级,要求指定设备升级到指定的版本号。
设备端请求升级:由设备所有者或者运维人员判断是否要进行升级,只有确定升级时设备才会向云端发起升级请求。
云端主动推送升级¶
云端主动推送升级流程如下图所示:
云端创建批量升级任务后,根据升级策略维护待升级的设备范围,按照升级序列将升级请求推送至设备:
如果设备此时在线,则设备接收升级请求后即开始进入升级流程。
如果此时设备不在线,则等待设备下次与云端建连后再接收本次升级请求。
云端主动推送属于强制性升级请求,一般情况下设备接收到即会进入升级流程并重启上报新版本号,但是否真的强制升级依赖于设备端的实现,开发者仍然可以对下载后的OTA固件增加本地确认升级逻辑,本地确认后才会真正切换到新的固件启动区。
设备请求升级¶
设备请求升级流程如下图所示:
云端创建批量升级任务后,选择升级方式为设备请求升级,此时云端不会立即向设备推送升级请求,而是仅维护待升级的设备列表,只有设备主动请求升级后,判断设备处于当前的升级范围内,才会返回该设备可升级的固件版本信息,设备确认升级后,才会进入到升级流程中。
设备主动升级增加了人工干预和确认环节,是一种可选升级,在某些场景下,无需强制设备升级,而是设备的实际情况选择是否要升级。