本发明涉及电表固件升级的方法及系统,属于高并发。
背景技术:
1、近年来,随着远程抄表方式的优化和能源互联网建设的持续推进,电力采集系统的新兴业务不断涌现,例如电力设备负荷识别、电力现货交易等,采集系统接入了更多类型和数量的设备。用电信息采集系统的远程抄表自动化极大的提升了抄表效率和抄表成功率。随着新型电力市场业务需求发展,各类存量设备的更新升级频率也越来越频繁。
2、现有的采集系统在面对海量存量设备的升级需求时,存在着明显的性能瓶颈,对终端进行升级时,按照固定的分包大小将升级软件分包下发到终端,但升级过程往往受到终端安装环境、通信网络、噪音干扰、终端本身等一系列因素的影响,在传输升级包过程中经常出现丢包导致升级失败的问题,此时只能通过初始化升级,重传所有升级包解决问题,升级成功率低,效率低下。
技术实现思路
1、本发明的目的在于克服现有技术中的不足,提供电表固件升级的方法及系统,能够实现海量的终端升级。
2、为达到上述目的,本发明是采用下述技术方案实现的:
3、第一方面,本发明提供一种电表固件升级的方法,由采集系统主站执行:
4、获取各待升级终端的当前运行软件版本及厂商信息,并根据待升级终端的当前运行软件版本及厂商信息将各待升级终端进行分组;
5、获取待升级软件包,响应于待升级终端的当前运行软件版本与待升级软件包版本不一致,按照组对各待升级终端进行并发升级;
6、所述并发升级包括以下步骤:
7、预处理各组待升级软件包,获得多个具有有序批次的子软件包,将子软件包的参数和待升级指令发送至待升级终端;
8、响应于接收待升级终端的准备就绪确认信号,按照批次顺序将子软件包依次发送至待升级终端,并完成电表固件升级。
9、进一步地,由采集系统主站执行:
10、完成电表固件升级后,获取各批次的子软件包在对应的待升级终端的升级结果和升级时间;
11、令各组待升级终端中,升级成功且升级时间周期最短批次的子软件包为向导软件包;
12、指令各组待升级终端中所有未升级成功的待升级终端利用对应的向导软件包进行并发升级。
13、进一步地,所述预处理各组待升级软件包包括:
14、按照各组待升级终端的软件传输分包建议值将对应的待升级软件包分成多个批次的子软件包。
15、进一步地,所述按照批次顺序将子软件包依次发送至待升级终端包括:
16、基于从小到大排序原则,按照有序批次的大小将子软件包排序,并执行下述循环步骤,直到t大于等于预设值,或所有子软件包全部隐藏,退出循环步骤:
17、将排在最前的子软件包传输至待升级终端;
18、接收待升级终端的接收状态信号:
19、响应于接收状态信号为接收成功,将当前排在最前的子软件包隐藏;
20、响应于接收状态信号为其他信号,令t=t+1;
21、其中,t为重复传输次数,且t的初始值为0。
22、进一步地,所述完成电表固件升级包括:
23、将子软件包完整性校验的指令发送至待升级终端,并接收待升级终端的校验结果信号;
24、响应于校验结果信号为校验成功,将激活指令发送至待升级终端,并记录激活指令已发送时长;
25、接收待升级终端的激活结果信号;
26、响应于激活结果信号为激活成功或激活指令已发送时长大于等于预设时长,召测待升级终端的当前运行软件版本;
27、响应于召测待升级终端的当前运行软件版本与待升级软件包版本一致,当前子软件包升级成功。
28、第二方面,本发明提供一种电表固件升级的方法,由待升级终端执行:
29、响应于子软件包的参数和待升级指令,清空升级缓冲区,并将准备就绪确认信号发送至采集系统主站;
30、响应于接收子软件包,将接收状态信号反馈至采集系统主站;
31、响应于接收采集系统主站的指令,完成电表固件升级。
32、进一步地,所述响应于接收子软件包,将接收状态信号反馈至采集系统主站包括::
33、接收采集系统主站发送的子软件包,并将子软件包的参数与之前接收的子软件包参数进行比较:
34、若匹配,则将接收成功的接收状态信号反馈至采集系统主站;
35、若不匹配,则将接收错误的接收状态信号反馈至采集系统主站。
36、进一步地,所述采集系统主站的指令包括子软件包完整性校验的指令和激活指令;
37、进一步地,所述响应于接收采集系统主站的指令,完成电表固件升级包括:
38、响应于子软件包完整性校验的指令,校验当前子软件包,并将校验结果信号发送至采集系统主站;
39、响应于激活指令,解压运行当前子软件包,完成子软件包升级并将激活结果信号发送至采集系统主站。
40、第三方面,本发明提供一种电表固件升级的系统,包括由采集系统主站执行的::
41、分组模块,用于获取各待升级终端的当前运行软件版本及厂商信息,并根据待升级终端的当前运行软件版本及厂商信息将各待升级终端进行分组;
42、并发升级模块,用于获取待升级软件包,响应于待升级终端的当前运行软件版本与待升级软件包版本不一致,按照组对各待升级终端进行并发升级;
43、并发升级模块包括:
44、预处理子模块,用于理预处理各组待升级软件包,获得多个具有有序批次的子软件包,将子软件包的参数和待升级指令发送至待升级终端;
45、升级模块,用于响应于接收待升级终端的准备就绪确认信号,按照批次顺序将子软件包依次发送至待升级终端,并完成电表固件升级。
46、第四方面,本发明提供一种电表固件升级的系统,包括由待升级终端执行的:
47、准备模块,用于响应于子软件包的参数和待升级指令,清空升级缓冲区,并将准备就绪确认信号发送至采集系统主站;
48、状态信号反馈模块,响应于接收子软件包,将接收状态信号反馈至采集系统主站;
49、升级模块,响应于接收采集系统主站的指令,完成电表固件升级。
50、与现有技术相比,本发明所达到的有益效果:
51、本申请的升级方法通过对各待升级终端分组,并进行并发升级,能够实现海量的终端升级,极大的提高了升级的效率。
52、本申请按照批次顺序将子软件包依次发送至待升级终端,在升级出现异常时可极大的减少数据的重传量,便于从异常的断点处重新开始升级任务,极大地减少了升级的周期时间。
1.一种电表固件升级的方法,其特征在于,由采集系统主站执行:
2.根据权利要求1所述的电表固件升级的方法,其特征在于,由采集系统主站执行:
3.根据权利要求1所述的电表固件升级的方法,其特征在于,所述预处理各组待升级软件包包括:
4.根据权利要求1所述的电表固件升级的方法,其特征在于,
5.根据权利要求1所述的电表固件升级的方法,其特征在于,所述完成电表固件升级包括:
6.一种电表固件升级的方法,其特征在于,由待升级终端执行:
7.根据权利要求6所述的电表固件升级的方法,其特征在于,所述响应于接收子软件包,将接收状态信号反馈至采集系统主站包括:
8.根据权利要求6所述的电表固件升级的方法,其特征在于,
9.一种电表固件升级的系统,其特征在于,包括由采集系统主站执行的:
10.一种电表固件升级的系统,其特征在于,包括由待升级终端执行的: