远程升级方法、装置、终端设备及存储介质
技术领域
本申请属于通信
技术领域
,尤其涉及一种远程升级方法、装置、终端设备及存储介质。背景技术
在防雷领域,防雷监控的物联网渐成主流。物联网的实现,给用户带来了提高预警效率、快速反应、防雷设备状况一目了然、有效管理防雷设备、以及节省人力等便利。防雷的物联网化,最为关键的是安装单元点的监控,实时把当前的状态反馈到后台服务器。但是在现在的应用场景中,安装单元点的监控系统若需做一些参数修改、或优化错误等,需技术人员到现场更新安装单元点的程序,给后期的维护带来了很大的不便。
发明内容
本申请的实施例提供一种远程升级方法、装置、终端设备及存储介质,便于后期维护。
第一方面,本申请的实施例提供一种远程升级方法,应用于下位机,所述方法包括:
接收升级通信数据,所述升级通信数据包括升级程序;
存储所述升级程序并将升级标志的值写为第一预设值;
重启所述下位机并检测所述升级标志的值;
若所述升级标志的值为所述第一预设值,则获取所述升级程序并将所述升级标志的值写为第二预设值;
运行所述升级程序。
在第一方面的一种可能的实现方式中,所述存储所述升级程序,包括:将所述升级程序存储于备份区;
相应的,所述获取所述升级程序,包括:将存储于所述备份区的升级程序复制到升级区;
相应的,所述运行所述升级程序,包括:运行存储于所述升级区的升级程序。
在第一方面的一种可能的实现方式中,所述接收升级通信数据,包括:
接收所述升级通信数据的协议头以及所述升级程序,并缓存所述升级程序;
若在设定时间内接收到所述升级通信数据的协议尾,则对所述升级程序进行校验,得到校验结果;
对应的,所述将所述升级程序存储于备份区,包括:若所述校验结果为校验通过,则将所述升级程序存储于备份区。
在第一方面的一种可能的实现方式中,所述升级通信数据包括预设校验码,所述对所述升级程序进行校验,得到校验结果,包括:
生成所述升级程序的实时校验码;
将所述实时校验码与所述预设校验码进行比对,得到校验结果。
在第一方面的一种可能的实现方式中,所述方法还包括:若在设定时间内没有接收到所述升级通信数据的协议尾,则判定为远程升级失败并返回重新接收所述协议头。
在第一方面的一种可能的实现方式中,在所述检测所述升级标志的值之前,还包括:获取模式开关的状态;
对应的,所述检测所述升级标志的值,包括:若所述模式开关的状态为正常模式,则检测所述升级标志的值;
对应的,所述运行存储于所述升级区的升级程序,包括:若所述升级标志的值不为所述第一预设值,而是为所述第二预设值,则运行存储于所述升级区的升级程序;
所述方法还包括:若所述升级标志的值既不为所述第一预设值,也不为所述第二预设值,则运行存储于出厂区的出厂程序,以接收所述升级通信数据。
在第一方面的一种可能的实现方式中,所述获取模式开关的状态,包括:
接收用户通过触发模式开关发送的状态切换指令;
根据所述状态切换指令生成所述模式开关的状态。
在第一方面的一种可能的实现方式中,所述方法还包括:所述方法还包括:若所述模式开关的状态为非正常模式,则运行存储于出厂区的出厂程序,以接收所述升级通信数据。
第二方面,本申请的实施例还提供一种远程升级方法,应用于上位机,所述方法包括:
发送升级通信数据,所述升级通信数据包括升级程序;
接收下位机发送的返回数据,所述返回数据是由所述下位机在存储所述升级程序并将升级标志的值写为第一预设值之后发送的。
在第二方面的一种可能的实现方式中,在所述发送升级通信数据之前,所述方法还包括:
接收用户发出的升级指令,所述升级指令与所述下位机对应;
响应于接收到所述升级指令,接收所述下位机发送的心跳包;
相应的,所述发送升级通信数据,包括:响应于接收到所述心跳包,发送升级通信数据。
第三方面,本申请的实施例提供一种远程升级装置,应用于下位机,所述装置包括:
接收模块,用于:接收升级通信数据,所述升级通信数据包括升级程序;
备份模块,用于:存储所述升级程序并将升级标志的值写为第一预设值;
处理模块,用于:重启所述下位机并检测所述升级标志的值;
升级程序获取模块,用于:若所述升级标志的值为所述第一预设值,则获取所述升级程序并将所述升级标志的值写为第二预设值;
升级程序运行模块,用于:运行所述升级程序。
第四方面,本申请的实施例还提供一种远程升级装置,应用于上位机,所述装置包括:
发送模块,用于:发送升级通信数据,所述升级通信数据包括升级程序;
返回数据接收模块,用于:接收下位机发送的返回数据,所述返回数据是由所述下位机在存储所述升级程序并将升级标志的值写为第一预设值之后发送的。
第五方面,本申请的实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中或第二方面中任一项所述的方法。
第六方面,本申请的实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中或第二方面中任一项所述的方法。
第七方面,本申请的实施例提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中或第二方面中任一项所述的方法。
本申请的实施例与现有技术相比存在的有益效果是:
在本申请的实施例中,接收升级通信数据,其中,该升级通信数据包括升级程序;存储接收到的升级程序,并将升级标志的值写为第一预设值;重启下位机并检测升级标志的值;若升级标志的值为第一预设值,则获取存储的升级程序并将升级标志的值写为第二预设值;第一预设值对应于存储接收到的升级程序,第二预设值对应于重启下位机后获取到存储的升级程序,这样能够保证远程升级的正确进行,实现可靠的远程升级,能避免技术人员赶赴现场处理,便于后期维护,能节省后期维护成本。
本申请的实施例的一些可能的实现方式具有如下有益效果:
接收升级通信数据,其中,该升级通信数据包括升级程序;将接收到的升级程序存储于备份区,并将升级标志的值写为第一预设值;重启下位机并检测升级标志的值;若升级标志的值为第一预设值,则将存储于备份区的升级程序复制到升级区,并将升级标志的值写为第二预设值;其中,升级标志为第二预设值,表示升级区存储有升级程序,那么就可以运行存储于升级区的升级程序;第一预设值对应于备份区存储有接收到的升级程序,第二预设值对应于重启下位机后将存储于备份区的升级程序复制到升级区,能实现可靠地不断接收升级程序并完成升级,这样能在后期维护稳定地进行多次升级;
接收升级通信数据的协议头以及升级程序,并存储升级程序;若在设定时间内接收到升级通信数据的协议尾,则对升级程序进行校验,得到校验结果;若校验结果为校验通过,则将升级程序存储于备份区;这样能保证接收到的升级通信数据的完整与正确;
在检测升级标志的值之前,获取模式开关的状态;若模式开关的状态为正常模式,则检测升级标志的值;若升级标志的值不为第一预设值,而是为第二预设值,则运行存储于升级区的升级程序;这样能确保升级过程的可靠进行,能保证升级的正确性;
若升级标志的值既不为第一预设值,也不为第二预设值,则运行存储于出厂区的出厂程序,以接收升级通信数据;这样,即使在升级过程中发生错误,也能重新开始升级,能提高系统的鲁棒性。
附图说明
为了更清楚地说明本申请的实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的远程升级系统的结构示意图;
图2是本申请一实施例提供的下位机的结构示意图;
图3是本申请一实施例提供的远程升级系统的信息交互图;
图4是本申请一实施例提供的远程升级方法的步骤A1的流程示意图;
图5是本申请一实施例提供的远程升级方法的步骤A12的流程示意图;
图6是本申请一实施例提供的上位机的结构示意图
图7是本申请一实施例提供的远程升级方法的逻辑图;
图8是本申请一实施例提供的应用于下位机的远程升级装置的结构示意图;
图9是本申请一实施例提供的远程升级装置的接收模块的结构示意图;
图10是本申请一实施例提供的远程升级装置的校验子模块的结构示意图;
图11是本申请一实施例提供的远程升级装置的一种变型方式的结构示意图;
图12是本申请一实施例提供的远程升级装置的另一种变型方式的结构示意图;
图13是本申请一实施例提供的应用于上位机的远程升级装置的结构示意图;
图14是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
为了使本申请所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图1至14及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请的实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
图1是本申请一实施例提供的远程升级系统的结构示意图,该系统具体为一种应用于防雷物联网的远程升级系统。该系统包括后台服务器和防雷监控单元,能实现防雷监控单元的远程升级。防雷监控单元包括微控制单元(Microcontroller Unit,简称MCU)。在本实施例中,参考图1,后台服务器为上位机10,微控制单元为下位机20。
上位机10运行有应用程序(Application,简称APP)。该应用程序用于接收防雷监控单元反馈回来的信号,做分析处理,把数据保存于后台服务器。在应用程序上可查看当前数据和历史数据,并可向防雷监控单元发送指令。
图2是本申请一实施例提供的下位机的结构示意图,参考图2,下位机20包括存储器21,该存储器21为闪存(flash)。在本实施例中,存储器21包括出厂区211、备份区212和升级区213。
在本实施例中,为实现防雷监控单元的远程升级,下位机20包括两套程序:第一套程序作为出厂的原始程序(下文称为出厂程序);第二套程序为IAP(In ApplicationProgramming,应用编程)程序,是需要升级的程序(可称为在线升级程序,下文称为升级程序),具体为升级程序固件。
本实施例还提供一种远程升级方法,该方法可以应用于上述远程升级系统。图3示出前述远程升级系统的信息交互图,步骤A1至步骤A5具体应用于下位机20,步骤C1至步骤C4具体应用于上位机10,其中,步骤C1和步骤C2是可选的。
步骤C1、接收用户发出的升级指令,升级指令与下位机20对应。
运行于上位机10的应用程序提供一栏专门供远程升级的界面,能实现添加新的升级程序固件,供选择升级;此外,前述界面还具有升级的日记,比如:升级对象,升级的时间、状态、版本等信息。
当前述应用程序确定要升级的防雷监控单元,比如确定防雷监控单元的ID(Identification,标识),具体可以由用户选定要升级的防雷监控单元的ID;前述应用程序具有对应的升级程序,比如由用户添加新的升级程序固件;然后,接收用户发出的升级指令,比如由用户点击升级向应用程序发出升级指令,该升级指令是用于对选定的防雷监控单元(下位机20)进行升级的。
步骤C2、响应于接收到升级指令,接收下位机20发送的心跳包。
完成步骤C1之后,上位机10已接收到升级指令,前述应用程序已准备就绪,随后上位机10接收与升级指令对应的对象单元(也即防雷监控单元)定时上传的心跳包,其中,接收到心跳包表明防雷监控单元的下位机20在正常工作。
步骤C3、发送升级通信数据,升级通信数据包括升级程序。
应用程序接收到下位机20的心跳包后,将升级包(包含升级程序)加上协议头和协议尾作为升级通信数据发送给下位机20。相应的,下位机20执行步骤A1。
步骤A1、接收升级通信数据,其中,升级通信数据包括升级程序。
如前所述,上位机10通过应用程序向下位机20发送升级通信数据,相应的,下位机20接收该升级通信数据。
图4是本实施例提供的远程升级方法的步骤A1的流程示意图,在本实施例中,步骤A1具体包括步骤A11和步骤A12。
步骤A11、接收升级通信数据的协议头以及升级程序,并缓存升级程序。
如前所述,上位机10向下位机20(MCU)发送的升级通信数据包括协议头、升级程序和协议尾。下位机20在正常运行的过程中,当从上位机10接收到与升级程序对应的协议头,把对应的代码存放在其RAM(Random Access Memory,随机存取存储器)的缓存中,直到结尾的协议尾,从而实现对升级程序进行缓存。
步骤A12、若在设定时间内接收到升级通信数据的协议尾,则对升级程序进行校验,得到校验结果。
上位机10发送升级通信数据是需要时间的,如果期间出现丢码或者错误,下位机20是无法接收到完整的升级通信数据的。为此,在本实施例中,下位机20设定接收升级通信数据的协议尾的时间,如果在设定时间内接收到升级通信数据的协议尾,表明该此次通信是成功的。在接收到升级通信数据的协议尾之后,下位机20对其中的升级程序进行校验。具体而言,前述步骤A12包括步骤A121和步骤A122。图5是本实施例提供的远程升级方法的步骤A12的流程示意图。
步骤A121、生成升级程序的实时校验码。
下位机20在接收到完整的升级通信数据之后,对其中的升级程序做校验,具体是做CRC32(A cyclic redundancy check 32,循环冗余校验)校验,生成对应的实时校验码。
步骤A122、将实时校验码与预设校验码进行比对,得到校验结果。
生成升级程序的实时校验码之后,将实时校验码与预设校验码进行比对。其中,预设校验码是包含在升级通信数据中的,该预设校验码与升级程序共同作为升级包;示例的,前述预设校验码是升级包的最后4个字节,其中,升级通信数据带4字节的CRC32校验码作为后缀的bin格式文件,如此,将实时校验码与接收到的升级包的最后4个字节做比较,将比较结果作为校验结果。
步骤A2、存储升级程序并将升级标志的值写为第一预设值。
如前所述,下位机20的存储器21(比如flash)的存储空间包括三部分,分别为出厂区211、备份区212和升级区213,出厂区211用于运行出厂原始程序,备份区212用于接收升级程序固件,升级区213用于升级程序固件的运行空间。
下位机20在接收到协议头后,把协议尾之前的代码保存到存储器21的备份区212,以便做分析处理;如此,步骤A2是将升级程序存储于备份区212,并将升级标志的值写为第一预设值。具体的,若前述校验结果为校验通过,表示接收成功,则将升级程序存储于备份区212;其中,校验通过是指实时校验码与接收到的升级包的最后4个字节一致,下位机20把缓存中的升级程序擦写到备份区212,使得缓存可保存新的升级程序。同时,下位机20在指定存储空间将升级标志的值写为第一预设值,其中,前述指定存储空间可以是存储器21的标志区214,也可以是存在于存储器21之外的存储空间。示例的,将升级标志的值写为1,也即第一预设值为1。下位机20在存储升级程序并将升级标志的值写为第一预设值之后,向上位机10发送返回数据,反馈此次通信成功。相应的,上位机10执行步骤C4,接收该返回数据并进行保存,方便查看。
步骤A3、重启下位机并检测升级标志的值。
在完成存储升级程序之后,具体是在备份区212完成升级程序的备份之后,下位机20复位重启,结束正在运行的程序,为后续的升级做准备。完成重启后,下位机20先检测升级标志的值。
步骤A4、若升级标志的值为第一预设值,则获取升级程序并将升级标志的值写为第二预设值。
下位机20重启后,若检测到的升级标志的值为1(第一预设值),则获取升级程序,以进行后续处理,同时改写升级标志的值,具体是将升级标志的值写为第二预设值,比如写为2。
在本实施例中,下位机20重启后,检测到升级标志的值为1(第一预设值),将备份区212的代码复制到升级区213,从而从备份区212获取到升级程序,然后将升级标志的值写为第二预设值。
步骤A5、运行升级程序。
下位机20重启之后获取到升级程序,运行该升级程序,实现升级。
在本实施例中,将升级程序存储于升级区213之后,下位机20跳转到升级区213运行升级程序,运行存储于升级区213的升级程序,从而完成升级,此时升级程序正常运行。此外,下位机20向上位机10发送表示完成升级的数据;相应的,上位机10执行步骤C5,接收表示完成升级的数据并保存,便于查看。
根据上述可知,下位机20接收升级通信数据,其中,该升级通信数据包括升级程序;下位机20将接收到的升级程序存储于备份区212,并将升级标志的值写为第一预设值;下位机20重启并检测升级标志的值;若升级标志的值为第一预设值,则将存储于备份区212的升级程序存储于下位机的升级区213,并将升级标志的值写为第二预设值;其中,升级标志为第二预设值,表示升级区213存储有升级程序,那么就可以运行存储于升级区213的升级程序;第一预设值对应于备份区212存储有接收到的升级程序,第二预设值对应于重启下位机20后将存储于备份区212的升级程序复制到升级区213,能实现可靠地不断接收升级程序并完成升级,这样能在后期维护稳定地进行多次升级;这样能够保证远程升级的正确进行,实现可靠的远程升级,能避免技术人员赶赴现场处理,能节省后期维护成本。
参考图6,本实施例的上位机10包括模式开关101。模式开关101是模式选择开关,具体可以是拨位开关,比如双拨位开关。在其他一些实施例中,模式开关101与上位机10是远程升级系统的两个独立组成部分。
那么,本实施例提供的远程升级方法,图7是本实施例提供的远程升级方法的逻辑图,参考图7,在步骤A3的检测升级标志的值之前,还包括步骤B1。
步骤B1、获取模式开关101的状态。
模式开关101具有至少两个状态,分别对应正常模式和非正常模式。正常模式是默认状态,表示下位机20正常运行。非正常模式由用户触发,比如将模式开关101的档位拨动到与非正常模式对应的档位,表示升级过程中出现问题,比如断电或者死机。步骤B1具体包括步骤B11和步骤B12。
步骤B11、接收用户通过触发模式开关发送的状态切换指令。
用户在发现升级过程中出现问题,拨动上位机10的模式开关101,向上位机10发送状态切换指令,比如由正常模式切换为非正常模式。上位机10则接收该状态切换指令并发送给下位机20。
步骤B12、根据状态切换指令生成模式开关的状态。
下位机20接收到上位机10发送的状态切换指令之后,根据该状态切换指令生成模式开关101的状态。
当然,也可以是由上位机10根据接收到的状态切换指令生成模式开关的状态,然后将模式开关的状态发送给下位机20,如此,下位机20获取到模式开关101的状态。
参考图7,下位机20重启上电开机后,都是默认运行出厂程序,然后检测模式开关101的状态。对应的,步骤A3中的检测升级标志的值,具体包括:若模式开关的状态为正常模式,则检测升级标志的值。而后执行前述步骤A4和步骤A5。
对应的,前述步骤A5(运行存储于升级区的升级程序)具体为:参考图6,若升级标志的值不为第一预设值,而是为第二预设值,则运行存储于升级区213的升级程序。
在完成获取模式开关101的状态之后,检测到升级标志的值不是第一预设值,而是第二预设值而,则表示升级区213存储有新的升级程序,需要进行升级。那么,下位机20就跳转到升级区213运行升级程序。
对应的,本实施例提供的远程升级方法还包括步骤B2。
步骤B2、若升级标志的值既不为第一预设值,也不为第二预设值,则运行存储于出厂区211的出厂程序,以接收升级通信数据。
在下位机20升级的过程中可能会出现各种干扰,导致运行升级程序出现错误。为避免这种可能,上位机10设有模式开关101,结合本实施例提供的远程升级方法可以选择正常模式或运行出厂程序。具体而言,参考图6,在模式开关的状态为正常模式的情况下,如果升级标志的值既不为第一预设值,也不为第二预设值,则表明升级过程出现问题,为此,下位机20运行存储于出厂区211的出厂程序,接收升级通信数据,重新开始升级或者开始新的一轮升级,能在后期维护实现多次升级。
此外,参考图7,如果模式开关的状态为非正常模式,表示升级过程中出现问题。为确认升级过程中是否发生错误,检测升级标志的值是否为第二预设值。若升级标志的值是第二预设值,表示虽然升级过程发生了问题,但升级区存储有需要待更新的升级程序,此时执行前述步骤A5(运行存储于升级区的升级程序)即可。若升级标志的值不是第二预设值,表示升级过程发生了问题且升级区中的数据发生丢失,为了进行正常的升级,运行存储于出厂区211的出厂程序,消除问题,以接收升级通信数据。这样,使得系统具有很好的错误恢复能力。
可选的,前述步骤A1还包括步骤A13。
步骤A13、若在设定时间内没有接收到升级通信数据的协议尾,则判定为远程升级失败并返回重新接收协议头。
若在设定时间内收不到协议尾,则认为此次通信(远程升级)失败,下位机20向上位机10(即后台服务器)返回失败信号,并返回重新接收协议头。上位机10则接收下位机20反馈回来的信号,对这些信号做分析处理,保存处理后的数据,实现在应用程序可显示当前数据和历史数据,比如显示接收升级通信数据的过程中有丢码或错误。
对应于上文实施例所述方法,图8示出本申请的实施例提供的远程升级装置的结构框图,该装置应用于下位机20。为了便于说明,仅示出与本申请实施例相关的部分。
参考图8,该装置包括接收模块1、备份模块2、处理模块3、升级程序获取模块4、以及升级程序运行模块5。
接收模块1,用于:接收升级通信数据,升级通信数据包括升级程序。
备份模块2,用于:存储升级程序并将升级标志的值写为第一预设值。
处理模块3,用于:重启下位机20并检测升级标志的值。
升级程序获取模块4,用于:若升级标志的值为第一预设值,则获取所述升级程序并将升级标志的值写为第二预设值。
升级程序运行模块5,用于:运行升级程序。
在一些实施例中,备份模块2,具体用于:将升级程序存储于备份区212,并将升级标志的值写为第一预设值。升级程序获取模块4,具体用于:若升级标志的值为第一预设值,则将存储于备份区212的升级程序存储于升级区213,并将升级标志的值写为第二预设值。升级程序运行模块5,具体用于:运行存储于升级区的升级程序。
图9是本申请一实施例提供的远程升级装置的接收模块的结构示意图,参考图9,接收模块1包括接收子模块11、校验子模块12和反馈子模块13。其中,反馈子模块13是可选的。
接收子模块11,用于:接收升级通信数据的协议头以及升级程序,并存储升级程序。
校验子模块12,用于:若在设定时间内接收到升级通信数据的协议尾,则对升级程序进行校验,得到校验结果。
反馈子模块13,用于:若在设定时间内没有接收到升级通信数据的协议尾,则判定为远程升级失败并返回重新接收协议头。
相应的,备份模块2具体用于:若校验结果为校验通过,则将升级程序存储于备份区212。
图10是本申请一实施例提供的远程升级装置的校验子模块的结构示意图,参考图10,校验子模块12包括校验码生成单元121和比对单元122。
校验码生成单元121,用于生成升级程序的实时校验码。
比对单元122,用于:将实时校验码与预设校验码进行比对,得到校验结果。
在一些实施例中,接收子模块11具体用于对升级程序进行缓存。备份模块2具体用于:若校验结果为校验通过,则将升级程序擦写到备份区。
图11是本申请一实施例提供的远程升级装置的一种变型方式的结构示意图,参考图11,本实施例提供的远程升级装置还包括状态获取模块1B。
状态获取模块1B,用于获取模式开关101的状态。
处理模块3具体用于:若模式开关101的状态为正常模式,则检测升级标志的值。
升级程序运行模块5具体用于:若升级标志的值不为第一预设值,而是为第二预设值,则运行存储于升级区的升级程序。
图12是本申请一实施例提供的远程升级装置的另一种变型方式的结构示意图,参考图12,本实施例提供的远程升级装置还包括重置模块2B。
重置模块2B,用于:若升级标志的值既不为第一预设值,也不为第二预设值,则运行存储于出厂区的出厂程序,以接收升级通信数据。
重置模块2B,还用于:若模式开关101的状态为非正常模式,则运行存储于出厂区的出厂程序,以接收升级通信数据。
对应于上文实施例所述方法,图13示出本申请的实施例提供的远程升级装置的结构框图,该装置应用于上位机10。为了便于说明,仅示出与本申请实施例相关的部分。
参考图13,该装置包括升级指令接收模块1C、心跳包接收模块2C、发送模块3C和返回数据接收模块4C。其中,升级指令接收模块1C和心跳包接收模块2C是可选的。
升级指令接收模块1C,用于:接收用户发出的升级指令,升级指令与下位机20对应。
心跳包接收模块2C,用于:响应于接收到升级指令,接收下位机20发送的心跳包。
发送模块3C,用于:发送升级通信数据,其中,升级通信数据包括升级程序。发送模块3C具体用于:响应于接收到心跳包,发送升级通信数据。
返回数据接收模块4C,用于:接收下位机20发送的返回数据,返回数据是由下位机20在存储升级程序并将升级标志的值写为第一预设值之后发送的。返回数据接收模块4C,还用于:接收表示完成升级的数据,该数据由下位机20完成升级后向上位机10发送。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
本申请的实施例只需在后台的应用程序界面就可以实现下位机20的程序升级更新,即远程升级。具体而言,在不改变系统(比如防雷监测系统)的硬件的基础上,通过上位机和下位机的约定协议,修改上位机和下位机的程序,在应用程序上实现把下位机20要更新的升级程序固件,直接下载到下位机20,实现远程升级。如此,通过软件即可实现程序升级,能节省硬件开支;需更新下位机20的程序时,只需在后台应用程序上简单操作即可,能提高反应速度和效率;后期维护时,技术人员不必每次都千里迢迢的赶赴现场处理,来回奔波,能节省大量的差旅费以及人工费,能节省后期维护成本。本申请的实施例能应用于防雷物联网监测系统、或者工业物联网监测系统等。
图14为本申请一实施例提供的终端设备的结构示意图。如图14所示,该实施例的终端设备14包括:至少一个处理器140(图14中仅示出一个)处理器、存储器141以及存储在存储器141中并可在至少一个处理器140上运行的计算机程序142;处理器140执行计算机程序142时实现上述任意各个方法实施例中的步骤。
终端设备14可以是防雷监控单元。该终端设备可包括,但不仅限于,处理器140和存储器141。本领域技术人员可以理解,图14仅仅是终端设备的举例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。
处理器140可以是中央处理单元(Central Processing Unit,CPU),该处理器140还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器141在一些实施例中可以是终端设备14的内部存储单元,例如终端设备的硬盘或内存。存储器141在另一些实施例中也可以是终端设备的外部存储设备,例如终端设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器141还可以既包括终端设备的内部存储单元也包括外部存储设备。存储器141用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器141还可以用于暂时地存储已经输出或者将要输出的数据。
示例性的,计算机程序142可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器141中,并由处理器140执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序142在终端设备14中的执行过程。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
前述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于计算机可读存储介质中;该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请的实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请的实施例提供一种计算机程序产品,当计算机程序产品在终端设备比如防雷监控单元上运行时,使得防雷监控单元可实现上述各个方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
前述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:资源包更新方法、装置、设备及存储介质