一种车辆诊断方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 11:49:09
技术领域
本申请属于车辆技术领域,尤其涉及一种车辆诊断方法、装置、电子设备及存储介质。
背景技术
随着社会的持续快速发展,汽车保有量不断增加,汽车的安全性也越来越重要。为提高汽车的安全性,通常会基于诊断软件对车辆状态进行监测及故障诊断。
目前诊断软件中执行对应功能的诊断程序,是先选择车型,显示与该车型对应的系统模块列表菜单,每类车型会含有多个系统模块(如EMS:发动机管理系统(EngineManagement System,EMS)、车身控制模块(Body Control Module,BCM)、点火控制模块(Ignition Control Module,ICM)等等);再选择系统模块菜单项进入系统模块,进入系统模块后会列出具体功能菜单项,每个系统模块所对应的功能菜单会有重复的,每个功能菜单项固定绑定一个接口函数,诊断程序适用性差且程序与菜单项耦合性比较高,对程序的修改繁琐。
发明内容
本申请实施例提供了一种车辆诊断方法、装置、电子设备及存储介质,旨在解决现有诊断程序适用性差且程序与菜单项耦合性比较高,对程序的修改繁琐的问题。
第一方面,本申请实施例提供了一种车辆诊断方法,包括:
检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表;
检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表;
检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数;
通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能;
其中,所述目标功能菜单项从所述预设功能菜单列表中选择得到,所述目标系统模块从所述预设系统模块列表中选择得到。
在一个实施例中,预先将每个诊断功能编译成单独的动态链接库;每个所述动态链接库封装有多个系统模块用于实现对应的诊断功能的接口函数;将所述预设功能菜单列表中的每个功能菜单项关联对应的动态链接库;所述检测到目标功能菜单项的选择指令之后,包括:
查找与所述目标功能菜单项对应的目标动态链接库;
相应地,所述调用与所述目标系统模块匹配的目标接口函数,包括:
从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数。
在一个实施例中,所述检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数,包括:
检测到目标系统模块的订阅指令时,解析所述订阅指令;
若解析出所述订阅指令包括多个目标系统模块的标识信息,则确定多个所述目标系统模块的执行顺序;
根据所述执行顺序,依次调用与多个所述目标系统模块分别对应的目标接口函数;
相应地,所述通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能,包括:
根据所述执行顺序,依次通过每个所述目标接口函数对每个所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述订阅指令包括第一订阅指令和第二订阅指令;
所述检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数,包括:
检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表;其中,所述第一订阅指令包含所述目标系统模块的标识信息;
检测到目标逻辑模块的第二订阅指令时,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数;其中,所述目标逻辑模块从所述预设逻辑模块列表中选择得到,所述第二订阅指令包括所述目标逻辑模块的标识信息;
相应地,所述通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能,包括:
根据所述目标逻辑模块对应的逻辑功能执行所述目标接口函数,实现对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述方法还包括:若检测到目标功能菜单项的选择指令,则获取所述目标功能菜单项对应的默认订阅指令;其中,所述默认订阅指令为历史订阅指令或预先指定的订阅指令;所述默认订阅指令包括目标系统模块的标识信息;
调用与所述目标系统模块匹配的目标接口函数,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述方法还包括:当接收到针对所述默认订阅指令的修改指令时,则根据修改指令将所述默认订阅指令原有的目标系统模块的标识信息更改为新的目标系统模块的标识信息;其中,所述修改指令中包含所述新的目标系统模块的标识信息。
在一个实施例中,所述确定多个所述目标系统模块的执行顺序,包括:将用户在所述预设系统模块列表中选择多个所述目标系统模块的选择顺序确定为所述执行顺序。
第二方面,本申请实施例提供了一种车辆诊断装置,包括:
第一显示模块,用于检测到目标车型的选择指令时,显示与所述车型对应的预设功能菜单列表;
第二显示模块,用于检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表;
调用模块,用于检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数;
执行模块,用于通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能;
其中,所述目标功能菜单项从所述预设功能菜单列表中选择得到,所述目标系统模块从所述预设系统模块列表中选择得到。
在一个实施例中,预先将每个诊断功能编译成单独的动态链接库;每个所述动态链接库封装有多个系统模块用于实现对应的诊断功能的接口函数;将所述预设功能菜单列表中的每个功能菜单项关联对应的动态链接库;
所述诊断装置还包括:
查找模块,用于检测到目标功能菜单项的选择指令之后,查找与所述目标功能菜单项对应的目标动态链接库;
相应地,所述调用模块具体用于:检测到目标系统模块的订阅指令时,从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数。
在一个实施例中,所述调用模块包括:
解析单元,用于检测到目标系统模块的订阅指令时,解析所述订阅指令;
确定单元,用于若解析出所述订阅指令包括多个目标系统模块的标识信息,则确定多个所述目标系统模块的执行顺序;
第一调用单元,用于根据所述执行顺序,依次调用与多个所述目标系统模块分别对应的目标接口函数;
相应地,所述执行模块具体用于:根据所述执行顺序,依次通过每个所述目标接口函数对每个所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述订阅指令包括第一订阅指令和第二订阅指令;所述调用模块包括:
显示单元,用于检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表;其中,所述第一订阅指令包含所述目标系统模块的标识信息;
第二调用单元,用于检测到目标逻辑模块的第二订阅指令时,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数;其中,所述目标逻辑模块从所述预设逻辑模块列表中选择得到,所述第二订阅指令包括所述目标逻辑模块的标识信息;
相应地,所述执行模块具体用于:根据所述目标逻辑模块对应的逻辑功能执行所述目标接口函数,实现对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述诊断装置还包括:
获取模块,用于若检测到目标功能菜单项的选择指令,则获取所述目标功能菜单项对应的默认订阅指令;其中,所述默认订阅指令为历史订阅指令或预先指定的订阅指令;所述默认订阅指令包括目标系统模块的标识信息;
执行模块,用于调用与所述目标系统模块匹配的目标接口函数,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述诊断装置还包括:
修改模块,用于当接收到针对所述默认订阅指令的修改指令时,则根据修改指令将所述默认订阅指令原有的目标系统模块的标识信息更改为新的目标系统模块的标识信息;其中,所述修改指令中包含所述新的目标系统模块的标识信息。
在一个实施例中,所述确定单元具体用于:若解析出所述订阅指令包括多个目标系统模块的标识信息,将用户在所述预设系统模块列表中选择多个所述目标系统模块的选择顺序确定为所述执行顺序。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述车辆诊断方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现上述车辆诊断方法的步骤。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述车辆诊断方法的步骤。
本申请实施例与现有技术相比存在的有益效果是:本申请实施例检测到目标车型的选择指令时,显示与目标车型对应的预设功能菜单列表,可根据显示的预设功能菜单列表直接选择目标功能菜单项,根据订阅指令,调用与所述目标系统模块匹配的目标接口函数,订阅指令选择的系统模块不同,调用接口函数也会不同,因此不会将一个功能菜单项和一个固定的接口函数绑定,能够灵活适应外部诊断逻辑的变化,适用性好,使得菜单项与程序之间的耦合性较低,对程序或菜单项的修改便捷性高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的车辆诊断方法的流程示意图;
图2是本申请实施例二提供的车辆诊断方法的流程示意图;
图3是本申请实施例三提供的车辆诊断方法的流程示意图;
图4是本申请实施例四提供的车辆诊断方法的流程示意图;
图5是本申请实施例五提供的车辆诊断方法的流程示意图;
图6是本申请实施例六提供的车辆诊断装置的结构示意图;
图7是本申请实施例七提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统模块结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统模块、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
本申请实施例提供的车辆诊断方法,可以应用于电子设备,所述电子设备与目标车辆进行通信连接,所述电子设备通过与目标车辆中的车载诊断系统模块进行有线或无线连接,从而实现电子设备与车辆的通信连接,具体可由电子设备中的应用软件实现所述车辆诊断方法,所述电子设备可以是诊断仪、诊断设备、手机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端,本申请实施例对电子设备的具体类型不作任何限制。
为了说明本申请所述的技术方案,下面通过具体实施例进行说明。
实施例一
请参阅图1,示出了本申请实施例提供的车辆诊断方法的示意性流程图,所述方法包括:
步骤S101,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表。
具体地,在检测到用户输入目标车型信息,或者自动获取与电子设备进行连接的目标车辆的车辆识别码,根据车辆识别码解析出目标车辆的车型信息(可称为目标车型)时,显示与该目标车型对应的预设功能菜单列表。可在选择车型后不再列出系统模块菜单,而是直接列出功能菜单,可减少一步显示系统模块进行选择的操作,避免重复界面出现,用户可以对功能菜单进行对应操作。
步骤S102,检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表。
具体地,所述目标功能菜单项从所述预设功能菜单列表中选择得到,在检测到从预设功能菜单列表选择功能菜单项的操作时,判定检测到目标功能菜单项的选择指令,并将选择的功能菜单项称为目标功能菜单项。检测到目标功能菜单项的选择指令时,显示与该目标功能菜单项对应的预设系统模块列表,预设系统模块列表包括与该目标功能菜单项关联的所有系统模块的标识信息。
在一种应用场景中,如目标功能菜单项的选择指令可通过选中目标功能菜单项,显示与所述目标功能菜单项对应的预设系统模块列表可以是弹框或菜单显示预先与该目标功能菜单项关联的所有系统模块,使用户可以选择具体系统模块。
步骤S103,检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数。
具体地,所述目标系统模块从所述预设系统模块列表中选择得到。在显示与目标功能菜单项对应的预设系统模块列表后,检测到对该预设系统模块列表中选择的具体系统模块的选择操作时,判定检测到目标系统模块的订阅指令。由于目标功能菜单项可能会对应多个系统模块,也对应多个接口函数,可在检测到目标系统模块的订阅指令时,在所述目标功能菜单项对应的接口函数中,调用与所述目标系统模块匹配的接口函数,将该与目标系统模块匹配的接口函数称为目标接口函数。
步骤S104,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
具体地,可通过与目标系统模块对应的目标接口函数执行与所述目标功能菜单项对应的诊断功能,如用户可通过订阅指令改变选择的目标系统模块的具体类型,目标接口函数也会对应改变,因此目标功能菜单项并没有与固定的接口函数绑定,能够灵活适应外部诊断逻辑的变化,适用性好,使得耦合性较低,对程序或菜单项的修改便捷性高。
在一个应用场景中,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表,如在预设功能菜单列表中,用户可右键选中目标功能菜单项,弹框或菜单显示预先与该目标功能菜单项关联的所有系统模块,用户可以选择具体系统模块,检测到选择的具体系统模块时判定检测到目标功能菜单项的订阅指令,并将用户选择的系统模块称为目标系统模块,在所述目标功能菜单项对应的接口函数中,调用与所述目标系统模块匹配的接口函数,从而可确定与该目标系统模块相匹配且与目标功能菜单项相匹配的接口函数,如目标管理系统是EMS,目标功能菜单项是对ECU刷写,目标接口函数为:针对EMS中ECU刷写的诊断功能的接口函数。
本申请实施例检测到目标车型的选择指令时,显示与目标车型对应的预设功能菜单列表,可根据显示的预设功能菜单列表直接选择目标功能菜单项,根据订阅指令,调用与所述目标系统模块匹配的目标接口函数,订阅指令选择的系统模块不同,调用接口函数也会不同,因此不会将一个功能菜单项和一个固定的接口函数绑定,能够灵活适应外部诊断逻辑的变化,适用性好,使得菜单项与程序之间的耦合性较低,对程序或菜单项的修改便捷性高。
实施例二
本实施例是对实施例一的进一步说明,与实施例一相同或相似的地方,具体可参见实施例一的相关描述,此处不再赘述。预先将每个诊断功能编译成单独的动态链接库;每个所述动态链接库封装有多个系统模块用于实现对应的诊断功能的接口函数;将所述预设功能菜单列表中的每个功能菜单项关联对应的动态链接库;可预先将诊断功能对应函数的实现和该函数的调用分离开来,预先将不同系统模块中的相同功能对应的诊断功能程序封装至同一个动态链接库,即一个动态链接库中包括多个相同功能但是出于不同系统模块的诊断功能程序,每个诊断功能程序都有对外调用的接口函数,通过接口函数可执行对应的诊断功能。
如图2所示,在上述检测到目标功能菜单项的选择指令后还包括步骤S203,对应的步骤S103包括步骤S204,本实施例中的车辆诊断方法包括:
步骤S201,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表。
具体地,步骤S201与上述步骤S101相同或相似的地方,具体可参见步骤S101的相关描述,此处不再赘述。
步骤S202,检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表。
具体地,步骤S202与上述步骤S102相同或相似的地方,具体可参见步骤S102的相关描述,此处不再赘述。
步骤S203,查找与所述目标功能菜单项对应的目标动态链接库。
具体地,由于预先将每个功能菜单项关联了动态链接库。在检测到目标功能菜单项的订阅指令后,查找与所述目标功能菜单项对应的目标动态链接库。如功能菜单项A为对ECU进行刷写,对应的动态链接库包括多个系统模块(如EMS、BCM、ICM等等)的对ECU进行刷写的接口函数,功能菜单项B是对EUC进行故障码清除,对应的动态链接库包括多个系统模块(如EMS、BCM、ICM等等)的对ECU进行故障码清除的接口函数。
步骤S204,检测到目标系统模块的订阅指令时,从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数。
具体地,上述调用与所述目标系统模块匹配的目标接口函数可以是:从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数。用户输入目标功能菜单项的订阅指令时,根据该订阅指令订阅目标系统模块,在所述目标动态链接库中,预先封装了多个系统模块的接口函数,根据该订阅指令订阅目标系统模块,从所述目标动态链接库中调用与该目标系统模块匹配的目标接口函数。
在一个实施例中,可先将每个动态链接库中的每个接口函数的标识信息和对应的系统模块的标识信息关联成键值对进行存储,所述键值对中的键值表示接口函数的标识信息,所述键值对中的键值名表示所述系统模块的标识信息;预先将每个动态链接库中的接口函数与该接口函数对应的系统模块的标识信息进行关联成键值对进行存储,具体可通过map数据结构进行存储。键值对中包括键值(也称为值或value)和键值名(也称为键或key),以接口函数的标识信息为键值,以系统模块的标识信息为键值名。如接口函数的标识信息是发动机管理系统的ECU刷写,则对应的系统模块的标识信息为发动机管理系统的标识信息。从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数可以是:在所述目标动态链接库对应存储的键值对中,以所述目标系统模块的标识信息为目标键值名,在查找与所述目标键值名对应的目标键值;根据目标键值确定出目标接口函数的标识信息,根据目标接口函数的标识信息从所述目标动态链接库中索引出目标接口进行调用,可实现快速的调用目标接口函数。
步骤S205,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
具体地,步骤S205与上述步骤S104相同或相似的地方,具体可参见步骤S104的相关描述,此处不再赘述。
本实施例由于预先将每个诊断功能编译成单独的动态链接库;每个所述动态链接库封装有多个系统模块用于实现对应的诊断功能的接口函数;将所述预设功能菜单列表中的每个功能菜单项关联对应的动态链接库,可查找与所述目标功能菜单项对应的目标动态链接库,目标动态链接库包括来自多个系统模块的接口函数,直接从所述目标动态链接库中调用与订阅指令选择的目标系统模块相匹配的目标接口函数,因此可将目标功能菜单项动态执行对应的接口函数,没有将目标功能菜单项和单独的接口函数绑定,对目标功能菜单项对应的接口函数进行修改,可直接对动态链接库进行修改或重新封装,适用性好,使得耦合性较低,对程序或功能菜单项的修改便捷性高。
实施例三
本实施例是对实施例一或实施例二的进一步说明,与实施例一或实施例二相同或相似的地方,具体可参见实施例一或实施例二的相关描述,此处不再赘述。如图3所示,上述步骤S103包括步骤S303至步骤S305,步骤S104包括步骤S306,本实施例中的车辆诊断方法包括:
步骤S301,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表。
具体地,步骤S301与上述步骤S101相同或相似的地方,具体可参见步骤S301的相关描述,此处不再赘述。
步骤S302,检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表。
具体地,步骤S302与上述步骤S102相同或相似的地方,具体可参见步骤S102的相关描述,此处不再赘述。
步骤S303,检测到目标系统模块的订阅指令时,解析所述订阅指令。
具体地,检测到目标功能菜单项的订阅指令时,解析所述订阅指令包括的目标系统模块的标识信息是否包括多个目标系统模块的标识信息。
步骤S304,若解析出所述订阅指令包括多个目标系统模块的标识信息,则确定多个所述目标系统模块的执行顺序。
在一个实施例中,确定多个所述目标系统模块的执行顺序,包括:将用户在所述预设系统模块列表中选择多个所述目标系统模块的选择顺序确定为所述执行顺序。
具体地,若解析出所述订阅指令包括多个目标系统模块的标识信息,可将用户对多个目标系统模块的选择顺序信息确定为多个所述目标系统模块的执行顺序,或者可根据预设的默认执行顺序确定所述多个目标系统模块的执行顺序。
步骤S305,根据所述执行顺序,依次调用与多个所述目标系统模块分别对应的目标接口函数。
具体地,根据确定的执行顺序,按多个目标系统模块的执行顺序依次调用与多个系统模块分别对应的目标接口函数,以依次执行多个目标接口函数执行对应的诊断功能。
步骤S306,根据所述执行顺序,依次通过每个所述目标接口函数对每个所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
具体地,可根据执行顺序,按多个目标系统模块的执行顺序,通过与多个目标系统模块依次对应的每个所述目标接口函数执行与目标功能菜单项对应的诊断功能。
在一个具体应用场景中,例如订阅指令包括按顺序选择的EMS和BCM两个目标系统模块,那么将按顺序将EMS和BCM两个目标系统模块对应的系统模块名称存储到与目标功能菜单项指定的队列中,按照顺序调用EMS和BCM两个目标系统中的目标接口函数,再先执行EMS对应的目标接口函数,然后执行BCM对应的目标接口函数,从而根据目标功能菜单项可执行多个相关功能。
本实施例可直接通过订阅指令中包括的多个目标系统模块的标识信息,依次调用与所述多个目标系统模块分别对应的目标接口函数,以依次执行多个目标接口函数执行对应的诊断功能,通过多个所述目标接口函数执行对应的诊断功能,操作简单,可快速对车辆的多个功能进行诊断,提高了对车辆的诊断效率。
实施例四
本实施例是对实施例一的进一步说明,与实施例一相同或相似的地方,具体可参见实施例一的相关描述,此处不再赘述,上述订阅指令包括第一订阅指令和第二订阅指令,如图4所示,上述步骤S103包括步骤S403至步骤S404,上述步骤S104包括步骤S405,本实施例中的车辆诊断方法包括:
步骤S401,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表。
具体地,步骤S401与上述步骤S101相同或相似的地方,具体可参见步骤S301的相关描述,此处不再赘述。
步骤S402,检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表。
具体地,步骤S402与上述步骤S102相同或相似的地方,具体可参见步骤S102的相关描述,此处不再赘述。
步骤S403,检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表;其中,所述第一订阅指令包含所述目标系统模块的标识信息。
具体地,在显示与目标车型对应的预设功能菜单列表后,基于预设功能菜单列表中的菜单选项选择目标功能菜单项,输入对目标功能菜单项的第一订阅指令,第一订阅指令包括选择具体的系统模块的标识信息,检测到目标功能菜单项的订阅指令时,根据目标系统模块的标识信息,在目标功能菜单项关联的接口函数中,确定与目标系统模块匹配的目标接口函数,该目标接口函数中有预设的多个内部关键逻辑模块,再显示该目标接口函数中预设的多个内部关键逻辑模块标识列表(即与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表),用户可基于多个内部关键逻辑模块标识列表选择需要执行的目标接口函数的内部关键逻辑对应的诊断功能。
在一个实施例中,预先将每个接口函数的标识信息,以及对应接口函数中的所有关键逻辑模块的标识信息组成一个结构体,将每个接口函数对应的一个结构体和相应的系统模块的标识信息关联成键值对进行存储;所述检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表,包括:检测到目标功能菜单项的第一订阅指令时,查找与所述目标功能菜单项对应的目标动态链接库;在所述目标动态链接库对应存储的键值对中,以所述目标系统模块的标识信息为目标键值名,查找与所述目标键值名对应的目标结构体;根据所述目标结构体中包括的预设关键逻辑模块标识信息显示对应的预设关键逻辑模块标识列表。
具体地,可预先将不同系统模块中相同功能的接口函数封装至同一个动态链接库,将每个功能菜单项关联对应的动态链接库;一个动态链接库中会有多个接口函数,将每个动态链接库中的每一个接口函数与该接口函数对应的关键逻辑模块的标识信息组成一个结构体,即将该接口函数的标识信息与关键逻辑模块的标识信息都作为一个结构体中的成员数据,每个接口函数会对应一个结构体,再以结构体为键值,以该结构体的对应接口函数关联的系统模块的标识信息为键值名关联成键值对进行存储。检测到目标功能菜单项的第一订阅指令时,查找与所述目标功能菜单项对应的目标动态链接库;确在所述目标动态链接库对应存储的键值对中,以所述目标系统模块的标识信息为目标键值名,查找与所述目标键值名对应的目标结构体,将目标结构体中包括的预设关键逻辑模块标识信息通过预设显示方式显示成对应的预设关键逻辑模块标识列表,以供用户选择。
步骤S404,检测到目标逻辑模块的第二订阅指令时,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数;其中,所述目标逻辑模块从所述预设逻辑模块列表中选择得到,所述第二订阅指令包括所述目标逻辑模块的标识信息。
具体地,通过第二订阅指令从预设关键逻辑模块标识列表中选择关键逻辑模块的标识信息,调用所述目标接口函数中与所述第二订阅指令相匹配的逻辑功能(该逻辑功能可以是预先根据对应诊断功能预设的子程序),以执行该逻辑功能对应的诊断功能。其中,第二订阅指令可以是在显示的预设关键逻辑模块标识列表中选择一个或多个关键逻辑模块标识,每个关键逻辑模块标识对应关联对应接口函数中的要实现对应逻辑功能对应的子程序。上述将其写入所述目标接口函数可以是:将目标逻辑功能对应的逻辑功能的标识信息作为参数回传给目标接口函数,以使得调用目标接口函数时,执行目标接口函数中逻辑功能对应标识信息对应的子程序,从而实现了执行目标接口函数中与目标逻辑模块对应的逻辑功能。
例如,某个系统对应接口函数实现的是刷写功能,该刷写功能有多种刷写模式,不同刷写模式会有不同的处理方式。当用户可通过第一订阅指令订阅该系统的刷写功能时,可以将不同刷写模式的标识信息导出(即检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表),用户可以通过第二订阅指令选择刷写模式,这个被订阅的模式作为参数回传给接口函数(即检测到目标逻辑模块的第二订阅指令时,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数)。
步骤S405,根据所述目标逻辑模块对应的逻辑功能执行所述目标接口函数,实现对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
具体地,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数,根据已写入目标逻辑模块对应的逻辑功能标识信息的目标接口函数,执行目标接口函数中目标逻辑功能对应标识信息对应的逻辑功能,可以对目标接口函数的内部逻辑进行订阅,从而实现接口函数内部逻辑的订阅。
实施例五
本实施例是对实施例一、实施例二、实施例三或实施例四的进一步说明,与上述实施例相同或相似的地方,具体可参见上述实施例的相关描述,此处不再赘述。如图5所示,上述步骤S101之后还包括步骤S502至步骤S503,本实施例中的车辆诊断方法包括:
步骤S501,检测到目标车型的选择指令时,显示与所述目标车型对应的预设功能菜单列表。
具体地,步骤S501与上述步骤S101相同或相似的地方,具体可参见步骤S101的相关描述,此处不再赘述。
步骤S502,若检测到目标功能菜单项的选择指令,则获取所述目标功能菜单项对应的默认订阅指令;其中,所述默认订阅指令为历史订阅指令或预先指定的订阅指令;所述默认订阅指令包括目标系统模块的标识信息。
具体地,用户可能未对目标功能菜单项输入对应的订阅指令,在检测到目标功能菜单项的选择指令时,直接获取该目标功能菜单项的默认订阅指令,该默认订阅指令可以是最近一次输入的订阅指令,或者默认订阅指令也可以是预先存储的订阅指令。
步骤S503,调用与所述目标系统模块匹配的目标接口函数,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
具体地,调用与默认订阅指令中包括的目标系统模块匹配的目标接口函数,以通过该目标接口函数执行对应的诊断功能。
在一个实施例中,当接收到针对所述默认订阅指令的修改指令时,则根据修改指令将所述默认订阅指令原有的目标系统模块的标识信息更改为新的目标系统模块的标识信息;其中,所述修改指令中包含所述新的目标系统模块的标识信息。
具体地,可对默认订阅指令中关联的系统模块的标识信息进行修改或者删除,用户可输入包含需要关联的新的目标系统模块的标识信息的修改指令,根据新的目标系统模块的标识信息,将默认订阅指令目前存储的目标系统模块的标识信息更改为新的目标系统模块的标识信息。
本申请实施例由于可直接检测到目标功能菜单项的选择指令,则获取所述目标功能菜单项对应的默认订阅指令,直接执行与默认订阅指令对应目标系统模块匹配的目标接口函数,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能,操作简单,可快速对车辆的功能进行诊断,提高了对车辆的诊断效率。
实施例六
对应于上文实施例所述的车辆诊断方法,图6示出了本申请实施例提供的车辆诊断装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。所述车辆诊断装置应用于电子设备,所述电子设备与目标车辆进行通信连接,所述车辆诊断装置600包括:
第一显示模块601,用于检测到目标车型的选择指令时,显示与所述车型对应的预设功能菜单列表;
第二显示模块602,用于检测到目标功能菜单项的选择指令时,显示与所述目标功能菜单项对应的预设系统模块列表;
调用模块603,用于检测到目标系统模块的订阅指令时,调用与所述目标系统模块匹配的目标接口函数;
执行模块604,用于通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能;
其中,所述目标功能菜单项从所述预设功能菜单列表中选择得到,所述目标系统模块从所述预设系统模块列表中选择得到。
在一个实施例中,预先将每个诊断功能编译成单独的动态链接库;每个所述动态链接库封装有多个系统模块用于实现对应的诊断功能的接口函数;将所述预设功能菜单列表中的每个功能菜单项关联对应的动态链接库;
所述诊断装置还包括:
查找模块,用于检测到目标功能菜单项的选择指令之后,查找与所述目标功能菜单项对应的目标动态链接库;
相应地,所述调用模块具体用于:检测到目标系统模块的订阅指令时,从所述目标动态链接库中调用与所述目标系统模块匹配的目标接口函数。
在一个实施例中,所述调用模块包括:
解析单元,用于检测到目标系统模块的订阅指令时,解析所述订阅指令;
确定单元,用于若解析出所述订阅指令包括多个目标系统模块的标识信息,则确定多个所述目标系统模块的执行顺序;
第一调用单元,用于根据所述执行顺序,依次调用与多个所述目标系统模块分别对应的目标接口函数;
相应地,所述执行模块具体用于:根据所述执行顺序,依次通过每个所述目标接口函数对每个所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述订阅指令包括第一订阅指令和第二订阅指令;所述调用模块包括:
显示单元,用于检测到目标系统模块的第一订阅指令时,显示与所述目标系统模块匹配的目标接口函数对应的预设逻辑模块列表;其中,所述第一订阅指令包含所述目标系统模块的标识信息;
第二调用单元,用于检测到目标逻辑模块的第二订阅指令时,调用所述目标逻辑模块对应的逻辑功能并将其写入所述目标接口函数;其中,所述目标逻辑模块从所述预设逻辑模块列表中选择得到,所述第二订阅指令包括所述目标逻辑模块的标识信息;
相应地,所述执行模块具体用于:根据所述目标逻辑模块对应的逻辑功能执行所述目标接口函数,实现对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述诊断装置还包括:
获取模块,用于若检测到目标功能菜单项的选择指令,则获取所述目标功能菜单项对应的默认订阅指令;其中,所述默认订阅指令为历史订阅指令或预先指定的订阅指令;所述默认订阅指令包括目标系统模块的标识信息;
执行模块,用于调用与所述目标系统模块匹配的目标接口函数,通过所述目标接口函数对所述目标系统模块执行与所述目标功能菜单项对应的诊断功能。
在一个实施例中,所述诊断装置还包括:
修改模块,用于当接收到针对所述默认订阅指令的修改指令时,则根据修改指令将所述默认订阅指令原有的目标系统模块的标识信息更改为新的目标系统模块的标识信息;其中,所述修改指令中包含所述新的目标系统模块的标识信息。
在一个实施例中,所述确定单元具体用于:若解析出所述订阅指令包括多个目标系统模块的标识信息,将用户在所述预设系统模块列表中选择多个所述目标系统模块的选择顺序确定为所述执行顺序。
本申请实施例检测到目标车型的选择指令时,显示与目标车型对应的预设功能菜单列表,可根据显示的预设功能菜单列表直接选择目标功能菜单项,根据订阅指令,调用与所述目标系统模块匹配的目标接口函数,订阅指令选择的系统模块不同,调用接口函数也会不同,因此不会将一个功能菜单项和一个固定的接口函数绑定,能够灵活适应外部诊断逻辑的变化,适用性好,使得菜单项与程序之间的耦合性较低,对程序或菜单项的修改便捷性高。
实施例7
如图7所示,是本申请实施例提供的电子设备的结构示意图。所述电子设备700包括:处理器701、存储器702以及存储在上述存储器702中并可在上述处理器701上运行的计算机程序703。上述处理器701执行上述计算机程序703时实现上述车辆诊断方法实施例中的步骤。
示例性的,上述计算机程序703可以被分割成一个或多个单元/模块,上述一个或者多个单元/模块被存储在上述存储器702中,并由上述处理器701执行,以完成本申请。上述一个或多个单元/模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序703在上述电子设备700中的执行过程。例如,上述计算机程序703可以被分割成显示模块和第一调用模块等,各模块具体功能在上述实施例中已有描述,此处不再赘述。
上述电子设备700可包括,但不仅限于,处理器701、存储器702。本领域技术人员可以理解,图7仅仅是电子设备700的示例,并不构成对电子设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述电子设备700还可以包括输入输出设备、网络接入设备、总线等。
所称处理器701可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
上述存储器702可以是电子设备700的内部存储单元,例如电子设备700的硬盘或内存。上述存储器702还可以既包括上述电子设备700的内部存储单元也包括外部存储设备。上述存储器702用于存储上述计算机程序以及上述电子设备700所需的其它程序和数据。上述存储器702还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述车辆诊断设备中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
- 一种车辆诊断方法、装置、电子设备及存储介质
- 一种车辆诊断方法、装置、电子设备及存储介质