CN114020293A - 软件更新方法、装置和电子设备 - Google Patents
软件更新方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114020293A CN114020293A CN202111287867.6A CN202111287867A CN114020293A CN 114020293 A CN114020293 A CN 114020293A CN 202111287867 A CN202111287867 A CN 202111287867A CN 114020293 A CN114020293 A CN 114020293A
- Authority
- CN
- China
- Prior art keywords
- child node
- software package
- updated
- update
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种软件更新方法、装置和电子设备,接收服务器发送的针对子节点的软件包的更新数据;其中的更新数据包括:子节点更新版本的软件包;对更新数据进行校验处理,确定更新数据是否通过校验;如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。该方式中,域控制器的主节点分别与每个子节点通信连接,可以根据接收到的更新数据更新所有待更新的子节点的软件包,简化了服务器的软件管理,同时降低了服务器的开发难度。
Description
技术领域
本发明涉及车载软件更新技术领域,尤其是涉及一种软件更新方法、装置和电子设备。
背景技术
传统车辆的电子电气架构是分布式的,包括多个单一的电子控制单元,每个电子控制单元具有一个功能,即对应一个软件包。较多数量的电子控制单元使得设计车辆的控制逻辑十分复杂。而且,传统车辆的电子电气架构下,每个电子控制单元分别与整个车辆的网络连接,当车辆中的软件需要升级时,需要对每个电子控制单元的软件包进行升级,该方式中,针对软件包的管理较为复杂,增加了升级服务器的开发难度;另外,需要按照一定的顺序依次对每个电子控制单元的软件包执行升级处理,升级时间较长。
发明内容
有鉴于此,本发明的目的在于提供一种软件更新方法、装置和电子设备,以简化服务器的软件管理,同时降低服务器的开发难度。
第一方面,本发明实施例提供了一种软件更新方法,方法应用于域控制器的主节点;域控制器包括至少一个子节点;主节点分别与服务器和子节点通信连接;每个子节点对应有一个软件包;方法包括:接收服务器发送的针对子节点的软件包的更新数据;其中,更新数据包括:子节点更新版本的软件包;对更新数据进行校验处理,确定更新数据是否通过校验;如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。
进一步的,更新数据还包括:子节点的校验信息,和子节点的json文件;对更新数据进行校验处理,确定更新数据是否通过校验的步骤,包括:对更新数据进行解压,得到子节点的校验信息json文件;如果子节点的校验信息与子节点的预设校验信息一致,校验子节点的json文件,判断json文件是否通过校验;如果子节点的校验信息与子节点的预设校验信息不一致,向服务器上报更新错误的提示信息。
进一步的,校验子节点的json文件,判断json文件是否通过校验的步骤,包括:解析json文件,得到子节点解析结果;解析结果包括:子节点的软件包的名称、子节点的标识、子节点更新版本的软件包的更新版本信息以及兼容性信息;根据子节点的软件包的名称和子节点的标识,从至少一个子节点中确定目标子节点;获取目标子节点的软件包的当前版本信息;根据兼容性信息,判断更新版本信息与当前版本信息是否兼容;如果是,判断json文件通过校验;如果否,向服务器上报更新错误的提示信息。
进一步的,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包的步骤,包括:通过多线程的方式,将每个子节点更新版本的软件包并行传输至对应的子节点,以使子节点根据接收到的更新版本的软件包,更新当前版本的软件包。
进一步的,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包的步骤之后,方法还包括:获取更新后的子节点的软件包的版本信息;如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息一致,则完成软件更新操作;如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息不一致,向服务器上报更新错误的提示信息。
进一步的,更新数据通过下述方式得到:通过服务器的更新脚本,根据域控制器中待更新的子节点的软件包,生成json文件;计算待更新的子节点的软件包的校验信息;根据json文件、校验信息,以及待更新的子节点更新版本的软件包,生成更新数据。
第二方面,本发明实施例提供了一种软件更新装置,装置设置于域控制器的主节点;域控制器包括至少一个子节点;主节点分别与服务器和子节点通信连接;每个子节点对应有一个软件包;装置包括:接收模块,用于接收服务器发送的针对子节点的软件包的更新数据;其中,更新数据包括:子节点更新版本的软件包;校验模块,用于对更新数据进行校验处理,确定更新数据是否通过校验;更新模块,用于如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。
进一步的,更新数据还包括:子节点的校验信息,和子节点的json文件;校验模块还用于:对更新数据进行解压,得到子节点的校验信息json文件;如果子节点的校验信息与子节点的预设校验信息一致,校验子节点的json文件,判断json文件是否通过校验;如果子节点的校验信息与子节点的预设校验信息不一致,向服务器上报更新错误的提示信息。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现第一方面任一项的软件更新方法。
第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现第一方面任一项的软件更新方法。
本发明实施例带来了以下有益效果:
本发明提供了一种软件更新方法、装置和电子设备,接收服务器发送的针对子节点的软件包的更新数据;其中的更新数据包括:子节点更新版本的软件包;对更新数据进行校验处理,确定更新数据是否通过校验;如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。该方式中,域控制器的主节点分别与每个子节点通信连接,可以根据接收到的更新数据更新所有待更新的子节点的软件包,简化了服务器的软件管理,同时降低了服务器的开发难度。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件更新方法的流程图;
图2为本发明实施例提供的一种具体的软件更新方法的流程图;
图3为本发明实施例提供的一种软件更新装置的结构示意图;
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前传统车辆的电子电气构架是分布式的,包括多个单一的电子控制单元,每个电子控制单元具有一个功能,即对应一个软件包。通常一辆车会使用超过100个电子控制单元,较多数量的电子控制单元使得设计车辆的控制逻辑十分复杂。传统电子电器架构下的每个电子控制单元都直接与整车的网络连接,可以对每个电子控制单元进行单独的升级更新,每个电子控制单元的软件可以单独管理。但是,整车有较多的电子控制单元,每个电子控制单元都对应一个软件包,软件包的管理复杂,增加了服务器的开发难度。基于此,本发明实施例提供的一种软件更新方法、装置和电子设备,该技术可以应用在具有控制功能的车辆,尤其可以应用车辆的域控制器中。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种软件更新方法进行详细介绍,该方法应用于域控制器的主节点;域控制器包括至少一个子节点;主节点分别与服务器和子节点通信连接;每个子节点对应有一个软件包;其中的服务器可以是OTA(Over The Air,空中升级)服务器,如图1所示,该方法包括如下步骤:
步骤S102,接收服务器发送的针对子节点的软件包的更新数据;其中,更新数据包括:子节点更新版本的软件包;
上述子节点可以为待更新的子节点,也可以为域内的所有子节点。上述更新数据包括域控制器中待更新的子节点的更新版本的软件包,也可以包括域控制器中所有子节点的更新版本的软件包;可以理解,域控制器内的子节点的更新数据会作为一个整体发送给主节点。
其中,更新数据的生成过程通过服务器实现,具体的,通过服务器根据域控制器中待更新的子节点的软件包,生成json文件;计算待更新的子节点的软件包的校验信息;根据json文件、校验信息,以及待更新的子节点更新版本的软件包,生成更新数据。
其中的json文件包括待更新的子节点的软件包名称、节点设备ID(IdentityDocument,身份标识号)、软件包的更新版本信息,软件版本的兼容性信息等。实际实现时可以通过服务器中设置的更新数据生成脚本,根据域控制器中待更新的子节点的软件包自动生成json文件;通过更新数据生成脚本计算待更新的子节点的软件包的md5sum,得到待更新的子节点的软件包的校验信息,最后通过更新数据生成脚本将json文件、校验信息,以及待更新的子节点更新版本的软件包进行压缩处理,生成上述更新数据。将生成的更新数据通过网络传输至域控制器的主节点。
步骤S104,对更新数据进行校验处理,确定更新数据是否通过校验;
为了确定更新数据中与子节点相关的数据,比如数据摘要(或报文摘要)、子节点的名称等,与域控制器中预先设置的信息一致,避免发生更新错误的情况。首先主节点在接收到更新数据后,先对更新数据进行解压,然后根据解压结果确定是否与域控制器中的子节点的信息一致,如果一致,确定更新数据通过校验,执行步骤S106;如果不一致,确定更新数据没有通过校验,则可以向服务器上报更新错误。
步骤S106,如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。
具体的,可以将每个子节点更新版本的软件包,根据子节点的标识,同时发送至对应的子节点,子节点通过接收到的软件包,对当前软件包进行更新,最后得到更新后的软件。
本发明实施例提供了一种软件更新方法,接收服务器发送的针对子节点的软件包的更新数据;其中的更新数据包括:子节点更新版本的软件包;对更新数据进行校验处理,确定更新数据是否通过校验;如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。该方式中,域控制器的主节点分别与每个子节点通信连接,可以根据接收到的更新数据更新所有待更新的子节点的软件包,简化了服务器的软件管理,同时降低了服务器的开发难度。
本实施例还提供了另一种软件更新方法,本实施例在上述实施例的基础上实现,本实施例主要描述对更新数据进行校验处理,确定更新数据是否通过校验的步骤的具体实现过程(通过步骤202-204实现),以及将每个节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包的步骤的具体实现过程(通过步骤205实现)。具体包括:
步骤201,接收服务器发送的针对子节点的软件包的更新数据;其中,更新数据包括:子节点更新版本的软件包;
上述更新数据还包括:子节点的校验信息,和子节点的json文件;其中的校验信息通常是服务器的更新数据生成脚本通过信息摘要算法计算得到的,上述校验信息可以表示为md5sum。上述json文件为可配置的json文件,具体可以使用json文件配置方式,使得软件更新过程可以配置化,也适用于后续更新功能的扩展和兼容。例如增加某一功能,可以通过增加某一字段的方式实现,但是并不影响原有的软件更新功能的使用。
步骤202,对更新数据进行解压,得到子节点的校验信息和json文件;
主节点接收到更新数据后,对更新数据进行解压,可以得到校验信息和json文件,首先对校验信息进行验证,然后对json文件进行验证。
步骤203如果子节点的校验信息与子节点的预设校验信息一致,校验子节点的json文件,判断json文件是否通过校验;
步骤204,如果子节点的校验信息与子节点的预设校验信息不一致,向服务器上报更新错误的提示信息;
上述子节点的预设校验信息通常是预先生成,与服务器生成的校验信息的方式一致,都是通过信息摘要算法得到的。具体实现时,可以对比子节点的校验信息与子节点的预设校验信息是否一致,如果一致,则说明接收到的更新数据没有被篡改。然后为了进一步确定数据内容是否有误,需要校验子节点的json文件,具体可以将接收到的更新数据的json文件与域控制器的子节点的相关数据进行对比,确认json文件是否通过校验。
如果不一致,则可以向服务器上报更新错误的提示信息,该错误提示信息可以为校验信息未通过,以使服务器重新生成更新数据,然后发送至主节点。
一种可能的实施方式:
(1)解析json文件,得到子节点解析结果;解析结果包括:子节点的软件包的名称、子节点的标识、子节点更新版本的软件包的更新版本信息以及兼容性信息;
(2)根据子节点的软件包的名称和子节点的标识,从至少一个子节点中确定目标子节点;获取目标子节点的软件包的当前版本信息;
(3)根据兼容性信息,判断更新版本信息与当前版本信息是否兼容;如果是,判断json文件通过校验;如果否,向服务器上报更新错误的提示信息。
json文件包括较多的子节点的相关信息,首先解析json文件,得到子节点的软件包的名称、子节点的标识、子节点更新版本的软件包的更新版本信息以及兼容性信息。然后,根据上述子节点的软件包的名称和子节点的标识,从域控制器包括的至少一个子节点中,查询与该软件包的名称和子节点的标识相同的目标子节点,然后查询该目标子节点的软件包的当前版本信息。上述过程主节点可以同时针对多个子节点的软件包的名称和子节点的标识,确定对应的多个目标子节点,同时获取多个目标子节点的软件包的当前版本信息。
为了确定域控制器中待更新的子节点的软件包的当前版本信息,与该子节点的软件包的更新版本信息不一致,同时,更新版本信息与当前版本信息是否兼容。本实施例中,根据兼容性信息,判断更新版本信息与当前版本信息是否兼容;如果是,判断json文件通过校验,说明可以对该子节点进行软件更新;如果否,向服务器上报更新错误的提示信息。
步骤205,如果通过校验,通过多线程的方式,将每个子节点更新版本的软件包并行传输至对应的子节点,以使子节点根据接收到的更新版本的软件包,更新当前版本的软件包。
具体的,主节点通过多线程的方式,使用多种通信方式,比如CAN(ControllerArea Network,控制器局域网络)、以太网、SPI(Serial Peripheral Interface,串行外设接口)、主节点本地等,并行将每个子节点更新版本的软件包传输至对应的子节点;通过子节点根据接收到的更新版本的软件包,更新当前版本的软件包。该方式中,通过并行数据传输和升级的方式可以有效减少升级耗时。
更新完成每个子节点的软件包后,为了进一步确认每个子节点的软件包更新正确,一种可能的实施方式:
步骤206,获取更新后的子节点的软件包的版本信息;
步骤207,如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息一致,则完成软件更新操作;
步骤208,如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息不一致,向服务器上报更新错误的提示信息。
通过查询的方式,根据子节点的节点名称和节点标识,查询更新后的子节点的软件包的版本信息。将更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息进行对比,如果一致,则完成域控制器中软件的更新,如果不一致,则向服务器上报更新错误的提示信息,该提示信息可以包括更新版本错误等提示,以使服务器重新生成更新数据,发送至主节点。
上述方式中,通过更新数据可以管理域内所有子节点的软件包的更新,以及更新数据内文件结构,有效的降低了服务的软件管理复杂度。通过json文件描述所有子节点的软件包的信息,且json文件可以配置,可以使得整个更新过程也是可以配置化,也适用于后续更新功能的扩展和兼容。例如增加某一功能,可以通过增加某一字段的方式实现,但是并不影响原有的更新功能使用。域控制器内通过并行方式升级各子节点可以有效减少更新耗时。
参见图2所示的一种具体的软件更新方法,其中的升级包对应前述的更新数据,首先服务器先利用更新数据制作脚本根据各个子节点的软件包生成json文件,文件中包含了所有节点升级包名称、节点设备ID、软件版本信息、兼容性信息等;然后利用更新数据制作脚本计算所有升级包的md5sum,将所有子节点的软件包、json文件、md5sum文件压缩为一个DCU升级包(对应前述的更新数据)。制作完成升级包以后,将升级包发送至主节点,主节点对该升级包进行校验,首先对升级包进行解压,然后点对比md5sum是否一致;如果一致,主节点解析json文件,并校验各升级包域json文件信息的一致性;查询各子节点的版本信息,校验升级包的兼容性;如果都一致,则进行数据传输同时子节点进行软件刷写,即上述将更新版本的软件包发送至子节点,以使子节点对当前版本进行更新。
更新完成后,查询更新后的软件包的版本信息,如果与预设的更新版本信息一致,则结束,如果不一致,则上报错误,即向服务器发送错误提示信息。
对应上述的方法实施例,本发明实施例提供了一种软件更新装置,该装置设置于域控制器的主节点;域控制器包括至少一个子节点;主节点分别与服务器和子节点通信连接;每个子节点对应有一个软件包;如图3所示,该装置包括:
接收模块31,用于接收服务器发送的针对子节点的软件包的更新数据;其中,更新数据包括:子节点更新版本的软件包;
校验模块32,用于对更新数据进行校验处理,确定更新数据是否通过校验;
更新模块33,用于如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。
本发明实施例提供了一种软件更新装置,接收服务器发送的针对子节点的软件包的更新数据;其中的更新数据包括:子节点更新版本的软件包;对更新数据进行校验处理,确定更新数据是否通过校验;如果通过校验,将每个子节点更新版本的软件包分别发送至对应的子节点,以更新子节点当前版本的软件包。该方式中,域控制器的主节点分别与每个子节点通信连接,可以根据接收到的更新数据更新所有待更新的子节点的软件包,简化了服务器的软件管理,同时降低了服务器的开发难度。
进一步的,上述更新数据还包括:子节点的校验信息,和子节点的json文件;上述校验模块还用于:对更新数据进行解压,得到子节点的校验信息json文件;如果子节点的校验信息与子节点的预设校验信息一致,校验子节点的json文件,判断json文件是否通过校验;如果子节点的校验信息与子节点的预设校验信息不一致,向服务器上报更新错误的提示信息。
进一步的,上述校验模块还用于:解析json文件,得到子节点解析结果;解析结果包括:子节点的软件包的名称、子节点的标识、子节点更新版本的软件包的更新版本信息以及兼容性信息;根据子节点的软件包的名称和子节点的标识,从至少一个子节点中确定目标子节点;获取目标子节点的软件包的当前版本信息;根据兼容性信息,判断更新版本信息与当前版本信息是否兼容;如果是,判断json文件通过校验;如果否,向服务器上报更新错误的提示信息。
进一步的,上述更新模块还用于:通过多线程的方式,将每个子节点更新版本的软件包并行传输至对应的子节点,以使子节点根据接收到的更新版本的软件包,更新当前版本的软件包。
进一步的,上述装置还包括更新确认模块,用于:获取更新后的子节点的软件包的版本信息;如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息一致,则完成软件更新操作;如果更新后的子节点的软件包的版本信息与更新数据中包括的更新版本信息不一致,向服务器上报更新错误的提示信息。
进一步的,上述更新数据通过下述方式得到:通过服务器的更新脚本,根据域控制器中待更新的子节点的软件包,生成json文件;计算待更新的子节点的软件包的校验信息;根据json文件、校验信息,以及待更新的子节点更新版本的软件包,生成更新数据。
本发明实施例提供的软件更新装置,与上述实施例提供的软件更新方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述软件更新方法。
参见图4所示,该电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述软件更新方法。
进一步地,图4所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
其中,存储器101可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述软件更新方法。
本发明实施例所提供的软件更新方法、装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种软件更新方法,其特征在于,所述方法应用于域控制器的主节点;所述域控制器包括至少一个子节点;所述主节点分别与服务器和所述子节点通信连接;每个所述子节点对应有一个软件包;所述方法包括:
接收所述服务器发送的针对所述子节点的软件包的更新数据;其中,所述更新数据包括:所述子节点更新版本的软件包;
对所述更新数据进行校验处理,确定所述更新数据是否通过校验;
如果通过校验,将每个所述子节点更新版本的软件包分别发送至对应的子节点,以更新所述子节点当前版本的软件包。
2.根据权利要求1所述的方法,其特征在于,所述更新数据还包括:所述子节点的校验信息,和所述子节点的json文件;
所述对所述更新数据进行校验处理,确定所述更新数据是否通过校验的步骤,包括:
对所述更新数据进行解压,得到所述子节点的校验信息和json文件;
如果所述子节点的校验信息与所述子节点的预设校验信息一致,校验所述子节点的json文件,判断所述json文件是否通过校验;
如果所述子节点的校验信息与所述子节点的预设校验信息不一致,向所述服务器上报更新错误的提示信息。
3.根据权利要求2所述的方法,其特征在于,校验所述子节点的json文件,判断所述json文件是否通过校验的步骤,包括:
解析所述json文件,得到所述子节点解析结果;所述解析结果包括:所述子节点的软件包的名称、所述子节点的标识、所述子节点更新版本的软件包的更新版本信息以及兼容性信息;
根据所述子节点的软件包的名称和所述子节点的标识,从所述至少一个子节点中确定目标子节点;获取所述目标子节点的软件包的当前版本信息;
根据所述兼容性信息,判断所述更新版本信息与所述当前版本信息是否兼容;如果是,判断所述json文件通过校验;如果否,向所述服务器上报更新错误的提示信息。
4.根据权利要求1所述的方法,其特征在于,将每个所述子节点更新版本的软件包分别发送至对应的子节点,以更新所述子节点当前版本的软件包的步骤,包括:
通过多线程的方式,将每个所述子节点更新版本的软件包并行传输至对应的子节点,以使所述子节点根据接收到的更新版本的软件包,更新当前版本的软件包。
5.根据权利要求1所述的方法,其特征在于,将每个所述子节点更新版本的软件包分别发送至对应的子节点,以更新所述子节点当前版本的软件包的步骤之后,所述方法还包括:
获取更新后的所述子节点的软件包的版本信息;
如果所述更新后的所述子节点的软件包的版本信息与所述更新数据中包括的更新版本信息一致,则完成软件更新操作;
如果所述更新后的所述子节点的软件包的版本信息与所述更新数据中包括的更新版本信息不一致,向所述服务器上报更新错误的提示信息。
6.根据权利要求1所述的方法,其特征在于,所述更新数据通过下述方式得到:
通过所述服务器的更新脚本,根据所述域控制器中待更新的子节点的软件包,生成json文件;
计算所述待更新的子节点的软件包的校验信息;
根据所述json文件、所述校验信息,以及所述待更新的子节点更新版本的软件包,生成所述更新数据。
7.一种软件更新装置,其特征在于,所述装置设置于域控制器的主节点;所述域控制器包括至少一个子节点;所述主节点分别与服务器和所述子节点通信连接;每个所述子节点对应有一个软件包;所述装置包括:
接收模块,用于接收所述服务器发送的针对所述子节点的软件包的更新数据;其中,所述更新数据包括:所述子节点更新版本的软件包;
校验模块,用于对所述更新数据进行校验处理,确定所述更新数据是否通过校验;
更新模块,用于如果通过校验,将每个所述子节点更新版本的软件包分别发送至对应的子节点,以更新所述子节点当前版本的软件包。
8.根据权利要求7所述的装置,其特征在于,所述更新数据还包括:所述子节点的校验信息,和所述子节点的json文件;
所述校验模块还用于:对所述更新数据进行解压,得到所述子节点的校验信息json文件;如果所述子节点的校验信息与所述子节点的预设校验信息一致,校验所述子节点的json文件,判断所述json文件是否通过校验;如果所述子节点的校验信息与所述子节点的预设校验信息不一致,向所述服务器上报更新错误的提示信息。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-6任一项所述的软件更新方法。
10.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-6任一项所述的软件更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111287867.6A CN114020293A (zh) | 2021-11-02 | 2021-11-02 | 软件更新方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111287867.6A CN114020293A (zh) | 2021-11-02 | 2021-11-02 | 软件更新方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114020293A true CN114020293A (zh) | 2022-02-08 |
Family
ID=80059566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111287867.6A Pending CN114020293A (zh) | 2021-11-02 | 2021-11-02 | 软件更新方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114020293A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116088913A (zh) * | 2023-04-11 | 2023-05-09 | 北京集度科技有限公司 | 整车升级软件的集成设备、方法和计算机程序产品 |
-
2021
- 2021-11-02 CN CN202111287867.6A patent/CN114020293A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116088913A (zh) * | 2023-04-11 | 2023-05-09 | 北京集度科技有限公司 | 整车升级软件的集成设备、方法和计算机程序产品 |
CN116088913B (zh) * | 2023-04-11 | 2023-06-13 | 北京集度科技有限公司 | 整车升级软件的集成设备、方法和计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107992321B (zh) | Ecu软件更新方法、装置、车载t-box及车辆 | |
CN113342371B (zh) | 物联网设备升级*** | |
CN109658542B (zh) | 诊断参数数据校验方法、装置、车辆诊断设备和存储介质 | |
CN109683930B (zh) | 空调设备程序升级方法、装置、***和家电设备 | |
CN111522562B (zh) | 洗碗机软件烧录方法、装置及其设备 | |
CN111428269A (zh) | 数据访问方法、装置和终端设备 | |
CN109729517B (zh) | 通讯模块软件版本管理方法和*** | |
CN111857790A (zh) | 一种固件升级方法、装置及计算机设备 | |
CN112319146B (zh) | 胎压监测***的学习方法、装置、传感器、***及介质 | |
CN114020293A (zh) | 软件更新方法、装置和电子设备 | |
CN112783541A (zh) | 设备升级方法、装置及服务器 | |
CN114371855A (zh) | 车辆自动驾驶***的升级方法、***、装置及电子设备 | |
CN112131554B (zh) | 车载终端的安装识别方法、装置和车载终端 | |
CN110990046A (zh) | 一种基于动态文件的升级方法 | |
CN115687138A (zh) | 代码校验方法、装置及服务器 | |
CN110727456A (zh) | 应用程序补丁包的下载方法、装置、设备及*** | |
CN112965735B (zh) | 模型更新方法、装置、设备及计算机可读介质 | |
CN111736917B (zh) | 数据校验方法、装置、计算机设备和存储介质 | |
CN115174660A (zh) | 服务注册和发现的方法、装置、电子设备和存储介质 | |
CN114691174A (zh) | 一种车载软件升级方法、装置及设备 | |
CN111935251B (zh) | 区块链网络管理方法、网络、装置、设备及存储介质 | |
CN113271320B (zh) | 一种终端认证方法、装置、***、介质及设备 | |
CN115102856B (zh) | 一种物联网设备升级方法及*** | |
CN117573171A (zh) | 车辆***自动化升级方法、装置、电子设备和存储介质 | |
CN114666783A (zh) | 一种无线网络模组的升级方法、装置、终端以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |