1.本技术涉及汽车诊断技术领域,特别涉及一种汽车故障诊断系统、方法、设备及介质。
背景技术:2.现有技术中通常使用与车型适配的诊断软件对汽车故障进行诊断,因此为了使得车辆故障诊断设备能对多种车型适配,通常会在车辆故障诊断设备中安装不同车型的诊断软件,该诊断软件通常是将所有的诊断代码编写在一个软件包里,因此当诊断软件出现bug或者某个功能需要更新时,需要对诊断软件中的所有代码对应修改或更新,车辆故障诊断设备再对该诊断软件重新进行下载安装,这样使车辆故障诊断设备调用诊断软件比较繁琐,需要频繁下载安装,且诊断软件修复、更新的过程也较为冗长。
技术实现要素:3.本技术的主要目的为提供一种汽车故障诊断系统,旨在解决现有技术中车辆故障诊断设备中的诊断软件修复、更新的过程较为冗长的技术问题。
4.本技术提出一种汽车故障诊断系统,包括:应用显示层、诊断服务层和诊断数据层,所述应用显示层、所述诊断服务层与所述诊断数据层各自封装,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,用于获取汽车数据并对所述汽车进行故障诊断,生成诊断数据,所述应用显示层用于将所述诊断数据显示在车辆故障诊断设备的用户界面上;所述诊断数据层包括多个不同车型的诊断软件,且每个所述诊断软件相互独立,所述应用显示层通过所述诊断服务层分别与多个所述诊断软件数据交互,以调用不同的诊断软件对汽车进行诊断。
5.作为优选,所述应用显示层包括多个诊断功能指令,当至少一个诊断功能指令被触发时,所述应用显示层用于通过所述诊断服务层向所述诊断数据层发送与所述诊断功能指令对应的调用指令,所述诊断数据层用于根据所述调用指令启动对应的所述诊断软件,还用于通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。
6.作为优选,,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。
7.作为优选,所述诊断服务层设有多个交互协议,所述交互协议包括启动诊断协议、诊断类型协议、诊断连接协议、读取版本信息协议、故障码协议、读取数据流协议、工作测试协议、特殊功能协议和编程协议。
8.作为优选, 所述诊断功能指令包括智能诊断指令和普通诊断指令,所述诊断数据层包括获取模块与选取模块;
当所述智能诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第一调用指令,所述获取模块用于根据所述第一调用指令获取汽车的第一车型参数,并将所述第一车型参数发送至所述选取模块,所述选取模块用于选取与所述第一车型参数对应的诊断软件,并控制所述诊断软件开启,以对汽车进行故障诊断;当所述普通诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第二调用指令,所述获取模块用于根据所述第二调用指令获取第二汽车参数,并将所述第二汽车参数通过所述诊断服务层反馈至所述应用显示层,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第三调用指令,以调用与第三调用指令对应的诊断软件开启,对汽车进行故障诊断。
9.本技术还提供一种汽车故障诊断方法,应用于应用显示层,包括:接收诊断软件选取信号,并将所述诊断软件选取信号通过诊断服务层发送至诊断数据层,其中,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,所述诊断数据层接收诊断软件选取信号之后,选取与所述诊断软件选取信号对应的诊断软件,并通过所述诊断软件对汽车进行故障诊断,生成诊断数据;接收所述诊断数据层通过所述诊断服务层发送的诊断数据,并将所述诊断数据显示在车辆故障诊断设备的用户界面上。
10.作为优选,所述接收诊断软件选取信号的步骤包括:接收至少一个诊断功能指令,并根据所述诊断功能指令生成对应的调用指令;将所述调用指令通过所述诊断服务层发送至诊断数据层,其中,所述诊断数据层根据所述调用指令启动对应的所述诊断软件,并通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。
11.作为优选,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。
12.本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述汽车故障诊断方法的步骤。
13.本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述汽车故障诊断方法的步骤。
14.本技术的有益效果为:通过将汽车故障诊断系统分为三层,顶层为应用显示层,中层为诊断服务层,底层为诊断数据层,应用显示层可通过所述诊断服务层分别与多个所述诊断软件数据交互,以调用不同的诊断软件对汽车进行诊断,即应用显示层与诊断数据层为“一对多”的关系;应用显示层、诊断服务层和诊断数据层各自封装,这样使得各层的功能相互独立,这样当出现需要对某个诊断软件的部分代码进行更新或修改时,只用更改底层诊断数据层中诊断软件的部分代码,而应用显示层和诊断服务层不必做出修改,且该诊断软件出现问题时,也不影响应用显示层调用其他的诊断软件进行工作,相应的,若应用显示层或诊断服务层中的某些代码需要修改或更新时,也可以单层进行修改或更新,不影响其它层正常工作;诊断软件更新或修改后,仅需要下载安装修改或更新的部分,而不必将诊断软件再重新下载一遍,能够减少诊断软件修复、更新所消耗的时间成本,且新增诊断软件时,可直接将其置于诊断数据层中,应用显示层可直接对其调用,这样能够使得车辆故障诊
断设备可以对不同的车型进行诊断,增加车辆故障诊断设备与多个车型之间的适配性。
附图说明
15.图1为本技术一实施例的汽车故障诊断系统结构示意图。
16.图2为本技术一实施例的汽车故障诊断方法流程示意图。
17.图3为本技术一实施例的计算机设备内部结构示意图。
18.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
19.应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
20.如图1-图3所示,本技术提出一种汽车故障诊断系统,包括:应用显示层、诊断服务层和诊断数据层,所述应用显示层、所述诊断服务层与所述诊断数据层各自封装,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,用于获取汽车数据并对所述汽车进行故障诊断,生成诊断数据,所述应用显示层用于将所述诊断数据显示在车辆故障诊断设备的用户界面上;所述诊断数据层包括多个不同车型的诊断软件,且每个所述诊断软件相互独立,所述应用显示层通过所述诊断服务层分别与多个所述诊断软件数据交互,以调用不同的诊断软件对汽车进行诊断。
21.如上所述,汽车故障诊断系统应用于车辆故障诊断设备中,通过将汽车故障诊断系统分为三层,顶层为应用显示层,即应用显示层显示在车辆故障诊断设备的用户界面上,中层为诊断服务层,诊断服务层始终保持运行,负责使应用显示层与诊断数据层能够良好的沟通,起到桥梁的作用,诊断服务层设有交互协议,应用显示层与诊断数据层通过交互协议进行信息交互,底层为诊断数据层,诊断服务层包括多个不同车型的诊断软件,且每个诊断软件相互独立,应用显示层可通过所述诊断服务层分别与多个所述诊断软件数据交互,以调用不同的诊断软件对汽车进行诊断,即应用显示层与诊断数据层为“一对多”的关系;应用显示层、诊断服务层和诊断数据层各自封装,这样使得各层的功能相互独立,由于现有技术中故障诊断所需要的程序代码等是整装在一起的,且功能相互联系,因此,相对于现有技术,本实施例中,若出现需要对某个诊断软件的部分代码进行更新或修改时,只用更改底层诊断数据层中诊断软件的部分代码,而应用显示层和诊断服务层不必做出修改,且该诊断软件出现问题时,也不影响应用显示层调用其他的诊断软件进行工作,相应的,若应用显示层或诊断服务层中的某些代码需要修改或更新时,也可以单层进行修改或更新,不影响其它层正常工作;诊断软件更新或修改后,仅需要下载安装修改或更新的部分,而不必将诊断软件再重新下载一遍,这样能够减少诊断软件修复、更新所消耗的时间成本,且新增诊断软件时,可直接将其置于诊断数据层中,应用显示层可直接对其调用,这样能够使得车辆故障诊断设备可以对不同的车型进行诊断,增加车辆故障诊断设备与多个车型之间的适配性。
22.在一个实施例中,所述应用显示层包括多个诊断功能指令,当至少一个诊断功能指令被触发时,所述应用显示层用于通过所述诊断服务层向所述诊断数据层发送与所述诊
断功能指令对应的调用指令,所述诊断数据层用于根据所述调用指令启动对应的所述诊断软件,还用于通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。
23.如上所述,应用显示层包括多个诊断功能指令,用户可根据实际需求触发不同的诊断功能指令,从而使得应用显示层调用诊断软件对汽车的某个系统进行检测,具体的,诊断功能指令包括智能诊断、普通诊断、读取车辆vin码、读取数据流、清除故障码、获取发送机系统数据等。
24.在一个实施例中,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。
25.如上所述,由于c语言是比较靠底层的语言,芯片和底层驱动基本也是使用c语言,因此c语言相对占比更高,基本上所有的平台都能调用c语言,基于此,本实施例中的诊断数据层的程序基于c语言进行编写,而应用显示层的程序基于java和/或c语言进行编写,这样能够使得本实施例中的汽车故障诊断系统能够应用于不同的平台(ios系统、安卓系统、windows系统),从而减小汽车故障诊断系统应用的局限性,由于安卓系统中的程序通常采用java进行编写,为了使得应用显示层更方便的调用下层的诊断软件,应用显示层的程序可基于java编写。
26.在一个实施例中,所述诊断服务层设有多个交互协议,所述交互协议包括启动诊断协议、诊断类型协议、诊断连接协议、读取版本信息协议、故障码协议、读取数据流协议、工作测试协议、特殊功能协议和编程协议。
27.如上所述,启动诊断协议为启动诊断软件的协议,诊断类型协议包括智能诊断协议和普通诊断协议,诊断连接协议包括蓝牙连接协议,wifi连接协议,usb连接协议,或者网口方式连接协议;故障码协议包括清除故障码协议和读取故障码协议,读取数据流协议为读取车辆数据流的协议,动作测试协议包括测试车辆车窗是否正常开启、座椅是否正常升降等测试协议,特殊功能协议为一些汽车保养相关协议,编程协议包括在线编程协议和远程编程协议,读取版本信息协议为读取车辆版本信息的相关协议,需要说明的是,上述协议均与诊断功能指令相对应,且交互协议不仅局限于此,可根据实际需求进行增加或删除。
28.在一个实施例中,所述诊断功能指令包括智能诊断指令和普通诊断指令,所述诊断数据层包括获取模块与选取模块;当所述智能诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第一调用指令,所述获取模块用于根据所述第一调用指令获取汽车的第一车型参数,并将所述第一车型参数发送至所述选取模块,所述选取模块用于选取与所述第一车型参数对应的诊断软件,并控制所述诊断软件开启,以对汽车进行故障诊断;当所述普通诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第二调用指令,所述获取模块用于根据所述第二调用指令获取第二汽车参数,并将所述第二汽车参数通过所述诊断服务层反馈至所述应用显示层,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第三调用指令,以调用与第三调用指令对应的诊断软件开启,对汽车进行故障诊断。
29.如上所述,当用户选择智能诊断指令时,汽车故障诊断系统可自动对车型进行识别,自动调用对应的诊断软件进行诊断,当选择普通诊断指令时,用户可以手动的选择获取
第二汽车参数,用户再根据第二汽车参数选择需要的诊断功能指令,应用显示层根据诊断功能指令向诊断数据层发送第三调用指令,从而调用与第三调用指令对应的诊断软件开启,对汽车进行故障诊断。
30.为了更好的对本技术中的汽车故障诊断系统进行阐述,下列以用户读取奥迪a6发动机系统的故障码为例,进行阐述说明,具体的交互流程如下:用户在应用显示层选择读取奥迪车辆数据的诊断功能指令,应用显示层通过诊断服务层向诊断数据层发送启动奥迪诊断软件的调用指令,以调用奥迪软件,奥迪软件通过汽车can fd协议向汽车发送查看指令,以查看汽车的发动机系统是否存在,依次查看汽车存在的所有系统,并将所有系统的名称数据通过诊断服务层发送至应用显示层,应用显示层对汽车的所有系统进行显示,用户点击发动机系统的诊断功能指令,应用显示层通过诊断服务层向奥迪软件发送进入发动机系统指令,并对汽车的发动机系统进行故障诊断,生成故障码,将故障码通过诊断服务层发送至应用显示层,以供用户通过故障码了解到汽车发动机系统的具体情况。
31.本技术还提供一种汽车故障诊断方法,应用于应用显示层,其特征在于, 包括:s1、接收诊断软件选取信号,并将所述诊断软件选取信号通过诊断服务层发送至诊断数据层,其中,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,所述诊断数据层接收诊断软件选取信号之后,选取与所述诊断软件选取信号对应的诊断软件,并通过所述诊断软件对汽车进行故障诊断,生成诊断数据;s2、接收所述诊断数据层通过所述诊断服务层发送的诊断数据,并将所述诊断数据显示在车辆故障诊断设备的用户界面上。
32.在一个实施例中,所述接收诊断软件选取信号的步骤s1包括:s11、接收至少一个诊断功能指令,并根据所述诊断功能指令生成对应的调用指令;s12、将所述调用指令通过所述诊断服务层发送至诊断数据层,其中,所述诊断数据层根据所述调用指令启动对应的所述诊断软件,并通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。
33.在一个实施例中,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。
34.如图3所示,本技术还提供了一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储定时任务调度方法的过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现定时任务调度方法。
35.本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定。
36.本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任意一个定时任务调度方法。
37.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
38.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
39.以上所述仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
技术特征:1.一种汽车故障诊断系统,其特征在于,包括:应用显示层、诊断服务层和诊断数据层,所述应用显示层、所述诊断服务层与所述诊断数据层各自封装,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,用于获取汽车数据并对所述汽车进行故障诊断,生成诊断数据,所述应用显示层用于将所述诊断数据显示在车辆故障诊断设备的用户界面上;所述诊断数据层包括多个不同车型的诊断软件,且每个所述诊断软件相互独立,所述应用显示层通过所述诊断服务层分别与多个所述诊断软件数据交互,以调用不同的诊断软件对汽车进行诊断。2.根据权利要求1所述的汽车故障诊断系统,其特征在于,所述应用显示层包括多个诊断功能指令,当至少一个诊断功能指令被触发时,所述应用显示层用于通过所述诊断服务层向所述诊断数据层发送与所述诊断功能指令对应的调用指令,所述诊断数据层用于根据所述调用指令启动对应的所述诊断软件,还用于通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。3.根据权利要求1所述的汽车故障诊断系统,其特征在于,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。4.根据权利要求1所述的汽车故障诊断系统,其特征在于,所述诊断服务层设有多个交互协议,所述交互协议包括启动诊断协议、诊断类型协议、诊断连接协议、读取版本信息协议、故障码协议、读取数据流协议、工作测试协议、特殊功能协议和编程协议。5.根据权利要求2所述的汽车故障诊断系统,其特征在于, 所述诊断功能指令包括智能诊断指令和普通诊断指令,所述诊断数据层包括获取模块与选取模块;当所述智能诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第一调用指令,所述获取模块用于根据所述第一调用指令获取汽车的第一车型参数,并将所述第一车型参数发送至所述选取模块,所述选取模块用于选取与所述第一车型参数对应的诊断软件,并控制所述诊断软件开启,以对汽车进行故障诊断;当所述普通诊断指令被触发时,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第二调用指令,所述获取模块用于根据所述第二调用指令获取第二汽车参数,并将所述第二汽车参数通过所述诊断服务层反馈至所述应用显示层,所述应用显示层通过所述诊断服务层向所述诊断数据层发送第三调用指令,以调用与第三调用指令对应的诊断软件开启,对汽车进行故障诊断。6.一种汽车故障诊断方法,应用于应用显示层,其特征在于, 包括:接收诊断软件选取信号,并将所述诊断软件选取信号通过诊断服务层发送至诊断数据层,其中,所述诊断服务层设有交互协议,所述交互协议用于在所述应用显示层与所述诊断数据层之间建立信息交互通道,所述诊断数据层与汽车通信连接,所述诊断数据层接收诊断软件选取信号之后,选取与所述诊断软件选取信号对应的诊断软件,并通过所述诊断软件对汽车进行故障诊断,生成诊断数据;接收所述诊断数据层通过所述诊断服务层发送的诊断数据,并将所述诊断数据显示在车辆故障诊断设备的用户界面上。
7.根据权利要求6所述的汽车故障诊断方法,其特征在于,所述接收诊断软件选取信号的步骤包括:接收至少一个诊断功能指令,并根据所述诊断功能指令生成对应的调用指令;将所述调用指令通过所述诊断服务层发送至诊断数据层,其中,所述诊断数据层根据所述调用指令启动对应的所述诊断软件,并通过所述诊断软件获取所述汽车的汽车数据,并根据所述汽车数据对汽车进行诊断,以生成诊断数据。8.根据权利要求6所述的汽车故障诊断方法,其特征在于,所述诊断数据层的程序基于c语言进行编写,所述应用显示层的程序基于java和/或c语言进行编写。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6至8中任一项所述汽车故障诊断方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求6至8中任一项所述汽车故障诊断方法的步骤。
技术总结本申请涉及汽车诊断技术领域,公开了一种汽车故障诊断系统、方法、设备及介质,通过将汽车故障诊断系统分为三层,应用显示层、诊断服务层、诊断数据层,三层各自封装,这样使得各层的功能相互独立,当出现需要对某个诊断软件的部分代码进行更新或修改时,只用更改底层诊断数据层中诊断软件的部分代码,而应用显示层和诊断服务层不必做出修改,诊断软件更新或修改后,仅需要下载安装修改或更新的部分,能够减少诊断软件修复、更新所消耗的时间成本,且新增诊断软件时,可直接将其置于诊断数据层中,应用显示层可直接对其调用,这样能够使得车辆故障诊断设备可以对不同的车型进行诊断,增加车辆故障诊断设备与多个车型之间的适配性。车辆故障诊断设备与多个车型之间的适配性。车辆故障诊断设备与多个车型之间的适配性。
技术研发人员:蒋永鑫 刘云飞 罗源
受保护的技术使用者:深圳市星卡软件技术开发有限公司
技术研发日:2022.05.05
技术公布日:2022/7/4