文档状态 | [ ] 草稿 [ ] 正式发布 [ √ ] 正在修改 |
---|---|
文档版本号 | v1.5 |
文档密级 | 内部资料 |
归属部门 | 武汉极目未来数据科技有限公司 |
产品名 | 极目农业植保运营系统 |
子系统名 | 地面站 |
更新日志:
日期 | 版本 | 变更记录 | 作者 |
---|---|---|---|
2018/06/13 | v1.0 | 编写初版 | 余明旭 |
2018/06/14 | v1.1 | [修改] 版本回退功能更新规则为版本匹配 | 余明旭 |
2018/06/15 | v1.2 | [调整] 1、版本回退功能只允许回退一个版本 2、版本回退功能由后台控制是否开放 |
余明旭 |
2018/06/19 | v1.3 | [新增] 各版本间的处理方式表 | 余明旭 |
2018/06/20 | v1.4 | [新增] 版本回退处理方式表 | 余明旭 |
2018/06/21 | v1.5 | 简化流程 | 余明旭 |
一、目的
避免地面站与无人机固件出现版本不匹配,造成无法正常作业问题。
二、原则
1)非强制升级版本,地面站软件升级由用户决定
2)地面站及无人机固件版本回退由服务端控制,仅在发生重大问题才会开放。
三、实现步骤
3.1)后台新增-版本对应关系表:
后台需创建地面站与后台版本匹配关系表。
地面站版本名 | 地面站版本号 | 无人机固件版本 | 创建时间 |
---|---|---|---|
v2.1.045 | 201004500 | 3.0.109 | 2017/06/06 17:56:01 |
v2.1.045 | 201004500 | 3.0.110 | 2017/06/07 18:56:02 |
v2.1.046 | 201004600 | 3.0.113 | 2017/06/08 19:56:03 |
v2.1.046 | 201004600 | 3.0.116 | 2017/06/09 20:56:04 |
v2.1.046 | 201004600 | 3.0.117 | 2017/06/10 21:56:05 |
3.2)后台新增-版本匹配检查接口
调用地址: /gs/checkVersionMatch
接口用途: 检查地面站与固件版本是否匹配
请求方式: GET
输入参数: 如下表
字段名 | 字段类型 | 是否必填(Y/N) | 字段描述 |
---|---|---|---|
deviceCode | String | Y | 无人机序列号 |
gsVersion | String | Y | 地面站版本号 |
成功返回内容
{
"code":"000000"
"message":"successful"
"result":1 // 1-匹配 0-不匹配
}
3.3)后台修改-固件版本检查接口:
调用地址: gs/getLatestFirmwareInfo
接口用途: 获取基站类型列表
请求方式: GET
输入参数: 如下表
字段名 | 字段类型 | 是否必填(Y/N) | 字段描述 |
---|---|---|---|
deviceCode | String | Y | 无人机序列号 |
gsVersion | String | N | 地面站版本号 |
新旧接口调整比较
现阶段流程 | 新增gsVersion参数流程 |
---|---|
1、传递deviceCode参数给后台 2、后台接收后查询固件版本最新更新一条记录 3、如果固件版本不匹配则推送新固件给地面站进行固件升级使用 |
1、传递deviceCode、gsVersion参数给后台。 2、后台判断gsVersion是否不为空,为空进入老的固件监测流程,不问空进入版本匹配流程 3、版本号不为空会进入匹配关系检查流程 4、无论是否匹配都会返回当前地面站版本所对应的最新固件推送给地面站,匹配关系存在会多一个忽略选项,如果不存在只会提供升级固件选项。 |
流程图
四、版本回退
4.1)固件回退:
a、检查是否存在匹配关系,如果不存在需要进行建立
b、直接替换线上的固件版本
4.2)地面站回退:
a、优先在现有发布版本代码基础上进行修复,推送新版本更新/进行热修复
b、提供与当前版本号相同的低版本代码安装包下载地址
- 因涉及到离线数据,如果地面站的数据库在新版本中有对表字段进行修改,在降级到低版本中将会出现不兼容问题,最稳妥的方法就是将所有当前版本将用到的表全部重建,即降级时扔掉以前全部的数据
- 原则上不能出现版本回退操作,除非在万不得已情况下,将上一版本的的代码取出后,修改版本号高于当前发布版本的版本号,生成apk后供用户下载使用。