掌桥专利:专业的专利平台
掌桥专利
首页

一种换电柜程序升级方法、装置、计算机设备及存储介质

文献发布时间:2024-04-18 19:58:26


一种换电柜程序升级方法、装置、计算机设备及存储介质

技术领域

本发明涉及换电柜技术领域,尤其涉及一种换电柜程序升级方法、装置、计算机设备及存储介质。

背景技术

随着新能源的快速发展,针对电池充电安全的换电柜安装部署也越来越多。然而,换电柜在实际运行中,经常会碰到客户需求的变更以及软件逻辑纠正等一系列问题需要处理。由于换电柜大多都是安装部署在户外且位置相对分散的地方,如果说每一次变更,需要安排运维人员现场完成升级处理,就会造成巨大的运维成本浪费。

目前普遍关于换电柜程序的更新都是基于移动网络的远程更新。然而,随着人们对换电柜功能的需求越来越丰富,审美度的越来越高,间接造成换电柜逻辑处理的固件体积越来越大,资源占用越来越多,导致了固件体积越大在更新时,网络下载传输变慢,硬件存储资源占用多,升级效率就越低,同时还会造成过高的数据流量费。

发明内容

本发明实施例的目的在于提出一种换电柜程序升级方法、装置、计算机设备及存储介质,以解决现有的换电柜在更新时,网络下载传输慢,硬件存储资源占用多,升级效率低,以及造成使用的流量费过高的问题。

为了解决上述技术问题,本发明实施例提供一种换电柜程序升级方法,采用了如下的技术方案:

接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件,所述压缩包文件包括待升级固件的版本信息和MD5值;

从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件,所述新版本固件包括新版本信息和新MD5值;

基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件;

运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。

进一步的,所述接收上位机下发的待升级固件更新请求的步骤之前,还包括步骤:

获取待升级固件,上位机运行bsdiff工具,将所述待升级固件与换电柜的当前版本固件进行二进制差异对比,生成差异补丁文件。

进一步的,所述差异补丁文件的生成步骤包括:

利用bsdiff工具匹配所述待升级固件与当前版本固件之间的最长相同字符串;

对每一字符串中相同的部位进行标识,得到所述待升级固件与当前版本固件的差异字符位置信息,生成包含差异字符位置信息和已知字符串信息的二进制文件;

压缩二进制文件得到差异补丁文件。

进一步的,所述获取待升级固件时,先利用MD5算法校验待升级固件的MD5值,若校验通过则可获取,若校验不通过则生成MD5值校验异常信息并反馈给上位机。

进一步的,所述监测所述新版本固件运行的各项参数有异常,及比对新版本信息与待升级固件的版本信息不完全一致,则提示升级失败,生成所述新版本固件的异常信息反馈给上位机,并退出升级反回当前版本固件的运行。

为了解决上述技术问题,本发明实施例还提供一种换电柜程序升级装置,包括:

下载模块,用于接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件,所述压缩包文件包括待升级固件的版本信息和MD5值;

合并模块,用于从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件,所述新版本固件包括新版本信息和新MD5值;

校验模块,用于基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件;

监测模块,用于运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。

进一步的,其特征在于,所述接收上位机下发的待升级固件更新请求之前,还包括:

差异模块,用于获取待升级固件,上位机运行bsdiff工具,将所述待升级固件与换电柜的当前版本固件进行二进制差异对比,生成差异补丁文件。

进一步的,其特征在于,所述差异补丁文件的生成包括:

利用bsdiff工具匹配所述待升级固件与当前版本固件之间的最长相同字符串;

对每一字符串中相同的部位进行标识,得到所述待升级固件与当前版本固件的差异字符位置信息,生成包含差异字符位置信息和已知字符串信息的二进制文件;

压缩二进制文件得到差异补丁文件。

为了解决上述技术问题,本发明实施例还提供一种计算机设备,采用了如下所述的技术方案:

包括存储器和处理器,所述存储器中存储有程序升级可读指令,所述处理器执行所述程序升级可读指令时实现如上任一项所述的换电柜程序升级方法的步骤。

为了解决上述技术问题,本发明实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

所述计算机可读存储介质上存储有程序升级可读指令,所述程序升级可读指令被处理器执行时实现如上任一项所述的换电柜程序升级方法的步骤。

本发明提供了一种换电柜程序升级方法,通过接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件;从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件;基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件;运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。与现有技术相比具有在换电柜程序固件更新方面具有占用资源少,网络下载传输量少,升级效率高,消耗流量低的显著效果。

附图说明

为了更清楚地说明本发明中的方案,下面将对本发明实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明可以应用于其中的示例性系统架构图;

图2是本发明换电柜程序升级方法的较佳实施例流程图;

图3是本发明换电柜程序升级装置的结构示意图;

图4是本发明计算机设备的的较佳实施例示意图。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明;本发明的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本发明的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

为了使本技术领域的人员更好地理解本发明方案,下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。

如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101通过网络102与服务器103交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

服务器103可以是提供各种服务的服务器,例如对终端设备101上显示的页面提供支持的后台服务器。

需要说明的是,本发明实施例所提供的换电柜程序升级方法一般由服务器/终端设备执行,相应地,应用于换电柜程序升级装置一般设置于服务器/终端设备中。

应该理解,图1中的终端设备101、网络102和服务器103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

继续参考图2,示出了根据本发明的换电柜程序升级方法的较佳实施例流程图。所述的换电柜程序升级方法,包括:步骤S0、步骤S1、步骤S2、步骤S3和步骤S4。

在步骤S0中,获取待升级固件,上位机运行bsdiff工具,将所述待升级固件与换电柜的当前版本固件进行二进制差异对比,生成差异补丁文件。

在本发明实施例中,待升级固件是事先做好的,在下发待升级固件前,上位机需要先进行差异处理,其中,bsdiff是用来做差异的工具,例如,二进制差异对比法将新文件A和备份文件B进行从头到尾的对比,如遇到不同的地方就标记后放在C文件里,这个C文件称为差异补丁文件。

进一步的,所述差异补丁文件的生成步骤包括:

利用bsdiff工具匹配所述待升级固件与当前版本固件之间的最长相同字符串;

对每一字符串中相同的部位进行标识,得到所述待升级固件与当前版本固件的差异字符位置信息,生成包含差异字符位置信息和已知字符串信息的二进制文件;

压缩二进制文件得到差异补丁文件。

在本发明实施例中,bsdiff工具的算法是通过匹配最长相同字符串,对相同的部分用0代替,最后再用常规的压缩算法进行压缩。其差异原理如下比喻:

待升级固件:

当前版本固件:

可以看出,待升级固件中包含的最长相同字符为abedsfa,可标识为0020000的差异字符串,因其含有大量的“0”而可被高效的压缩,而剩下的字符sdfaods是额外增加的,也不同于尾词的aa,可作为额外字符串,因此,n个压缩的差异字符串+额外字符串则形成差异补丁文件。再比如,若如差异文件是“000000”,可以用“60”两个字符代替,意思为6个0,实现高效压缩。

需要说明的是,换电柜的相邻两个版本固件之间差异其实都是很小的,因此,差异补丁文件起到加快转换的作用。

进一步的,所述获取待升级固件时,先利用MD5算法校验待升级固件的MD5值,若校验通过则可获取,若校验不通过则生成MD5值校验异常信息并反馈给上位机。

在步骤S1中,接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件,所述压缩包文件包括待升级固件的版本信息和MD5值。

在本发明实施例中,根据实际应用方案,换电柜是安装部署在户外且位置相对分散的各个地方,采用基于移动网络远程更新换电柜的程序,但有区别于现有技术,具体的是,依据请求下载差异补丁文件和压缩包文件,其中,差异补丁文件具有区别新旧版本的不同程序位置信息,便于程序位置的点对点替换修正的升级,无需整个版本的固件整体升级所带来的占资、耗时、低效和耗流量的缺陷问题,也无需工作人员到每一个换电柜现场一一升级处理,做到了远程高效升级的显著效果。

在步骤S202中,从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件,所述新版本固件包括新版本信息和新MD5值。

在本发明实施例中,换电柜本地存储中提取备份的当前版本固件可直接调用,差异补丁文件包含有新旧版本固件的不同程序位置的信息,利用bspatch算法能够快速标识到当前版本固件中与差异补丁文件的具体差异位置,只需点对点替换掉当前版本固件中的信息,无需全部搜索和替换,能够合并形成的新版本固件。

bspatch是用来做合并的工具,例如,文件A和文件B生成了差文件C。当有程序需要升级时,这时已知条件就是备份文件B和差异文件C,然后通过bspatch解析出差异文件C的信息,再和备份文件B合并生成新的文件,这个新的文件原则上就应该是文件A。

在步骤S203中,基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件。

在本发明实施例中,MD5算法是一种信息摘要算法,其英文为MD5 Message-DigestAlgorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于对新版本固件的新MD5值与待升级固件的MD5值的比对,确保新版本固件的信息完整一致性。

当新版本固件的新MD5值与待升级固件的MD5值不完全一致时,则返回步骤S1重新下载、核对、合并及比对MD5值,若3次不成功,则终止额并不难次升级请求。

在步骤S204中,运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。

在本发明实施例中,对于下载后的新版本固件执行首次运行的过程中,需对各项功能以及性能指标的数据参数等做运行监测,若正常运行,则最终升级完成。若监测新版本固件运行的各项参数有异常,及比对新版本信息与待升级固件的版本信息不完全一致,则提示升级失败,生成新版本固件的异常信息反馈给上位机,并退出升级反回当前版本固件的运行。

在本发明实施例中,提供了一种换电柜程序升级方法,包括:接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件;从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件;基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件;运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。与现有技术相比,本发明在换电柜程序固件更新方面具有占用资源少,网络下载传输量少,升级效率高,消耗流量低的显著效果。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

参考图3,作为对上述图2所示方法的实现,本发明提供了一种换电柜程序升级装置的实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中,本实施例的换电柜程序升级装置200包括:差异模块210、下载模块220、合并模块230、校验模块240以及监测模块250,其中:

差异模块210,用于获取待升级固件,上位机运行bsdiff工具,将所述待升级固件与换电柜的当前版本固件进行二进制差异对比,生成差异补丁文件;

下载模块220,用于接收上位机下发的待升级固件更新请求,换电柜下载差异补丁文件和压缩包文件,所述压缩包文件包括待升级固件的版本信息和MD5值;

合并模块230,用于从所述换电柜本地存储中提取备份的当前版本固件,利用bspatch算法将所述差异补丁文件与当前版本固件进行合并,生成新版本固件,所述新版本固件包括新版本信息和新MD5值;

校验模块240,用于基于MD5算法比对新版本固件的新MD5值与待升级固件的MD5值是否完全一致,若完全一致则下载所述新版本固件;

监测模块250,用于运行所述新版本固件,监测所述新版本固件运行的各项参数并比对新版本信息与待升级固件的版本信息是否完全一致,若完全一致则提示升级完成,同时保存所述新版本固件作为备份文件。

在本发明实施例中,待升级固件是预先做好,存放在上位机的存储模块中,存储模块还存储有各个换电柜对应备份的当前版本固件,AB0001、AB0002、AB0003、AB0004……AB000n,在上位机中先做好差异补丁文件,在通过HTTP通信协议的方式下发到各个换电柜供其下载、合成、校验和监测,最终实现自动高效的程序升级。与现有技术相比,本发明在换电柜程序固件更新方面具有占用资源少,网络下载传输量少,升级效率高,消耗流量低的显著效果。

为解决上述技术问题,本发明实施例还提供计算机设备。具体请参阅图4,是本发明计算机设备的的较佳实施例示意图。

所述计算机设备30包括通过系统总线相互通信连接存储器31、处理器32、网络接口33。需要指出的是,图中仅示出了具有组件31-33的计算机设备30,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器31至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器31可以是所述计算机设备30的内部存储单元,例如该计算机设备30的硬盘或内存。在另一些实施例中,所述存储器31也可以是所述计算机设备30的外部存储设备,例如该计算机设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器31还可以既包括所述计算机设备30的内部存储单元也包括其外部存储设备。本实施例中,所述存储器31通常用于存储安装于所述计算机设备30的操作系统和各类应用软件,例如换电柜程序升级方法的程序升级可读指令等。此外,所述存储器31还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器32在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器32通常用于控制所述计算机设备30的总体操作。本实施例中,所述处理器32用于运行所述存储器31中存储的程序升级可读指令或者处理数据,例如运行所述换电柜程序升级方法的程序升级可读指令。

所述网络接口33可包括无线网络接口或有线网络接口,该网络接口33通常用于在所述计算机设备30与其他电子设备之间建立通信连接。

申请提供的计算机设备,具有占用资源少,网络下载传输量少,升级效率高,消耗流量低的显著效果。

本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序升级可读指令,所述程序升级可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的换电柜程序升级方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,附图中给出了本发明的较佳实施例,但并不限制本发明的专利范围。本发明可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

相关技术
  • 用于调整、制造、以及操作无线电收发信机、移动收发信机、基站收发信机的调整电路和装置、方法、以及计算机程序、和用于计算机程序或指令的存储设备
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 一种数据存储方法、装置、设备及计算机可读存储介质
  • 视频直播切换方法、装置、计算机设备以及存储介质
  • 换电柜OTA升级方法、装置、换电设备和存储介质
  • 一种计算机程序的升级方法、装置、电子设备及存储介质
技术分类

06120116491846