版本控制和ota升级简图
<p><div style="border: 1px solid #ccc; padding: 10px; background-color: #f9f9f9;">
<h3>云平台OTA通用功能</h3></p>
<p><h4>数据基本平台:</h4>
<ol>
<li>机器人的硬件属性包括机器人产品型号、机器人固件型号和机器人固件版本号。软件属性包括各模块的版本号,版本号的格式样例为x.y.z,例如1.0.1版本。</li>
<li>不同的软件模块版本号对应特定的产品型号和固件型号,并且每个软件模块都有指定的最低固件版本要求。一个软件模块可能对应多个固件型号及其对应的最低版本要求。</li>
<li>指定的机器人(具有唯一的机器序列号SN)通过MQTT上传其固件型号和版本号,并存储在云平台的数据库中。</li>
<li>软件模块的正常运行不仅依赖于最低固件版本,还可能依赖其他软件模块的最低版本号。例如,A模块的1.1.0版本正常运行需要B模块至少升级到1.0.0版本。</li>
<li>软件模块的版本及其描述以及软件二进制安装包,包括该软件所依赖的固件、其他软件模块的最低版本要求,都由各模块负责人在云平台上传和录入。</li>
</ol></p>
<p><h4>OTA流程:</h4>
<ol>
<li>升级指定的机器人:通过序列号SN检索,指定升级某个或某些软件模块。云平台会验证软件模块是否满足依赖关系,然后下发升级命令和升级包序列。</li>
<li>升级指定的软件版本:通过机器人上传的版本号进行检索,指定当前装载了A模块的机器人至少升级到指定版本,例如1.1.0。在此阶段,云平台仍会验证是否满足依赖关系。</li>
<li>级联升级功能:在机器人的固件条件满足的情况下,下发命令A模块升级到指定版本。云平台可以自动检索A模块所需依赖升级的所有软件模块的版本号,并下发相应指令。例如,如果希望机器升级到A模块2.0.0版本,云平台在检测时发现A模块依赖B模块的1.5.0版本,但机器人上只有B模块的1.4.0版本,此时需要自动同时升级B模块。</li></p>
<p></ol>
<h4>版本升级记录和回退:</h4>
<ol>
<li>每次升级都有成功和失败的记录以及升级日志,可以查询每个机器人过去的版本号迭代记录,并支持版本回退。</li>
</ol>
</div></p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7aa11f76150fb4dec59a625369e84689&amp;file=file.png" alt="" /></p>