你听说过OTA吗?
以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「englyf」https://mp.weixin.qq.com/s/M660Sc4ey1SxCpRT6vcM9g
what?
不知有多少朋友玩过或者接触过新能源车,虽然新能源囊括的范围很广,不过这里指的新能源车特指电动汽车,比如特斯拉等车企生产的电动车。
特斯拉车主应该对车载软件的自动更新功能很熟悉了,特斯拉会不定期通过wifi或者蜂窝网络(比如4G、5G信号网),向车主推送最新的车载软件升级包,里边既可能包含有新功能的添加,也可能包括有对现有功能的完善补丁,这里所用的技术就是OTA。
OTA, 英文全称Over-the-air,直译成中文就是无线升级的意思。OTA执行过程,是不需要设备生产厂家或者专业人士携带专用工具对目标产品执行软件更新的。需要的条件是,让设备接入网络,自动接收软件更新包后,在设备所有者的同意下执行升级操作。
好了,这就是所谓的OTA。
why ?
以往的电子产品,从设计阶段就会把整个产品的功能安排得明明白白,虽然也会预留OTA的升级功能,不过,仅是为了修补已有软件漏洞。
但是埃隆·马斯克就把互联网的产品思维引入汽车行业,不断开发迭代新软件功能,比如特斯拉一再宣称领先于同行的自动驾驶导航算法就不断地推出升级版本,甚至还有车载游戏推出,然后通过OTA的方式推送给特斯拉的客户。
以前的汽车,消费者更愿意把它当作出行工具,可能一买就是十年八载的事了。而现在的智能汽车除了不失出行的功能,更像是一件不断迭代变化的电子玩物工作站,随着新功能的不断推送,于是消费者更愿意提高消费频率为新功能埋单。
马斯克的造车思维开启了现代智能汽车时代,也对特斯拉的成就功不可没。这里边用到的OTA的技术就是必要的桥梁了。
how ?
好了,上面都是在费口水,下面把电动车换成扫地机,就以扫地机器人为例,让我们来探讨一下怎么玩OTA升级。
推送的更新包从哪来?
设备维护厂家负责跟踪对外已销售的产品质量反馈,及时收集客户的诉求,然后组织项目团队评估可行性和细节,再给研发团队制定目标并及时输出软件更新包,最后厂家还要负责把更新包发布到云端,并指定更新策略。
怎样开始推送呢?
假设扫地机器人已经和云端绑定上,云端查询后台推送开关已打开则通过网络通知APP--设备有软件更新包可用,然后APP提示客户是否需要此次更新。一旦同意,APP则请求云端把更新包的下载链接发送给设备,接着设备进入下载软件更新包的流程,下载完成后再执行升级的具体操作。
升级过程在做什么?
扫地机主机的升级
机器人从云端接收完软件更新包后,更新包暂存在内存中。为了避免升级过程中出现电量供应不足而中途关机的尴尬,升级开始之前,需要对机器的电量状态或者是否正在充电中进行自检,根据自检状态判断机器当前是否适合开始执行升级动作。
自检通过后,先对更新包文件做校验,以确保文件没有损坏或者被插入恶意文件信息,然后备份更新包文件(备份包的用处稍后解释),解压更新包提取里边的各个软件资源,逐一执行升级,同时每完成一步操作需要向云端报告进度,直到最后所有解压所得的资源都被升级利用完毕。
如果其中任何一步出错需要中止升级流程,机器人都需要向云端报告状态,由云端提示APP结束OTA升级流程。升级完成后,所有软件都需重启,所有重启完成后需向云端报告软件当前的新版本号,APP再根据新版本号判断升级目标是否达成。无论升级是否成功,机器人都需要在最后把已备份的更新包从机器内部清理掉,以清除未升级结束的标志。
如果升级过程中途断电了,那么重启后,可以依据备份的更新包文件是否存在来判断是否需要重新进入升级流程。
基站的升级
最近主流的扫地机都已经进化到配备有清洗基站了,何为清洗基站?
这个基站的工作目标是为了给扫地机器人自动清理尘盒和拖布等污损组件,尽量做到避免购买扫地机的消费者介入扫地机的清扫工作过程中,减轻消费者的不必要负担,进一步满足消费者的舒适需求。
以往的扫地机给普通消费者的体验就是,工作过程中,需要人工不断介入,帮助清理机器的污损组件,否则机器就不能好好连续工作。为了解决这些痛点,基站的诞生和功能迭代就势不可挡了。
鉴于主机已经带有wifi模组可以和云端直接通信,而且与云端正常通信之前必须经过绑定的过程,为了简化功能设计,基站其实可以通过主机和云端通信,所以没有必要在基站也配置wifi模组了。
那么,主机(扫地机器人主体)怎么和基站协同工作呢?它们之间靠什么来互通有无呢?
目前行业内的基站通信方案绝大部分都采用433的无线通信协议与扫地机主机通信,但是433的通信丢包率实际上是很高的,导致在OTA升级这种高要求的使用场景下,通信环节要格外关注通信质量的问题,因此应用层通信协议必须包含容错的重发机制。
你听说过OTA吗?的更多相关文章
- 商业研究(20):滴滴出行,进军海外包车?与OTA携程和包车创业公司,共演“三国杀”?看看分析师、投资人和权威人士等10个人的观点碰撞
小雷友情提示:创业有风险,投资需谨慎. 前一篇文章,在探讨境外游创业公司-皇包车和易途8的时候,提到"滴滴如果进军海外包车,为海外华人提供打车和包车服务,有较大可能对海外包车公司 ...
- 我听说 C...
我听说在 c 语言的世界里,goto 和异常处理都是声名狼藉的东西,而我认为它们在一起就能化解各自的问题.
- 听说你们要开始学C了
同学们好: 先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德 ...
- 使用HTTPS网站搭建iOS应用内测网站(OTA分发iOS应用)
为什么要搭建应用内测网站呢? 1.AppStore的审核速度比较慢,万一被拒,还得等,而且一旦发布,任何人都可以下载,而有些时候只有老板想知道最新的修改是否符合要求,万一不符合要求呢?又要修改了. 2 ...
- [No000014]听说不背单词,考英语会是这种下场-我们为什么必须背单词?
由于英语对于一个程序员来说,重要性你懂得.因此我会开始逐渐在博客上加入英语的一些东西. 听说不背单词,考英语会是这种下场 在中国, 「学英语」大抵遵循着这样一条 罗蒙诺索夫质量守恒定律 因为英语学着学 ...
- 听说你会打地鼠(动态规划dp)
题目来源:https://biancheng.love/contest-ng/index.html#/41/problems G 听说你会打地鼠 时间限制:300ms 内存限制:65536kb 题 ...
- OTA(空中下载技术)
选自:http://baike.baidu.com/link?url=bKOx4Gcgefi17Zt09pRA6zI-p7zzKVkoN07khRVTPfUtqyRMzdG5xURfpnp3wSP_A ...
- Android OTA 升级之三:生成recovery.img
Android OTA 升级之三:生成recovery.img 作者: 宋立新 Email:zjujoe@yahoo.com 前言 得到了ota升级包后,我们就可以用它来升级系统了.Android 手 ...
- ALM/QC OTA Field in Database(查询ALM数据库的字段)
在使用ALM的OTA接口编写脚本的时候,通常会需要知道各个选项在数据库中对应的字段,才能通过脚本读取或写入数据.比如要获取test case的step内容,要在测试结束时将测试实际结果写回test s ...
- ALM11 OTA API接口的问题
ALM11 在安装的时候好像不会自动加载OTA接口. 正常情况下, OTA的接口文件的路径为: C:\Program Files\Common Files\Mercury Interactive\Qu ...
随机推荐
- Oracle_FDW 使用介绍
本文以例子的形式介绍 KingbaseES(Postgresql)数据库如何通过 oracle_fdw 扩展访问Oracle数据库.以下例子在PG12.3 与 KingbaseES V8R6进行过实际 ...
- 【读书笔记】C#高级编程 第二十五章 事务处理
(一)简介 事务的主要特征是,任务要么全部完成,要么都不完成. (二)概述 事务由事务管理器来管理和协调.每个影响事务结果的资源都由一个资源管理器来管理.事务管理器与资源管理器通信,以定义事务的结果. ...
- 阿里云Centos7部署私人CSGO服务器
大四毕业生,论文和答辩分别以1.8%的重复率和只答不辨的态度双双过关.现在就是在家等着学校发毕业证了.顺带学学驾驶...可是我这么一个喜欢折腾的人,怎么能够让自己接受这么无聊的咸鱼时光呢?因为这个寒假 ...
- IEEE浮点数向偶数舍
CSAPP 向偶数舍入初看上去好像是个相当随意的目标--有什么理由偏向取偶数呢?为什么不始终把位于两个可表示的值中间的值都向上舍入呢?使用这种方法的一个问题就是很容易假想到这样的情景:这种方法舍入 ...
- 日志收集工具 Fluentd 使用教程
转载自:https://mp.weixin.qq.com/s?__biz=MzU4MjQ0MTU4Ng==&mid=2247499829&idx=1&sn=1f92daa88d ...
- 2_爬豆瓣电影_ajax动态加载
爬豆瓣 什么是 AJAX ? AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = Asynchronous JavaScript and XML(AJAX = 异步 ...
- 云数据库技术|“重磅升级”后再测 TDSQL-C
来源:云数据库技术 标题 1.摘要 前段时间,测试了国内主要云原生数据库 PolarDB.TDSQL-C.GaussDB 的性能,参考:<再测云原生数据库性能>.在上次测试结果中,由于地域 ...
- 「国产系统」Tubian 0.2,兼容Windows和Android的GNU/Linux系统!
0.3版已发布:https://www.cnblogs.com/tubentubentu/p/16733005.html Sourceforge.net主页(提供下载):https://sourcef ...
- Spring Ioc容器xml配置
Spring Ioc容器xml配置基本结构: <?xml version="1.0" encoding="UTF-8"?> <beans xm ...
- 2022-08-25-cdn套中套
layout: post cid: 19 title: cdn套中套 slug: 19 date: 2022/08/25 20:32:00 updated: 2022/08/26 11:20:20 s ...