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

软件兼容性验证方法及计算机可读存储介质与流程

2022-03-02 04:23:27 来源:中国专利 TAG:


1.本发明涉及汽车电控软件技术领域,特别涉及一种软件兼容性验证方法及计算机可读存储介质。


背景技术:

2.随着当代汽车电气功能日益增加,汽车各个电控模块的软件代码更新迭代需求越加强烈。所以汽车软件刷写技术已成为软件更新迭代必备方案。因此《iso14229-1道路车辆---统一诊断服务》给出了基于车辆uds诊断服务的软件刷新的一般流程,从而为规范制定者与软件开发者提供了一套车载电控模块软件更新的基准流程与结构框架。
3.为避免软件之间不匹配,每次升级都要把所有软件全部更新成最新版本也会造成不必要的时间浪费。
4.因此,需要一种在更新过程中电控单元集成有效的兼容性验证方法,既能够避免更新后非预期的软件不兼容问题又能够节省软件升级时间。但由于软件兼容性与实际软件逻辑相关,不同的软件架构下软件兼容性判别逻辑也是不尽相同。在没有完善的指导框架下全权由开发者自定,会导致软件兼容性判断质量无保证。


技术实现要素:

5.本发明解决的技术问题在于,提供了一种软件兼容性验证方法及计算机可读存储介质,能通过电控单元自身去执行兼容性判断,从而避免了因使用者不了解开发者信息而带来的误操作,导致升级完成后非预期的功能异常产生的问题。
6.本发明解决其技术问题是采用以下的技术方案来实现的:
7.一种软件刷新过程中的兼容性验证方法,包括:在接收到兼容性校验指令时,获取新软件的软件兼容性验证表;获取待验证软件的兼容性标识表,所述兼容性标识表包括:软件号、软件类型和发布日期;根据所述软件兼容性验证表与所述兼容性标识表进行验证;若验证通过,则反馈兼容性校验通过信息;若验证未通过,则反馈兼容性校验失败信息。
8.在本发明的较佳实施例中,上述软件兼容性验证表包括:软件标题、新软件版本属性、软件兼容性校验表;其中,所述软件兼容性校验表包括:软件版本,软件类型,发布日期。
9.在本发明的较佳实施例中,上述根据所述软件兼容性验证表与所述兼容性标识符进行验证的步骤,包括:对所述软件兼容性验证表进行检测;和/或根据所述软件兼容性验证表和所述兼容性标识表对所述新软件的兼容性进行校验。
10.在本发明的较佳实施例中,上述对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中新软件版本属性是否与版本实际属性相同;若相同,则进入下一检测步骤;若不相同,则确认所述软件兼容性验证表编译错误。
11.在本发明的较佳实施例中,上述若相同,则进入下一检测步骤的步骤之后,包括:对所述软件兼容性校验表中的兼容性时间范围进行检测,所述兼容性时间范围包括:起始时间和结尾时间;在所述起始时间晚于结尾时间时,确认所述软件兼容性验证表编译错误;
在所述起始时间未晚于结尾时间时,确认所述软件兼容性验证表正确。
12.在本发明的较佳实施例中,上述对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中新版软件属性,以及软件兼容性校验表中是否存在相同软件;在存在相同软件时,确认所述软件兼容性验证表编译错误。
13.在本发明的较佳实施例中,上述对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中是否包含所有的待验证软件和新软件。
14.在本发明的较佳实施例中,上述对所述软件兼容性验证表进行检测的步骤,包括:检测所述新软件版本属性是否与实际刷写到软件包中的兼容性标志相同;在不相同时,确认所述新软件更新版本错误。
15.在本发明的较佳实施例中,上述根据所述软件兼容性验证表和所述兼容性标识表对所述新软件的兼容性进行校验的步骤,包括:检测所述待验证软件的发布日期是否处于所述软件兼容性验证表中对应软件的起始时间与结尾时间的范围内;若处于,则确认所述待验证软件与所述新软件兼容;若不处于,则确认所述待验证软件与所述新软件不兼容。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述的软件兼容性验证方法的步骤。
17.本发明采用上述技术方案达到的技术效果是:提供了一种人为定义的属性(软件版本、软件发布时间)来校验、描述软件兼容性并通过电控单元自身去执行兼容性判断,从而避免了使用者不了解开发者信息而带来的误操作,导致升级完成后非预期的功能异常产生。这样可以实现在执行刷写操作之前完成兼容性检验,能够把刷写误操作的风险降至最低。
18.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明。
附图说明
19.图1为本发明实施例示出的软件兼容性验证方法的流程图;
20.图2为本发明实施例示出的软件兼容性验证表的结构框图;
21.图3为本发明一实施例示出的应用场景中的软件兼容性验证表。
具体实施方式
22.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,而且所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
23.由于以往单个电控单元功能较为单一,所有功能集成在一个软件包中即可满足需
求,几乎不用考虑多个软件之间的兼容性关系。随着电控模块内部承载的功能日益复杂,电控单元内嵌软件包种类(应用软件、标定软件、用户数据、配置参数)数量也日趋增加。这时软件更新时的兼容性验证就显得尤为重要。如果使用者升级电控单元软件时未考虑本次待更新软件与电控单元内部其他软件是否兼容匹配,很可能导致升级完成之后软件无法启动或启动以后由于软件之间不匹配引发的非预期故障。但为避免软件之间不匹配,每次升级都要把所有软件全部更新成最新版本也会造成不必要的时间浪费。
24.本发明提供了一种电控单元软件兼容性校验策略和一套典型校验方案方法,意在定义一种便于实现电控单元兼容性校验规则。
25.本方案适用于电控模块本身在执行软件刷写过程中判定不同软件层级之间的兼容性所用。
26.现有情况中,软件包中只包含软件代码以及开发者自定的追溯标识,缺少一套完整的用于兼容性比对的标识符。针对此缺点,本方案定义了软件包中必备的特征标识。
27.电控单元中所有软件包要具备“生效日期”属性;作为软件生命周期中的属性定义,生效日期以开发者发布日期为准;
28.电控单元中所有软件包要具备“软件号”属性。该编码作为软件包的唯一身份标识,在电控单元的全生命周期内不可重复;
29.电控单元中所有软件包要具备“软件类型”属性,以便不同类型间的软件兼容性比对;
30.现有情况中,单个软件包只涵盖自身软件信息。与其他软件包没有明确的关联性指引。这样电控单元在软件刷新过程中就无法提前判别众多软件之间的兼容关系。针对此缺点本方案引入了“软件兼容性验证表”并将“软件兼容性验证表”封装成独立的、可更新迭代的软件文件,随着每次软件发布而更新发布。在每次软件更新过程中,电控单元通过识别“软件兼容性验证表”中的信息,来判别电控单元中的软件是否兼容。
31.请参阅图1,图1为本发明实施例示出的软件兼容性验证方法的流程图。
32.如图1所示,本发明一实施例的软件兼容性验证方法,包括以下步骤:
33.步骤s11:在接收到兼容性校验指令时,获取新软件的软件兼容性验证表;
34.步骤s12:获取待验证软件的兼容性标识表,所述兼容性标识表包括:软件号、软件类型和发布日期;
35.步骤s13:根据软件兼容性验证表与兼容性标识表进行验证;
36.步骤s14:若验证通过,则反馈兼容性校验通过信息;
37.步骤s15:若验证未通过,则反馈兼容性校验失败信息。
38.可选地,将软件代码包进行兼容性标志定义。使软件代码包中至少包含四项内容:软件代码、软件号、软件类型和软件发布日期。其中,软件号、软件类型和软件发布日期作为软件代码包的兼容性标志。
39.软件号定义:
40.为了校验过程中判定的精确性。软件号的内容需具备软件唯一标识符(软件零件号)以及版本信息标识符(软件版本号)信息,二者之间用预定义的分隔符隔开(如使用“空格”或“_”等)。
41.以下给出一种示例(该定义并不限于该示例内容)。
42.例:软件号为:1111111_a,该软件号在二进制代码包编译要求如下:
43.数据定义数据内容编码规则编码长度软件零件号111111bcd码3字节软件版本号aascii码1字节分隔符_ascii码1字节
44.软件类型定义:
45.由于“软件号”本质上是一串具备唯一性字符串,为了增加“软件号”的可读性引入了“软件类型”的概念,通过“软件类型”与“软件号”的对应匹配。从而方便操作者对兼容性结果反馈的解析。
46.车载软件类型分为“应用软件”、“标定软件”、“数据文件”、“配置文件”、“特殊文件”,如有特殊类型可由具体开发者自定。
47.在电控单元中相同类型的软件有多个需要在软件类型后加序号表示。如“应用软件2”。
48.以下给出一种示例(该定义并不限于该示例内容)。
49.例:软件层级在二进制代码中编译规则如下:
50.[0051][0052]
发布日期定义:
[0053]
发布日期为软件正式发布日期,“软件号”要与发布日期必须一一对应,不允许有一对多的情况。软件发布日期要具体到年,月(周),日信息,以防发布时间颗粒度过大或过小导致兼容性校验无法判别软件是否兼容。
[0054]
以下给出一种示例(该定义并不限于该示例内容)。
[0055]
例:发布日期在二进制代码中编译规则如下:
[0056][0057]
可选地,软件兼容性验证表包括:软件标题、新软件版本属性、软件兼容性校验表;其中,所述软件兼容性校验表包括:软件版本,软件类型,发布日期。
[0058]
软件兼容性验证表设计:
[0059]
请参阅图2,软件兼容性验证表须包含如下信息:
[0060]
软件标题;
[0061]
新软件版本属性(包含除“软件兼容性验证表”之外的其他软件的软件类型,软件号,发布日期);
[0062]
软件兼容性校验表(确认本次发布更新的软件与其余软件的兼容性起止日期);
[0063]
如果当前升级的软件包与被校验层级没有兼容性关系,起止时间可以用“无关”表示(如:don

t care)
[0064]
注:“软件兼容性校验表”中的“开始时间”“结束时间”是经过软件发布者调试后确认的日期,该日期确认的是待发布软件与其他类型软件的兼容性程度(也就是待发布软件能够向下兼容其他类型软件的最早发布日期和最晚发布日期)。
[0065]
可选地,软件兼容性验证表中包括:软件版本,软件类型,发布日期。
[0066]“软件兼容性验证表”的内容是开发者完成兼容性测试后生成的。随着每次软件发布一同发布,操作者升级任何版本软件时都需要附带与之匹配的“软件兼容性验证表”一同更新。更新后新版“软件兼容性验证表”将覆盖电控单元升级之前的“软件兼容性验证表”。
[0067]
通过上述方式,在所有软件包中定义软件兼容性标识信息,并增加了专用于校核不同软件类型之间兼容性的独立软件包,使电控单元自身具备了一套典型的兼容性校验方案。
[0068]
可选地,根据所述软件兼容性验证表与所述兼容性标识符进行验证的步骤,包括:对所述软件兼容性验证表进行检测;和/或根据所述软件兼容性验证表和所述兼容性标识表对所述新软件的兼容性进行校验。
[0069]
优先对获取的软件兼容性验证表进行检测,可以保证软件兼容性验证表的准确性,防止因软件兼容性验证表错误,而导致的软件更新后产生的兼容性问题。提前对软件兼容性验证表进行检测,可以提高效率,防止在软件兼容性验证表错误的情况下,继续检测更新后的软件与其他软件之间的兼容性。在检测到软件兼容性验证表错误时,可以及时更换新的软件兼容性验证表,以继续进行兼容性判断操作。
[0070]
可选地,对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中新软件版本属性是否与版本实际属性相同;若相同,则进入下一检测步骤;若不相同,则确认所述软件兼容性验证表编译错误。
[0071]
当软件兼容性验证表中的“发布日期”与新版软件属性的“发布日期”不一致时,表明“软件兼容性验证表”编译错误,需要及时上报对应的错误响应码,以重新获取新的软件兼容性验证表继续进行下一步操作。
[0072]
可选地,若相同,则进入下一检测步骤的步骤之后,包括:对所述软件兼容性校验表中的兼容性时间范围进行检测,所述兼容性时间范围包括:起始时间和结尾时间;在所述起始时间晚于结尾时间时,确认所述软件兼容性验证表编译错误;在所述起始时间未晚于结尾时间时,确认所述软件兼容性验证表正确。
[0073]
当软件兼容性验证表中存在一个待验证软件的“起始时间”晚于“结尾时间”时,表明“软件兼容性验证表”不可用,需要上报对应的错误响应码,对对应软件的兼容性时间范围进行调整。
[0074]
可选地,对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中新版软件属性,以及软件兼容性校验表中是否存在相同软件;在存在相同软件时,确认所述软件兼容性验证表编译错误。
[0075]
当新版软件属性中包含的“软件类型”与软件兼容性校验表的“软件类型”之间的交集不为“0”时,说明存在重复软件,表明“软件兼容性验证表”编译错误,需要上报对应的错误响应码,对软件兼容性验证表进行更正。
[0076]
可选地,对所述软件兼容性验证表进行检测的步骤,包括:检测所述软件兼容性验证表中是否包含所有的待验证软件和新软件。
[0077]
当新版软件属性中包含的“软件类型”与软件兼容性校验表的“软件类型”之间的并集未能涵盖电控单元包含的所有软件类型时,表明“软件兼容性验证表”验证范围不全。需要上报对应的错误响应码。
[0078]
可选地,对所述软件兼容性验证表进行检测的步骤,包括:检测所述新软件版本属性是否与实际刷写到软件包中的兼容性标志相同;在不相同时,确认所述新软件更新版本错误。
[0079]
当新版软件属性中的“软件类型”“软件号”“发布日期”无法与实际刷写到电控单元中软件包的兼容性标志相同时。表明所更新的软件与“兼容性验证表”不匹配。需要上报对应的错误响应码。
[0080]
可选地,根据所述软件兼容性验证表和所述兼容性标识表对所述新软件的兼容性进行校验的步骤,包括:检测所述待验证软件的发布日期是否处于所述软件兼容性验证表中对应软件的起始时间与结尾时间的范围内;若处于,则确认所述待验证软件与所述新软件兼容;若不处于,则确认所述待验证软件与所述新软件不兼容。
[0081]
当电控单元中未更新的软件包的“发布日期”不在校验表的“起始时间”与“结尾时间”内时。表明当前电控单元中的软件与本次更新内容不兼容。需要上报对应的错误响应码。
[0082]
可以理解的是,可以为每一种未验证通过的情况设置一对应的错误响应码。例如,00:软件兼容性验证通过、01:软件兼容性验证表不可用、02:软件兼容性验证范围不足、04:软件版本更新有误、08:软件类型1与当前更新不兼容、10:软件类型2与当前更新不兼容,等等。
[0083]
请参阅图3,图3为本发明一实施例示出的应用场景中的软件兼容性验证表。
[0084]
例:假设一个电控单元中包含两个应用软件(app1,app2)和两个数据文件(dat1,dat2)以及一个软件兼容性验证表(spe1)。
[0085]
其兼容性标识如下表:
[0086]
软件类型软件号软件发布日期app1111111_c2019w37d2app2222222_d2019w42d5dat1333333_c2019w39d1dat2444444_e2019w45d3spe1555555_h2019w45d3
[0087]
当2019年52周一,开发者准备升级app1到d版本。其《软件兼容性验证表》将按如图3所示。
[0088]
按照本发明上述实施例中的验证方法进行验证,该软件兼容性校验通过。
[0089]
可选地,验证多个待更新的软件与其他软件之间的兼容性时,只需要通过对软件兼容性验证进行调整,如将将新软件版本属性调整为对应的对个待更新软件,即可进行兼容性验证。
[0090]
本发明提供的软件兼容性验证方法,提供了一种人为定义的属性(软件版本、软件发布时间)来校验、描述软件兼容性并通过电控单元自身去执行兼容性判断。从而避免了使用者不了解开发者信息而带来的误操作,最终导致升级完成后非预期的功能异常产生。
[0091]
在本发明提供的计算机可读存储介质的实施例中,包含了上述信息处理方法各实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不做再赘述。
[0092]
本发明实施例还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上各种可能的实施方式中的方法。
[0093]
本发明实施例还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
[0094]
可以理解,上述场景仅是作为示例,并不构成对于本发明实施例提供的技术方案的应用场景的限定,本发明的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
[0095]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0096]
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0097]
本发明实施例设备中的单元可以根据实际需要进行合并、划分和删减。
[0098]
在本发明中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本发明技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
[0099]
在本发明中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0100]
本发明技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本发明记载的范围。
[0101]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所述的方法。
[0102]
应该理解的是,虽然本方案的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0103]
以上结合附图详细描述了本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,上述实施例及附图是示例性的,附图中的模块或流程并不一定是实施本发明实施例所必须的,不能理解为对本发明的限制,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型和组合,这些简单变型和组合均属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献