本申请涉及车辆诊断,特别涉及一种车载诊断数据的查询方法、系统、电子设备及存储介质。
背景技术:
1、随着汽车电子技术的不断发展,电子控制单元(ecu,electronic control unit)在汽车中得到了广泛的应用。电子控制单元在提高汽车动力性、经济性、舒适性和安全性的同时,也使得车辆中的电子电气系统越来越复杂,这也促使车载诊断技术有了更大的发展。
2、目前车载诊断软件生成的诊断数据源文件通常使用多级标签语法来存储各个诊断数据项,但是由于上述诊断数据源文件需要将所有数据拆分成颗粒化进行存储,导致诊断数据源文件中标签的个数和级数都会非常多,在要获取相应数据时需要进行大量遍历查询操作,效率较低且时间消耗较大。
3、因此,如何提高车载诊断数据的查询效率是本领域技术人员目前需要解决的技术问题。
技术实现思路
1、本申请的目的是提供一种车载诊断数据的查询方法、系统、电子设备及存储介质,能够提高车载诊断数据的查询效率。
2、为解决上述技术问题,本申请提供一种车载诊断数据的查询方法,该车载诊断数据的查询方法包括:
3、获取车载诊断软件生成的诊断数据源文件,并对所述诊断数据源文件中的标签按照预设规则进行排序,得到目标文件;其中,所述预设规则包括:所述目标文件中的所有标签按照标签层级关系存储,所述目标文件中相同层级的标签按照id属性值的字符顺序排布;
4、若接收到数据查询请求,则确定所述数据查询请求对应的目标id;
5、按照标签层级从高到低的顺序,将所述目标id与所述目标文件中每一层级的标签进行基于中间项对比法的数据查询,得到所述数据查询请求对应的车载诊断数据。
6、可选的,对所述诊断数据源文件中的标签按照预设规则进行排序,得到目标文件,包括:
7、创建xml文件;
8、按照所述预设规则将所述诊断数据源文件中包含id属性的标签插入所述xml文件;
9、若所述诊断数据源文件中的所有标签均插入所述xml文件,则将所述xml文件设置为所述目标文件。
10、可选的,还包括:
11、根据所述标签层级关系将不包含id属性的标签跟随父标签插入所述xml文件。
12、可选的,所述按照标签层级从高到低的顺序,将所述目标id与所述目标文件中每一层级的标签进行基于中间项对比法的数据查询,包括:
13、生成参数n,并将所述参数n的数值设置为1;
14、将所述目标id与所述目标文件中所有n级标签进行基于中间项对比法的数据查询;
15、若查询成功,则根据与所述目标id匹配的n级标签生成对应的所述车载诊断数据;
16、若查询失败,则将所述参数n的数值加1,并进入将所述目标id与n级标签进行基于中间项对比法的数据查询的操作;其中,n级标签为n+1级标签的父标签。
17、可选的,将所述目标id与所述目标文件中所有n级标签进行基于中间项对比法的数据查询,包括:
18、将所述目标文件中所有所述n级标签设置为当前查询范围;
19、从当前查询范围确定中间项n级标签;
20、判断所述目标id与所述中间项n级标签的id属性值是否相同;
21、若是,则将所述中间项n级标签设置为与所述目标id匹配的n级标签;
22、若否,则根据所述目标id与所述中间项n级标签的id属性值的大小关系更新当前查询范围,并进入从当前查询范围确定中间项n级标签的步骤。
23、可选的,在根据所述目标id与所述中间项n级标签的id属性值的大小关系更新当前查询范围之后,还包括:
24、判断更新后的当前查询范围中的n级标签数量是否为0;
25、若是,则判定所述目标文件中的n级标签中不存在所述目标id。
26、可选的,所述从当前查询范围确定中间项n级标签,包括:
27、确定当前查询范围中的n级标签数量m;
28、若m为奇数,则将当前查询范围中的第个n级标签设置为所述中间项n级标签;
29、若m为偶数,则将当前查询范围中的第个n级标签或第个n级标签设置为所述中间项n级标签。
30、本申请还提供了一种车载诊断数据的查询系统,该系统包括:
31、标签排序模块,用于获取车载诊断软件生成的诊断数据源文件,并对所述诊断数据源文件中的标签按照预设规则进行排序,得到目标文件;其中,所述预设规则包括:所述目标文件中的所有标签按照标签层级关系存储,所述目标文件中相同层级的标签按照id属性值的字符顺序排布;
32、目标id确定模块,用于若接收到数据查询请求,则确定所述数据查询请求对应的目标id;
33、数据查询模块,用于按照标签层级从高到低的顺序,将所述目标id与所述目标文件中每一层级的标签进行基于中间项对比法的数据查询,得到所述数据查询请求对应的车载诊断数据。
34、本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述车载诊断数据的查询方法执行的步骤。
35、本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述车载诊断数据的查询方法执行的步骤。
36、本申请提供了一种车载诊断数据的查询方法,包括:获取车载诊断软件生成的诊断数据源文件,并对所述诊断数据源文件中的标签按照预设规则进行排序,得到目标文件;其中,所述预设规则包括:所述目标文件中的所有标签按照标签层级关系存储,所述目标文件中相同层级的标签按照id属性值的字符顺序排布;若接收到数据查询请求,则确定所述数据查询请求对应的目标id;按照标签层级从高到低的顺序,将所述目标id与所述目标文件中每一层级的标签进行基于中间项对比法的数据查询,得到所述数据查询请求对应的车载诊断数据。
37、本申请在获取车载诊断软件生成的诊断数据源文件后,对诊断数据源文件中的标签按照预设规则进行排序得到目标文件。在上述目标文件中所有标签按照标签层级关系存储,且相同层级的标签按照id属性值的字符顺序排布,使得诊断数据源文件的所有标签在目标文件中按照预设规则重新排布。在收到数据查询请求,本申请确定对应的目标id并采用中间项对比法将目标id与目标文件中每一层级的标签进行数据查询,得到车载诊断数据。中间项对比法能够在每次比较中,将待查找的目标id与目标文件中多个标签的中间项进行比较,进而有效地缩小查找范围,因此本申请能够提高车载诊断数据的查询效率。本申请同时还提供了一种车载诊断数据的查询系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
1.一种车载诊断数据的查询方法,其特征在于,包括:
2.根据权利要求1所述车载诊断数据的查询方法,其特征在于,对所述诊断数据源文件中的标签按照预设规则进行排序,得到目标文件,包括:
3.根据权利要求2所述车载诊断数据的查询方法,其特征在于,还包括:
4.根据权利要求1至3任一项所述车载诊断数据的查询方法,其特征在于,所述按照标签层级从高到低的顺序,将所述目标id与所述目标文件中每一层级的标签进行基于中间项对比法的数据查询,包括:
5.根据权利要求4所述车载诊断数据的查询方法,其特征在于,将所述目标id与所述目标文件中所有n级标签进行基于中间项对比法的数据查询,包括:
6.根据权利要求5所述车载诊断数据的查询方法,其特征在于,在根据所述目标id与所述中间项n级标签的id属性值的大小关系更新当前查询范围之后,还包括:
7.根据权利要求5所述车载诊断数据的查询方法,其特征在于,所述从当前查询范围确定中间项n级标签,包括:
8.一种车载诊断数据的查询系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述车载诊断数据的查询方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述车载诊断数据的查询方法的步骤。