美文网首页
版本匹配

版本匹配

作者: 余明旭 | 来源:发表于2018-06-13 14:28 被阅读0次
文档状态 [ ] 草稿 [ ] 正式发布 [ √ ] 正在修改
文档版本号 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、无论是否匹配都会返回当前地面站版本所对应的最新固件推送给地面站,匹配关系存在会多一个忽略选项,如果不存在只会提供升级固件选项。

流程图

图片.png
四、版本回退
4.1)固件回退:

a、检查是否存在匹配关系,如果不存在需要进行建立
b、直接替换线上的固件版本

4.2)地面站回退:

a、优先在现有发布版本代码基础上进行修复,推送新版本更新/进行热修复
b、提供与当前版本号相同的低版本代码安装包下载地址

  • 因涉及到离线数据,如果地面站的数据库在新版本中有对表字段进行修改,在降级到低版本中将会出现不兼容问题,最稳妥的方法就是将所有当前版本将用到的表全部重建,即降级时扔掉以前全部的数据
  • 原则上不能出现版本回退操作,除非在万不得已情况下,将上一版本的的代码取出后,修改版本号高于当前发布版本的版本号,生成apk后供用户下载使用。

相关文章

  • 版本匹配

    更新日志: 一、目的 避免地面站与无人机固件出现版本不匹配,造成无法正常作业问题。 二、原则 1)非强制升级版本,...

  • 十分钟搞定mac下的phpstorm增加xdebug调试

    一、版本信息 xdebug 版本需要与php匹配,匹配地址 :点我匹配 点我查看所有版本 tips:不确定x...

  • NPM依赖包版本号~和^和*

    ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0^ 会匹配最新的大版本...

  • npm 依赖包版本号~和^的区别

    ~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^会匹配最新的大版本依...

  • package.json文件前缀的区别

    ~的意思是匹配最近的小版本 比如~1.2.3将会匹配所有的1.2.x版本,但不匹配1.3.0, 1.2.0 <= ...

  • package.json 版本符号含义

    ~ : 匹配最近的小本本依赖包,~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^: 匹配最新的大版本...

  • idea 填坑之路

    1、jdk与jetty有版本匹配的问题,如果版本不匹配会出现不能识别jsp的错误。 jdk1.8匹配的jett...

  • Mac安装mysql不显示密码

    看看下载的mysql版本是否匹配OS版本?不匹配的话,不显示密码,启动服务失败在这里选版本:https://dow...

  • npm引入包的说明

    NPM依赖包版本号~和^和*的区别 ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不...

  • linux安装rabbitMq

    1、安装erlang通过yum安装的版本不是最新的,rabbitMq 和erlang 是有版本匹配的,匹配地址ht...

网友评论

      本文标题:版本匹配

      本文链接:https://www.haomeiwen.com/subject/paadeftx.html