一种诊断描述文件的自动同步方法、装置、设备及介质与流程

摘要: 本技术涉及车辆诊断,具体而言,涉及一种诊断描述文件的自动同步方法、装置、设备及介质。背景技术:1、在车辆诊断技术领域中,电子控制单元的诊断功能通常由诊断描述文件...
一种诊断描述文件的自动同步方法、装置、设备及介质与流程

本技术涉及车辆诊断,具体而言,涉及一种诊断描述文件的自动同步方法、装置、设备及介质。

背景技术:

1、在车辆诊断技术领域中,电子控制单元的诊断功能通常由诊断描述文件定义。诊断需求规范文件由整车厂商维护,记录车型下线检测所需的诊断需求。在车辆量产阶段,诊断需求频繁变更,需要将诊断需求规范文件中的内容同步至诊断描述文件,使两者保持一致。

2、在相关技术中,诊断需求规范文件与诊断描述文件之间的同步主要依赖人工修改。人工方式需要逐项对照两个文件中的诊断对象及其属性,效率低且错误率高,无法满足量产阶段诊断需求频繁变更的节奏要求。另一种方式是重新生成诊断描述文件,即从诊断需求规范文件出发重新生成整个诊断描述文件。但全量重新生成会覆盖诊断描述文件中已有的经过人工验证的配置内容,且诊断描述文件内部存在大量诊断实例之间的引用关系,全量重新生成无法保留这些引用关系,导致生成的文件无法被诊断工具正常加载。

3、诊断需求规范文件与诊断描述文件的文件格式不同,两者之间的跨格式同步存在困难。一旦诊断描述文件中诊断实例的引用属性被破坏,文件将无法加载。

技术实现思路

1、本技术解决的问题是如何在不同格式的诊断规范文件与诊断描述文件之间进行自动同步,并保持诊断描述文件中诊断实例的引用完整性。

2、为解决上述问题,本技术提供一种诊断描述文件的自动同步方法、装置、设备及介质。

3、第一方面,本技术提供了一种诊断描述文件的自动同步方法,包括:

4、解析诊断规范文件,获得第一诊断数据模型,所述第一诊断数据模型包括按诊断对象类型组织的诊断数据;

5、解析诊断描述文件,获得第二诊断数据模型,所述第二诊断数据模型包括诊断实例,所述诊断实例的属性包括引用属性和自有标识属性;

6、对所述第一诊断数据模型和所述第二诊断数据模型中的诊断对象进行差异对比,获得差异列表;

7、基于所述差异列表,对所述诊断描述文件中的诊断实例进行修改,保留所述诊断实例的所述引用属性,将所述诊断实例的所述自有标识属性替换为新标识符,获得修改后的诊断描述文件。

8、可选地,所述诊断规范文件包括多个工作表,各所述工作表分别记录诊断数据,所述多个工作表之间通过诊断对象标识符关联;所述解析诊断规范文件,获得第一诊断数据模型包括:

9、确定诊断对象类型对应的解析路径;

10、按照所述解析路径,从相应工作表中提取所述诊断对象类型的诊断属性数据,基于所述诊断对象标识符对所述诊断属性数据进行关联,获得所述诊断对象类型对应的结构化记录;

11、对所述结构化记录进行整合,获得所述第一诊断数据模型。

12、可选地,所述诊断对象类型包括故障码;所述按照所述解析路径,从相应工作表中提取所述诊断对象类型的诊断属性数据,基于所述诊断对象标识符对所述诊断属性数据进行关联,获得所述诊断对象类型对应的结构化记录包括:

13、从故障码工作表提取各故障码的属性数据;

14、从快照工作表提取各所述故障码与快照组号的第一对应关系;

15、从快照数据标识符工作表提取各所述快照组号与数据标识符集合的第二对应关系;

16、根据所述第一对应关系和所述第二对应关系,通过集合并集操作,将各所述故障码对应的快照组号的数据标识符集合合并,获得各所述故障码对应的快照数据标识符列表;

17、基于各所述故障码的属性数据和所述快照数据标识符列表,获得各所述故障码对应的结构化记录。

18、可选地,所述解析诊断描述文件,获得第二诊断数据模型包括:

19、提取所述诊断描述文件中数据元素的标识和字节长度,建立所述数据元素的标识与所述字节长度的第一映射关系;

20、提取所述诊断描述文件中数据标识符元素的数据标识符和引用信息,建立所述数据标识符与所述引用信息的第二映射关系,其中,所述引用信息指向所述数据元素的标识;

21、提取所述诊断描述文件中诊断分类容器中诊断实例的属性,根据所述诊断实例关联的数据标识符、所述第二映射关系和所述第一映射关系确定所述诊断实例的字节长度;

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、通过解析诊断规范文件获得按诊断对象类型组织的第一诊断数据模型,解析诊断描述文件获得包含引用属性与自有标识属性的第二诊断数据模型,在统一语义层面对两模型中的诊断对象进行差异对比获得差异列表,并基于差异列表以保留引用属性、替换自有标识属性的方式增量修改诊断描述文件。构成跨格式差异比对与引用完整性保持相统一的诊断描述文件同步方案。使诊断规范文件的变更能够自动反映到诊断描述文件中,在维持诊断描述文件可被诊断编辑工具正常加载的前提下完成两类文件的跨格式同步,从而解决相关技术中人工比对修改效率低且易遗漏、以及自动修改易破坏引用关系导致文件不可用的问题。