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

软件版本升级方法、装置及存储介质与流程

2023-01-15 08:31:59 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种软件版本升级方法、装置及存储介质。


背景技术:

2.对于电子设备来说,软件的升级功能是必不可少的重要组成部分。当前常用升级方案中,升级功能是和电子设备的其它功能耦合在一起,特别是对于多个板卡组成的电子设备,升级包在板卡间的传输及升级进度消息的反馈都需要依赖设备主程序其它功能来完成。
3.现有的电子设备的软件版本的升级方法存在以下问题:升级功能和电子设备其它功能耦合度大,每次修改升级功能都需要修改整个设备主程序,修改难度大,易出错。


技术实现要素:

4.本发明提供一种软件版本升级方法、装置及存储介质,用以解决现有技术中电子设备的软件版本升级功能复杂度高的缺陷,实现使用独立的脚本来实现升级功能,降低设备程序的耦合度和复杂度。
5.本发明提供一种软件版本升级方法,包括:
6.接收apk发送的升级请求消息;
7.基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
8.基于所述第一升级包,确定各个单板分别对应的第二升级包;
9.基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
10.在一些实施例中,所述基于所述第一升级包,确定各个单板分别对应的第二升级包,包括:
11.调用所述第一脚本,对所述第一升级包进行解包,确定各个单板分别对应的第二升级包。
12.在一些实施例中,所述基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级,包括:
13.调用所述第二脚本,获取所述第二升级包;
14.基于所述第二升级包,执行所述第二脚本的升级操作,对所述各个单板分别进行软件版本升级。
15.在一些实施例中,所述方法,还包括:
16.向所述apk实时反馈所述各个单板的升级信息;所述升级信息包括升级进度信息和/或升级错误信息。
17.在一些实施例中,所述方法,还包括:
18.在所述各个单板均升级完成的情况下,向所述apk发送升级成功的消息;所述升级成功的消息用于指示电子设备的软件版本升级成功。
19.在一些实施例中,所述升级请求消息,包含:
20.ftp服务器地址信息、所述第一升级包的文件名信息、ftp服务器登录用户名信息和ftp服务器登录密码信息。
21.本发明还提供一种软件版本升级装置,包括:
22.接收模块,用于接收apk发送的升级请求消息;
23.获取模块,用于基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
24.确定模块,用于基于所述第一升级包,确定各个单板分别对应的第二升级包
25.升级模块,用于基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
26.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件版本升级方法。
27.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件版本升级方法。
28.本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软件版本升级方法。
29.本发明提供的软件版本升级方法、装置及存储介质,通过使用独立的脚本来实现升级功能,降低了设备程序的耦合度和复杂度,提高了设备程序的可扩展性和可维护性,各单板的升级由各单板自己的升级脚本执行升级动作,主板升级总脚本只需要负责调用各单板的升级脚本,不需要关心各单板的具体升级动作,提高了多板设备单板增加时的可扩展性,同时也简化了维护复杂度。
附图说明
30.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1是本发明实施例提供的软件版本升级方法的流程示意图之一;
32.图2是本发明实施例提供的软件版本升级方法的流程示意图之二;
33.图3是本发明实施例提供的手机及设备各单板的网络连接方式的示意图;
34.图4是本发明实施例提供的升级包传输及升级处理方法的流程示意图;
35.图5是本发明实施例提供的升级消息反馈方法的流程示意图;
36.图6是本发明实施例提供的软件版本升级装置的结构示意图;
37.图7是本发明实施例提供的电子设备的结构示意图。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,
而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.图1是本发明实施例提供的软件版本升级方法的流程示意图之一,参考图1,本发明实施例提供的软件版本升级方法,可以包括:
40.步骤101、接收apk发送的升级请求消息;
41.步骤102、基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
42.步骤103、基于所述第一升级包,确定各个单板分别对应的第二升级包;
43.步骤104、基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
44.需要说明的是,本发明提供的软件版本升级方法的执行主体可以是电子设备。该电子设备可以是移动电子设备,也可以为非移动电子设备。该电子设备是由多个单板组成的电子设备,本发明对电子设备的类型不作具体限定。
45.在步骤101中,接收apk发送的升级请求消息。
46.可选地,手机可以作为文件传输协议(file transfer protocol,ftp) 服务端,设备主控盘(负责管控整个电子设备及对外交互的单板)作为ftp客户端。安卓应用程序包(android application package,apk) 可以在手机上运行。
47.升级流程由apk触发,apk发送升级请求消息,电子设备可以通过主控盘接收升级请求消息。
48.进一步地,升级请求消息中可以包含:ftp服务器地址信息、第一升级包的文件名信息、ftp服务器登录用户名信息和ftp服务器登录密码信息。
49.主控盘主程序一旦收到升级请求信息,解析出登录ftp服务器的相关信息,调用主控盘上的升级总脚本,即第一脚本,并将apk 发送过来的升级请求消息的内容传递给第一脚本,后续工作由第一脚本继续完成,主程序不再干涉升级过程。
50.在步骤102中,基于所述升级请求消息,调用第一脚本,获取第一升级包。所述第一升级包为目标软件版本对应的升级包。
51.第一脚本通过主控盘主程序传来的ftp服务器地址信息、第一升级包的文件名信息、ftp服务器登录用户名信息和ftp服务器登录密码信息,从手机上获取到新版本升级包,即第一升级包,并保存到本地。
52.在步骤103中,基于所述第一升级包,确定各个单板分别对应的第二升级包。
53.通过调用第一脚本可以将第一升级包解开分成各个单板的升级包,即第二升级包,不同的单板对应的第二升级包不同。
54.在步骤104中,基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
55.第一脚本通过“sshpass”命令远程调用各个单板的升级子脚本,即第二脚本,来实现各个单板的升级功能。
56.各个单板的第二脚本通过“sshpass”命令调用“scp”命令实现免密码从主控盘获取本单板的升级包功能。
57.各单板获取第二升级包后,执行第二脚本里面的升级操作对单板进行升级动作。
58.此外,在整个升级流程中,各个单板可以实时反馈升级相关信息, apk获取到信息并呈现给用户。
59.本发明实施例提供的软件版本升级方法,通过使用独立的脚本来实现升级功能,降低了设备程序的耦合度和复杂度,提高了设备程序的可扩展性和可维护性,各单板的升级由各单板自己的升级脚本执行升级动作,主板升级总脚本只需要负责调用各单板的升级脚本,不需要关心各单板的具体升级动作,提高了多板设备单板增加时的可扩展性,同时也简化了维护复杂度。
60.在一些实施例中,所述基于所述第一升级包,确定各个单板分别对应的第二升级包,包括:
61.调用所述第一脚本,对所述第一升级包进行解包,确定各个单板分别对应的第二升级包。
62.可选地,通过调用第一脚本可以将第一升级包解包成各个单板分别对应的升级包,即第二升级包,不同的单板对应的第二升级包不同。
63.进一步地,所述基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级,包括:
64.调用所述第二脚本,获取所述第二升级包;
65.基于所述第二升级包,执行所述第二脚本的升级操作,对所述各个单板分别进行软件版本升级。
66.例如,通过第一脚本upgrade_dw.sh将第一升级包解包成各个单板的第二升级包,然后调用各个单板的第二脚本upgrade.sh来执行各单板实际的升级工作。
67.调用各单板的upgrade.sh脚本存在两种方式,对于位于同一块单板主控盘上的upgrade.sh脚本调用,直接执行脚本就行,对于不在同一块单板的各单板,需要用到“sshpass-p密码ssh各单板ip "upgrade.sh参数列表"&”命令远程执行脚本。
68.各单板执行本板的upgrade.sh脚本来执行本板的升级工作,首先从主控盘获取本单板的第二升级包。
69.主控盘的upgrade.sh脚本省略这一步,其它单板的upgrade.sh 脚本调用“sshpass-p密码scp-o"stricthostkeychecking no"主控盘: 升级包名本地包名”命令,将主控盘上的第二升级包拷贝到本板指定目录。然后各单板upgrade.sh脚本执行本单板特有的升级动作。
70.本发明实施例提供的软件版本升级方法,通过各单板的升级由各单板自己的升级脚本执行升级动作,主板升级总脚本只需要负责调用各单板的升级脚本,不需要关心各单板的具体升级动作,提高了多板设备单板增加时的可扩展性,同时也简化了维护复杂度。
71.在一些实施例中,所述方法,还包括:
72.向所述apk实时反馈所述各个单板的升级信息;所述升级信息包括升级进度信息和/或升级错误信息。
73.可选地,各单板在执行升级操作的同时,可以通过linux的开源消息队列遥测传输协议(message queuing telemetry transport,mqtt) 功能实时反馈升级信息,升级信息包括升级进度信息和/或升级错误信息。
74.在整套升级系统中,主控盘作为代理接受来自客户的网络连接和客户发布的应用
信息,处理来自客户端的订阅和退订请求,向订阅的客户转发应用程序消息。每个单板都作为发布者发布升级过程中的相关信息。apk作为订阅者订阅各单板发布的升级过程相关信息并显示给用户。
75.本发明实施例提供的软件版本升级方法,通过使用mqtt传递消息,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
76.在一些实施例中,所述方法,还包括:
77.在所述各个单板均升级完成的情况下,向所述apk发送升级成功的消息;所述升级成功的消息用于指示电子设备的软件版本升级成功。
78.可选地,当所有单板的升级工作完全正确执行完成,各单板均返回升级成功消息,如果其中有某一步执行失败,则返回升级失败消息。
79.apk在规定时间内收到所有单板升级成功的消息后,显示电子设备升级成功,并提示客户重启设备生效。
80.如果在规定时间内没有收到全部单板的升级成功消息,apk显示电子设备升级失败并主动回退到升级前版本。
81.图2是本发明实施例提供的软件版本升级方法的流程示意图之二,下面以基站设备为例,对本发明实施例提供的软件版本升级方法进行详细描述。
82.本发明提供一种面对多板电子设备进行软件版本升级的整体方案,如图2所示,整套系统包括一个运行在手机上的apk和一个基站设备。
83.基站设备由4块单板组成,分别是主控盘、基带处理单元(baseband unit,bbu)板、前传卡和中频盘。
84.其中,主控盘对外负责基站和apk之间的消息交互,对内负责对基站其它各单板(bbu、前传卡、中频盘)的消息交互。
85.图3是本发明实施例提供的手机及设备各单板的网络连接方式的示意图,参考图3,基站设备的4个单板通过wifi路由器的有线端口连接,手机和基站通过wifi路由器的无线端口连接。
86.升级流程由apk触发,apk给主控盘发送一条升级请求消息,该消息包含ftp服务器地址、升级包文件名、ftp服务器登录用户名、密码等信息。
87.主控盘主程序收到升级请求消息后,解析出登录ftp服务器的相关信息,然后调用升级总脚本upgrade_dw.sh开始升级流程,同时主程序结束自己对升级的所有工作,不再干涉升级流程,后续工作由 upgrade_dw.sh脚本继续完成。
88.图4是本发明实施例提供的升级包传输及升级处理方法的流程示意图,如图4所示,手机作为ftp服务端,主控盘作为ftp客户端, upgrade_dw.sh通过“curl-s-o保存文件路径及名字-w "%{http_code}"ftp://用户名:密码@ftp服务器地址:端口/升级包路径及名字”命令,利用主程序传递来的登录ftp服务器的相关信息,远程从手机上获取到基站的第一升级包并保存到主控盘上指定目录。
89.然后upgrade_dw.sh将基站的第一升级包解包成4个单板的第二升级包,并调用四个单板的升级脚本upgrade.sh来执行各单板实际的升级工作。
90.调用各单板的upgrade.sh脚本存在两种方式,对于位于同一块单板主控盘上的upgrade.sh脚本调用,直接执行脚本就行。对于不在同一块单板的bbu、前传卡、中频盘来
说,需要用到“sshpass-p密码 ssh各单板ip"upgrade.sh参数列表"&”命令远程执行脚本。
91.各单板执行本板的upgrade.sh脚本来执行本板的升级工作,首先从主控盘获取本单板的第二升级包。
92.主控盘的upgrade.sh脚本省略这一步,其它三块单板的 upgrade.sh脚本调用“sshpass-p密码scp-o"stricthostkeycheckingno"主控盘:升级包名本地包名”命令,将主控盘上的第二升级包拷贝到本板指定目录。然后各单板upgrade.sh脚本执行本单板特有的升级动作。
93.当所有升级工作完全正确执行完成,各单板返回升级成功消息,如果其中有某一步执行失败,返回升级失败消息,apk在规定时间内收到所有单板升级成功的消息后,显示设备升级成功,并提示用户重启设备生效。如果在规定时间内没有收到全部单板的升级成功消息, apk显示升级失败并主动回退到升级前版本。
94.图5是本发明实施例提供的升级消息反馈方法的流程示意图,如图5所示,在整个升级过程中,设备通过mqtt服务给apk反馈升级进度消息,然后由apk根据消息内容做对应处理,同时将消息呈现给用户。在整套升级系统中,apk和4块单板上都需要各起一个 mqtt的服务,并将apk和各单板配置成不同角色。主控盘作为代理接受来自客户的网络连接和客户发布的应用信息,处理来自客户端的订阅和退订请求,向订阅的客户转发应用程序消息。每个单板包括主控盘都作为发布者发布升级过程中的相关信息。apk作为订阅者订阅各单板发布的升级过程相关信息并显示给用户。
95.4个单板上的升级脚本通过“paho_c_pub-i客户端id-t主题名
ꢀ‑
h服务器地址-m"消息内容"”来发布消息,如表1所示,消息内容自动填入到mqtt消息的data域中。apk按照主题名来发布订阅请求,主控盘将apk订阅的消息推送给apk。
96.表1升级反馈消息内容实体示意表
97.[0098][0099]
本发明实施例提供的软件版本升级方法,通过在升级包板间传递和消息传递方面使用linux开源功能,降低了软件开发难度,减少了开发时间。同时使用独立的脚本来实现升级功能,降低了设备程序的耦合度和复杂度,提高了程序的可扩展性和可维护性。使用mqtt 传递消息,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。各单板的升级由各单板自己的升级脚本执行升级动作,主板升级总脚本只需要负责调用各单板的升级脚本,不需要关心各单板的具体升级动作,提高了多板设备单板增加时的可扩展性,同时也简化了维护复杂度。
[0100]
下面对本发明提供的软件版本升级装置进行描述,下文描述的软件版本升级装置与上文描述的软件版本升级方法可相互对应参照。
[0101]
图6是本发明实施例提供的软件版本升级装置的结构示意图,参考图6,本发明实施例提供的软件版本升级装置,可以包括:
[0102]
接收模块610,用于接收apk发送的升级请求消息;
[0103]
获取模块620,用于基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
[0104]
确定模块630,用于基于所述第一升级包,确定各个单板分别对应的第二升级包
[0105]
升级模块640,用于基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
[0106]
本发明实施例提供的软件版本升级装置,通过使用独立的脚本来实现升级功能,降低了设备程序的耦合度和复杂度,提高了设备程序的可扩展性和可维护性,各单板的升级由各单板自己的升级脚本执行升级动作,主板升级总脚本只需要负责调用各单板的升级
脚本,不需要关心各单板的具体升级动作,提高了多板设备单板增加时的可扩展性,同时也简化了维护复杂度。
[0107]
可选地,所述确定模块630,具体用于:
[0108]
调用所述第一脚本,对所述第一升级包进行解包,确定各个单板分别对应的第二升级包。
[0109]
可选地,所述升级模块640,具体用于:
[0110]
调用所述第二脚本,获取所述第二升级包;
[0111]
基于所述第二升级包,执行所述第二脚本的升级操作,对所述各个单板分别进行软件版本升级。
[0112]
可选地,所述软件版本升级装置,还包括:
[0113]
反馈模块,用于向所述apk实时反馈所述各个单板的升级信息;所述升级信息包括升级进度信息和/或升级错误信息。
[0114]
可选地,所述软件版本升级装置,还包括:
[0115]
发送模块,用于在所述各个单板均升级完成的情况下,向所述 apk发送升级成功的消息;所述升级成功的消息用于指示电子设备的软件版本升级成功。
[0116]
可选地,所述升级请求消息,包含:
[0117]
ftp服务器地址信息、所述第一升级包的文件名信息、ftp服务器登录用户名信息和ftp服务器登录密码信息。
[0118]
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communications
ꢀꢀ
interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行软件版本升级方法,该方法包括:
[0119]
接收apk发送的升级请求消息;
[0120]
基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
[0121]
基于所述第一升级包,确定各个单板分别对应的第二升级包;
[0122]
基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
[0123]
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0124]
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的软件版本升级方法,该方法包括:
[0125]
接收apk发送的升级请求消息;
[0126]
基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
[0127]
基于所述第一升级包,确定各个单板分别对应的第二升级包;
[0128]
基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
[0129]
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的软件版本升级方法,该方法包括:
[0130]
接收apk发送的升级请求消息;
[0131]
基于所述升级请求消息,调用第一脚本,获取第一升级包;所述第一升级包为目标软件版本对应的升级包;
[0132]
基于所述第一升级包,确定各个单板分别对应的第二升级包;
[0133]
基于所述第二升级包,调用第二脚本,对所述各个单板分别进行软件版本升级。
[0134]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0135]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0136]
本技术实施例中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
[0137]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献