一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种差分升级方法、装置和作业机械与流程

2021-11-29 13:55:00 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种差分升级方法、装置和作业机械。


背景技术:

2.随着移动互联网的发展,越来越多的终端设备接入互联网,利用空中下载技术(over

the

air technology,ota)可以方便进行远程问题诊断,故障修复,软件升级,参数更新,远程命令控制,远程监控,远程数据采集等。现在工程机械领域的商用车电子设备越来越多,需要进行软件升级,利用ota技术可以极大的节省人力成本,提高升级效率,方便对设备进行批量管理。
3.目前大多终端设备采用的是嵌入式系统,不具备热更新的能力,ota差分升级使用的二进制差分升级,或者采用其他一些特殊的方式进行升级,如北斗通信等。
4.现有的差分升级技术,由于采用的是二进制差分升级方式,技术实施难度大;加之二进制固件不便于版本管理,二进制差分固件容易造成升级失败,且升级失败后不容易恢复。


技术实现要素:

5.本发明提供一种差分升级方法、装置和作业机械,用以解决现有技术中嵌入式系统ota升级所存在的缺陷,通过ota管理后台,能针对边缘网关中各插件进行批量升级。
6.第一方面,本发明提供一种差分升级方法,包括:根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
7.根据本发明提供的一种差分升级方法,在将所述差分升级包发送至所述目标边缘网关的过程中,若与所述目标边缘网关之间的通信连接中断,则停止向所述目标边缘网关发送所述差分升级包;在重新建立与所述目标边缘网关之间的通信连接之后,接收由所述目标边缘网关发送的已下载部分的长度及校验码信息;校验所述长度及校验码信息;在所述长度及校验码信息校验通过的情况下,继续向所述目标边缘网关发送未接收部分;在所述长度及校验码信息校验未通过的情况下,重新向所述目标边缘网关发送所述差分升级包。
8.根据本发明提供的一种差分升级方法,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包,包括:计算待升级插件的第一哈希校验值;分别对当前插件和待升级插件进行编码,生成所述当前插件编码和所述待升级插件编码;将所述当前插件编码与所述待升级插件编码进行比对,生成升级补丁包,并计算所述升级补丁包的第二哈希校验值;对所述第一哈希校验值、所述升级补丁包和所述第二哈希校验值进行压缩处理,生成所述差分升级包。
9.根据本发明提供的一种差分升级方法,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包之前,还包括:接收由目标边缘网关上传的网关信息;所述
网关信息包括当前插件的版本信息和所述目标边缘网关的设备编码;基于所述网关信息,确定待升级插件的版本信息;将所述网关信息和所述待升级插件的版本信息,发送至升级控制平台,以获取由所述升级控制平台反馈的确定配置指令。
10.根据本发明提供的一种差分升级方法,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包之前,还包括:接收由目标边缘网关上传的网关信息;所述网关信息包括当前插件的版本信息和目标边缘网关位置信息;接收由移动端上传的移动端位置信息;在根据所述目标边缘网关位置信息和所述移动端位置信息,确定所述移动端与所述目标边缘网关之间的距离小于预设距离的情况下,将所述当前插件的版本信息和待升级插件的版本信息,发送至所述移动端,以获取由所述移动端反馈的确定配置指令。
11.根据本发明提供的一种差分升级方法,在接收由目标边缘网关上传的网关信息之前,还包括:基于c 框架,构建所述目标边缘网关与硬件驱动相关的所有插件接口;为每个插件接口配置一个插件编码,并构建插件目录。
12.第二方面,本发明还提供另一种差分升级方法,包括:接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;根据所述差分升级包,对当前插件进行更新。
13.根据本发明提供的一种差分升级方法,所述根据所述差分升级包,对当前插件进行更新,包括:解压所述差分升级包,获取待升级插件的第一哈希校验值、升级补丁包和所述升级补丁包的第二哈希校验值;利用所述第二哈希校验值校验所述升级补丁包,在校验通过的情况下,对当前插件进行编码,生成当前插件编码;根据所述级补丁包和所述当前插件编码,生成待升级插件编码;对所述待升级插件编码进行解码,生成待升级插件;利用所述第一哈希校验值校验所述待升级插件,在校验通过的情况下,卸载所述当前插件,以加载所述待升级插件。
14.第三方面,本发明还提供一种差分升级装置,包括:处理单元,用于根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;发送单元,用于将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
15.第四方面,本发明还提供另一种差分升级装置,包括:接收单元,用于接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;更新单元,用于根据所述差分升级包,对当前插件进行更新。
16.第五方面,本发明还提供一种作业机械,在该作业机械上装设有上述差分升级装置。
17.第六方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述差分升级方法的步骤。
18.第七方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述差分升级方法的步骤。
19.本发明提供的差分升级方法、装置和作业机械,将设备边缘网关的功能模块进行细粒度划分,对其中的任一插件定义标准接口,使用动态链接库与差分技术相结合,同时利用ota升级服务端进行后台管理,能根据每个插件的当前编码和待升级编码,生成差分补丁
包,可以方便的对设备进行批量热更新,且有效地的节省了移动流量。
附图说明
20.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明提供的差分升级方法的流程示意图之一;
22.图2是本发明提供的差分升级方法的信令图;
23.图3是本发明提供的差分升级方法的流程示意图之二;
24.图4是本发明提供的差分升级装置的结构示意图之一;
25.图5是本发明提供的差分升级装置的结构示意图之二;
26.图6是本发明提供的电子设备的结构示意图。
具体实施方式
27.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
28.需要说明的是,在本发明实施例的描述中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
29.本技术的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
30.现有技术中的升级包有完整升级包与差分升级包之分。顾名思义,所谓完整升级包即包含终端设备整个系统分区中的数据文件;而差分升级包则仅包含两个版本之间改动的部分。利用完整升级包升级好比对电脑进行重作系统,需格式化系统分区,再将新系统数据写入分区;而利用差分升级包升级不需要格式化系统分区,只是对其中部分存储段的内容进行重写。
31.但是,现有的生成差分升级包对终端设备进行ota升级时,由于终端设备多采用的是嵌入式系统,不具备热更新的能力,加之大部分差分升级使用的二进制差分升级,导致技术实施难度大、升级失败率高、且存在升级失败后不容易恢复的弊端。
32.有鉴于此,本发明提供了一种新的差分升级方法、装置和作业机械。
33.下面结合图1

图6描述本发明所提供的差分升级方法、装置和作业机械。
34.图1是本发明提供的差分升级方法的流程示意图之一,如图1所示,包括但不限于以下步骤:
35.步骤101:升级服务端(以下称为ota服务端)根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;
36.步骤102:ota服务端将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
37.作为一种可选实施例,本发明提供了一种根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包的实施步骤:
38.1)设需要进行版本更新的边缘网关为目标边缘网关,该目标边缘网关的当前插件记为:a.so.1.0,利用待升级插件对当前插件进行更新,待升级插件记为a.so.2.0。
39.分别计算当前插件和待升级插件的哈希校验值,将待升级插件的哈希校验值(简称哈希值),保存在a.so.2.0.sig中。
40.2)由升级服务端(以下称作ota服务端)分别对当前插件a.so.1.0和待升级插件a.so.2.0进行编码:
41.每次读取8个字节,并计算一个crc8校验码附加在末尾,对所形成的9个字节进行依次base64编码,并在编码后加一个换行符。写入至一个文本文件中,直至读取整个当前插件a.so.1.0和待升级插件a.so.2.0,生成当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt。
42.需要说明的是,如果最后一次读取当前插件a.so.1.0和待升级插件a.so.2.0时不足8个字节,假设仅有5个字节,则计算这5个字节的crc8校验码并附加在末尾,然后再进行base64编码,并同样在编码后加一个换行符,写入至上述文本文件,生成当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt。
43.3)由ota服务端,使用在线代码比较工具,对生成的当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt进行比对,获取升级补丁包,记为:a.so.1.0_2.0.txt.patch。然后,计算升级补丁包a.so.1.0_2.0.txt.patch的哈希校验值(简称哈希值),记为a.so.1.0_2.0.txt.patch.sig。
44.4)由ota服务端,将升级补丁包a.so.1.0_2.0.txt.patch、待升级插件的哈希校验值a.so.2.0.sig以及升级补丁包的哈希校验值a.so.1.0_2.0.txt.patch.sig进行压缩,生成差分升级包a.so.patch.tar.gz。
45.需要说明的是,循环冗余检查(cyclic redundancy check,crc)是一种数据传输检错功能,可以对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。crc8校验码作为crc校验码的一种:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可为8字节。
46.base64是网络上最常见的用于传输8bit字节码的编码方式之一,base64就是一种
基于64个可打印字符来表示二进制数据的方法。base64编码是从二进制到字符的过程,可用于在http环境下传递较长的标识信息。采用base64编码具有不可读性,需要解码后才能阅读。
47.进一步地,可以ota服务端响应ota控制平台发送的确定配置指令,将生成的目标边缘网关的差分升级包a.so.patch.tar.gz发生至目标边缘网关。
48.目标边缘网关下载差分升级包a.so.patch.tar.gz,并对其进行解压,获取升级补丁包a.so.1.0_2.0.txt.patch、待升级插件的哈希校验值a.so.2.0.sig以及升级补丁包的哈希校验值a.so.1.0_2.0.txt.patch.sig。
49.利用升级补丁包的哈希校验值a.so.1.0_2.0.txt.patch.sig对升级补丁包a.so.1.0_2.0.txt.patch进行校验,以判断在传输的过程中,是否发生数据的异常,确保升级补丁包a.so.1.0_2.0.txt.patch在发送前后的一致性。
50.在上述验证通过的情况下,通过使用patch命令,将升级补丁包a.so.1.0_2.0.txt.patch与当前插件编码a.so.2.0.txta.so.1.0.txt,进行融合,获取到新生成的待升级插件编码a.so.2.0.txt。
51.使用base64解码对待升级插件编码a.so.2.0.txt进行解码,包括逐字读取a.so.2.0.txt,并去掉换行符后进行解码,获取待升级插件a.so.2.0。然后,根据crc8校验码,根据待升级插件的哈希校验值a.so.2.0.sig判断在数据传输过程中,待升级插件a.so.2.0是否发生数据异常。
52.在确定crc8校验的结果正常的情况下,边缘网关卸载当前插件a.so.1.0,重新加载待升级插件a.so.2.0,完成对于目标边缘网关的当前插件的热更新。
53.本发明提供的差分升级方法,将设备边缘网关的功能模块进行细粒度划分,对其中的任一插件定义标准接口,使用动态链接库与差分技术相结合,同时利用ota升级服务端进行后台管理,能根据每个插件的当前编码和待升级编码,生成差分补丁包,可以方便的对设备进行批量热更新,且有效地的节省了移动流量。
54.基于上述实施例的内容,作为一种可选实施例,在将所述差分升级包发送至所述目标边缘网关的过程中,若与所述目标边缘网关之间的通信连接中断,则停止向所述目标边缘网关发送所述差分升级包;
55.在重新建立与所述目标边缘网关之间的通信连接之后,接收由所述目标边缘网关发送的已下载部分的长度及校验码信息;
56.校验所述长度及校验码信息;
57.在所述长度及校验码信息校验通过的情况下,继续向所述目标边缘网关发送未接收部分;
58.在所述长度及校验码信息校验未通过的情况下,重新向所述目标边缘网关发送所述差分升级包。
59.图2是本发明提供的差分升级方法的信令图,如图2所示,在本发明所提供的差分升级方法中,在边缘网关从ota服务端下载差分升级包的过程中,使用消息队列遥测传输(message queuing telemetry transport,mqtt),并基于安全套接字协议(secure sockets layer,ssl)或传输层安全协议(transport layer security,tls)传输,能够有效地支持断点续传,提升在移动信号不稳定时的升级效率,节省移动流量。
60.作为一种可选实施例,本发明提供一种差分升级包下载的方法,包括:
61.1)将目标边缘网关中待更新插件的插件版本信息和基本信息发送至ota服务端。其中,基本信息可以包括以下信息中的至少一项:当前插件的适用范围、边缘网关的设备编码、当前gps坐标,ecu版本、仪表版本、车辆vin码等。
62.2)ota服务端在接收到待更新插件的插件版本信息和基本信息之后,边缘网关的设备编码、当前gps坐标、ecu版本、仪表版本,车辆vin码等进行待升级插件过滤,确定待升级插件版本。
63.3)ota服务端根据待升级插件版本,配置待升级插件,并根据待升级插件与当前插件,生成相应的差分升级包。
64.4)边缘网关通过mqtt ssl/tls协议下载差分升级包。其中,mqtt是iso标准(iso/iec prf 20922)下基于发布/订阅范式的消息协议。它工作在tcp/ip协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。
65.ssl或tls是为网络通信提供安全及数据完整性的一种安全协议。tls与ssl在传输层与应用层之间对网络连接进行加密。
66.可选地,在此下载的过程中,边缘网关还可以通过mqtt ssl/tls协议上传升级进度。
67.在移动互联网信号不稳定的情况,若ota服务端与目标边缘网关之间的通信连接中断,ota服务端则停止继续发送差分升级包。
68.边缘网关在信号恢复时,重新建立与ota服务端的无线通信连接,并第一时间将已下载部分的长度及校验码信息(例如crc32校验码)发送给ota服务端。
69.ota服务端根据crc32校验码可以验证已下载部分的数据是否正确。在确定已下载部分的数据正常的情况下(即长度及校验码信息校验通过),则从已下载部分开始,继续向边缘网关发送未接收部分,直至完成整个差分升级包的发送工作。
70.另外,若长度及校验码信息校验不通过,则说明已下载部分的数据出现了异常,此时由ota服务端向目标边缘网关重新发送所述差分升级包。
71.差分升级包下载完毕后,目标边缘网关开始校验差分升级包,并在校验通过的情况下,利用差分升级包中的待升级插件对当前插件进行更新,或者卸载当前插件并重新装载待升级插件。
72.需要说明的是,在本发明提供的差分升级方法中,固件传输协议包括边缘网关与ota服务器之间,ota服务器与移动端之间,或者ota服务器与ota控制台之间,可以根据实际通信需要使用用户数据报协议(user datagram protocol,udp)、传输控制协议(transmission control protocol,tcp)、或者超文本传输安全协议(hyper text transfer protocol over securesocket layer,https)等各种协议,实现断点续传。
73.本发明提供的差分升级方法,差分固件使用mqtt ssl/tsl传输,支持断点续传,提升在移动信号不稳定时的升级效率,节省移动流量。
74.基于上述实施例的内容,作为一种可选实施例,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包,包括:
75.计算待升级插件的第一哈希校验值;
76.分别对当前插件和待升级插件进行编码,生成所述当前插件编码和所述待升级插
件编码;
77.将所述当前插件编码与所述待升级插件编码进行比对,生成升级补丁包,并计算所述升级补丁包的第二哈希校验值;
78.对所述第一哈希校验值、所述升级补丁包和所述第二哈希校验值进行压缩处理,生成所述差分升级包。
79.可选地,在发明提供的差分升级方法中,ota服务器在接收到目标边缘网关上传的当前插件的版本和基本信息之后,
80.在生成差分升级包时,由ota服务端计算待升级插件的hash校验值,称作第一哈希校验值,并将结果保存至a.so.2.0.sig中。
81.ota服务端对当前插件a.so.1.0和待升级插件a.so.2.0分别重新编码,生成当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt,其编码方式可以采用上述实施例中所述的方法,在此不作赘述。
82.进一步地,可以使用在线代码比较工具(例如diff工具),将当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt进行比对,生成升级补丁包,并计算该升级补丁包的hash校验值,记为第二哈希校验值。
83.最后,将第一哈希校验值、所述升级补丁包和所述第二哈希校验值进行压缩处理,生成所述差分升级包。
84.另外,在本发明提供的差分升级方法,上述差分升级包的生成可以采用二进制差分方法来生成。
85.本发明提供的差分升级方法,结合哈希校验的方法制作生成差分升级包,不仅对升级补丁包a.so.1.0_2.0.txt.patch进行哈希校验,同时还通过crc8校验码对边缘网关接收到的待升级插件a.so.2.0进行二次校验,能充分保证更新数据的安全性。
86.结合图2所示,本发明提供的差分升级方法,不仅可以实现由ota控制平台后台支持对边缘网关进行批量更新,还能够支持移动端手动升级,方便对边缘网关设备进行现场管理。
87.基于上述实施例的内容,作为一种可选实施例,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包之前,还包括:
88.接收由目标边缘网关上传的网关信息;所述网关信息包括当前插件的版本信息和所述目标边缘网关的设备编码;
89.基于所述网关信息,确定待升级插件的版本信息;
90.将所述网关信息和所述待升级插件的版本信息,发送至升级控制平台,以获取由所述升级控制平台反馈的确定配置指令。
91.在利用ota控制平台对边缘网关进行批量更新管理的过程中,ota服务端推送差分升级包,并实现升级流程为:
92.1)边缘网关采集待更新插件的插件版本信息;
93.2)目标边缘网关将待更新插件的版本信息、当前插件的适用范围、边缘网关的设备编码、当前gps坐标,ecu版本、仪表版本、车辆vin码等至少一种信息,上传给ota服务端。
94.3)ota服务端配置边缘网关待升级插件版本,包括:ota服务端根据边缘网关的设备编码、ecu版本,仪表版本、车辆vin码等信息过滤所有待升级插件版本,并从中筛选出符
合目标边缘网关的待升级插件编码。
95.4)ota服务端将当前插件的版本信息和待升级插件的版本信息,一起发送至升级控制平台(以下称为ota控制平台),以由ota控制平台判断能否利用待升级插件对当前插件进行更新。
96.若判断结果是能够进行更新,则由ota控制平台反馈确定配置指令给ota服务端。
97.5)ota服务端根据当前插件和待升级插件,按照上述实施例中所述方法生成差分升级包,并发送给目标边缘网关。
98.6)目标边缘网关下载差分升级包之后,开始校验差分升级包。
99.7)在校验通过的情况下,卸载当前插件,重新加载待升级插件。
100.本发明提供的差分升级方法,利用ota控制平台后台对各边缘网关的升级进行统一管理,并可以在ota控制平台中创建详细的升级日志,方便进行版本回退和故障分析。
101.基于上述实施例的内容,作为一种可选实施例,在根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包之前,还包括:
102.接收由目标边缘网关上传的网关信息;所述网关信息包括当前插件的版本信息和目标边缘网关位置信息;
103.接收由移动端上传的移动端位置信息;
104.在根据所述目标边缘网关位置信息和所述移动端位置信息,确定所述移动端与所述目标边缘网关之间的距离小于预设距离的情况下,将所述当前插件的版本信息和待升级插件的版本信息,发送至所述移动端,以获取由所述移动端反馈的确定配置指令。
105.其中,上述移动端可以是手机、计算机、工控机或者其他能执行存储以及运算能力的电子设备。
106.在利用移动端对边缘网关进行更新管理的过程中,ota服务端推送差分升级包,并实现升级流程为:
107.1)边缘网关采集待更新插件的插件版本信息;
108.2)目标边缘网关将待更新插件的版本信息、当前插件的适用范围、边缘网关的设备编码、当前gps坐标,ecu版本、仪表版本、车辆vin码等至少一种信息,上传给ota服务端。
109.3)ota服务端配置边缘网关待升级插件的版本,包括:ota服务端根据边缘网关的设备编码、ecu版本,仪表版本、车辆vin码等信息过滤所有待升级插件版本,并从中筛选出符合目标边缘网关的待升级插件编码。
110.4)首先,由ota服务端配置目标边缘网关待升级插件版本,例如:ota服务端根据所有边缘网关的位置信息(如gps坐标)和移动端位置信息(如gps坐标),将移动端的gps坐标附近500m内的边缘网关作为目标边缘网关,并将待升级插件的版本信息和目标边缘网关的当前插件的版本信息,一起推送到移动端。
111.移动端根据接收到目标边缘网关的当前插件的版本信息和待升级插件的版本信息,判断能否利用待升级插件对当前插件进行更新。
112.若判断结果是能够进行更新,则由移动端反馈确定配置指令给ota服务端。
113.5)在接收到确定配置指令之后,ota服务端根据当前插件和待升级插件,按照上述实施例中所述方法生成差分升级包,并发送给目标边缘网关。
114.6)目标边缘网关下载差分升级包之后,开始校验差分升级包。
115.7)在校验通过的情况下,卸载当前插件,重新加载待升级插件。
116.本发明提供的差分升级方法,能够支持移动端对终端设备的升级进行管控,方便在现场进行终端设备的维护和管理;同时将后台自动升级管理与移动端的人工管理相结合,能够满足了不同场景下的升级需求。
117.基于上述实施例的内容,作为一种可选实施例,在接收由目标边缘网关上传的网关信息之前,还包括:基于c 框架,构建所述目标边缘网关与硬件驱动相关的所有插件接口;为每个插件接口配置一个插件编码,并构建插件目录;所述插件编码是对所述网关信息进行二进制编码后生成的。
118.具体来说,本发明在对目标边缘网关进行差分升级之前,对其功能模块进行细粒度话,即将功能模块划分细一点,插件小一些,这样在后续生成的差分升级时升级包也会更小一些。
119.作为一种可选实施例,在本发明提供的差分升级方法中,预先进行边缘网关的程序框架设计,包括:
120.1)使用c 框架实现windows、linux和/或android动态加载/卸载插件的标准化的插件接口的构建。
121.2)定义每个标准化的插件接口,将整个终端设备待升级的模块进行细粒度划分,例如:针对每个控制器局域网络编码(controller area network identity document,can id)的解析,使用一个插件来实现,即通过插件的方式实现每个功能模块的接口解析。
122.在此基础上,在终端设备的程序运行起来后,扫描指定插件目录(plugin),加载插件后,调用预先设定的插件接口把插件注册到map,每一个类别的插件定义一个map对象,以保存插件接口。调度程序则可以根据接收到的消息使用队列进行缓存,根据消息类型使用不同插件进行处理。
123.需要说明的是,目标边缘网关上传的网关信息包括各插件相关的版本信息、功能描述信息以及设备编码等信息。
124.本发明所提供的差分升级方法,将边缘网关的功能模块划分粒度细点,定义标准接口,使用动态链接库(插件技术)实现对边缘网关的细粒度升级,再通过差分技术,针对边缘网关中不同插件的升级需求生成相应的差分升级包,针对不需要进行版本更新的插件则不会生成差分升级包,为实现热更新提供了基础,且可以有效地节省升级时的移动流量。
125.图3是本发明提供的差分升级方法的流程示意图之二,如图2所示,主要包括但不限于以下步骤:
126.步骤301,目标边缘网关接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;
127.步骤302,目标边缘网关根据所述差分升级包,对当前插件进行更新。
128.结合图2所示,本发明提供差分升级方法主要包括以下实施步骤:
129.1)将目标边缘网关的当前插件记为:a.so.1.0,将待升级插件记为a.so.2.0。分别计算当前插件和待升级插件的哈希校验值,并将待升级插件的哈希校验值(简称哈希值)保存在a.so.2.0.sig中。
130.2)ota服务端分别对当前插件a.so.1.0和待升级插件a.so.2.0进行编码,生成当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt。
131.3)ota服务端,对生成的当前插件编码a.so.1.0.txt和待升级插件编码a.so.2.0.txt进行比对,生成升级补丁包:a.so.1.0_2.0.txt.patch。并计算升级补丁包a.so.1.0_2.0.txt.patch的哈希校验值a.so.1.0_2.0.txt.patch.sig。
132.4)由ota服务端,将升级补丁包a.so.1.0_2.0.txt.patch、待升级插件的哈希校验值a.so.2.0.sig以及升级补丁包的哈希校验值a.so.1.0_2.0.txt.patch.sig进行压缩,生成差分升级包a.so.patch.tar.gz。
133.进一步地,ota服务端响应ota控制平台发送的确定配置指令,将生成的目标边缘网关的差分升级包a.so.patch.tar.gz发生至目标边缘网关。
134.目标边缘网关下载差分升级包a.so.patch.tar.gz,并对其进行解压,获取升级补丁包a.so.1.0_2.0.txt.patch、待升级插件的哈希校验值a.so.2.0.sig以及升级补丁包的哈希校验值a.so.1.0_2.0.txt.patch.sig。
135.目标边缘网关将升级补丁包a.so.1.0_2.0.txt.patch与当前插件编码a.so.2.0.txta.so.1.0.txt,进行融合,获取到新生成的待升级插件编码a.so.2.0.txt。
136.目标边缘网关对待升级插件编码a.so.2.0.txt进行解码,获取待升级插件a.so.2.0。
137.目标边缘网关卸载当前插件a.so.1.0,重新加载待升级插件a.so.2.0,完成对于目标边缘网关的当前插件的热更新。
138.本发明提供的差分升级方法,将设备边缘网关的功能模块进行细粒度划分,对其中的任一插件定义标准接口,使用动态链接库与差分技术相结合,同时利用ota升级服务端进行后台管理,能根据每个插件的当前编码和待升级编码,生成差分补丁包,可以方便的对设备进行批量热更新,且有效地的节省了移动流量。
139.基于上述实施例的内容,作为一种可选实施例,所述根据所述差分升级包,对当前插件进行更新,包括:
140.解压所述差分升级包,获取待升级插件的第一哈希校验值、升级补丁包和所述升级补丁包的第二哈希校验值;
141.利用所述第二哈希校验值校验所述升级补丁包,在校验通过的情况下,对当前插件进行编码,生成当前插件编码;
142.根据所述级补丁包和所述当前插件编码,生成待升级插件编码;
143.对所述待升级插件编码进行解码,生成待升级插件;
144.利用所述第一哈希校验值校验所述待升级插件,在校验通过的情况下,卸载所述当前插件,以加载所述待升级插件。
145.可选地,目标边缘网关利用升级补丁包的第二哈希校验值a.so.1.0_2.0.txt.patch.sig对升级补丁包a.so.1.0_2.0.txt.patch进行校验,以判断在传输的过程中,是否发生数据的异常,确保升级补丁包a.so.1.0_2.0.txt.patch在发送前后的一致性。
146.在上述验证通过的情况下,通过使用patch命令,将升级补丁包a.so.1.0_2.0.txt.patch与当前插件编码a.so.2.0.txta.so.1.0.txt,进行融合,获取到新生成的待升级插件编码a.so.2.0.txt。
147.使用base64解码对待升级插件编码a.so.2.0.txt进行解码,包括逐字读取
a.so.2.0.txt,并去掉换行符后进行解码,获取待升级插件a.so.2.0。然后,根据crc8校验码,根据待升级插件的第一哈希校验值a.so.2.0.sig判断在数据传输过程中,待升级插件a.so.2.0是否发生数据异常。
148.在确定crc8校验的结果正常的情况下,目标边缘网关卸载当前插件a.so.1.0,重新加载待升级插件a.so.2.0,完成对于目标边缘网关的当前插件的热更新。
149.本发明提供的差分升级方法,结合哈希校验的方法制作生成差分升级包,不仅对升级补丁包a.so.1.0_2.0.txt.patch进行哈希校验,同时还通过crc8校验码对边缘网关接收到的待升级插件a.so.2.0进行二次校验,能充分保证更新数据的安全性。
150.图4是本发明提供的差分升级装置的结构示意图之一,如图4所示,主要包括处理单元41和发送单元42,其中:
151.处理单元41主要用于根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;
152.发送单元42主要用于将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
153.图5是本发明提供的差分升级装置的结构示意图之二,如图5所示,主要包括接收单元51和更新单元52,其中:
154.接收单元51主要用于接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;
155.更新单元52主要用于根据所述差分升级包,对当前插件进行更新。
156.需要说明的是,本发明实施例提供的差分升级装置,在具体运行时,可以执行上述任一实施例所述的差分升级方法,对此本实施例不作赘述。
157.本发明提供的差分升级装置,将设备边缘网关的功能模块进行细粒度划分,对其中的任一插件定义标准接口,使用动态链接库与差分技术相结合,同时利用ota升级服务端进行后台管理,能根据每个插件的当前编码和待升级编码,生成差分补丁包,可以方便的对设备进行批量热更新,且有效地的节省了移动流量。
158.作为一种可选实施例,本发明还提供一种作业机械,在该作业机械上装设有上述任一实施例中所提供的差分升级装置。
159.其中,作业机械可以是挖掘机、铲车、轧路机等各种作业车辆,也可以是各种需要定期进行ota升级的作业设备,对此本声明不作具体的限定,
160.本发明提供的作业机械,通过增设差分升级装置,以实现将设备边缘网关的功能模块进行细粒度划分,对其中的任一插件定义标准接口,使用动态链接库与差分技术相结合,同时利用ota升级服务端进行后台管理,能根据每个插件的当前编码和待升级编码,生成差分补丁包,可以方便的对设备进行批量热更新,且有效地的节省了移动流量。
161.图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(communications interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行差分升级方法,该方法包括:根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更
新。
162.或者,该方法包括:接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;根据所述差分升级包,对当前插件进行更新。
163.此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
164.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的差分升级方法,该方法包括:根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
165.或者,该方法包括:接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;根据所述差分升级包,对当前插件进行更新。
166.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的差分升级方法,该方法包括:根据目标边缘网关的当前插件编码与待升级插件编码,生成差分升级包;将所述差分升级包发送至所述目标边缘网关,以供所述目标边缘网关根据所述差分升级包对当前插件进行更新。
167.或者,该方法包括:接收由升级服务端发送的差分升级包,所述差分升级包是根据当前插件编码与待升级插件编码确定的;根据所述差分升级包,对当前插件进行更新。
168.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
169.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
170.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可
以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献