故障诊断方法和相关装置与流程

文档序号:20045002发布日期:2020-02-28 12:53阅读:1174来源:国知局
故障诊断方法和相关装置与流程

本申请涉及故障诊断领域,尤其涉及一种故障诊断方法和相关装置。



背景技术:

汽车是人们最熟悉、最常见的交通工具,它在人们生活中发挥着十分重要的作用,随着汽车的保有量的剧增,汽车功能诊断显得尤为重要。

目前,通常采用的汽车诊断方式是使用汽车诊断仪来对汽车进行诊断,汽车诊断仪是运行在电脑端的故障诊断软件。在该汽车诊断方式中,电脑端往往通过usb接口与汽车进行通信,并通过运行的故障诊断软件来诊断该汽车的故障。然而,采用这种故障诊断方式,电脑端每次只能对一个汽车进行故障诊断。也就是说,电脑端不能同时诊断多个汽车的故障。因此,需要研究能够同时对多个汽车进行故障诊断的方案。



技术实现要素:

本申请实施例公开了一种故障诊断方法和相关装置,能够同时对多个汽车进行故障诊断,诊断效率高。

第一方面,本申请实施例提供了一种故障诊断方法,该方法可包括:

故障诊断装置扫描n个接口连接的n个待诊断设备,得到n组设备信息;其中,所述n个接口与所述n个待诊断设备一一对应,所述n组设备信息与所述n个待诊断设备一一对应,任一组设备信息包括所述故障诊断装置实现与所述任一组设备信息对应的待诊断设备的通信所需的信息,n为大于1的整数;

所述故障诊断装置将待向所述n个待诊断设备发送的m组发送信息存储至发送队列;m为大于1的整数;

所述故障诊断装置获取所述发送队列中待发送的目标组发送信息,所述目标组发送信息包括待向目标待诊断设备发送的数据;

所述故障诊断装置根据目标组设备信息和所述目标组发送信息,生成目标数据帧;所述目标组设备信息为所述n组设备信息中所述目标待诊断设备对应的一组设备信息,所述目标组发送信息还包括所述目标待诊断设备支持的目标故障诊断协议的目标协议标识;

所述故障诊断装置向所述目标待诊断设备发送所述目标数据帧。

本申请实施例中,故障诊断装置的每个接口可以连接一个待诊断设备,该故障诊断装置通过扫描该n个接口连接的n个待诊断设备,得到n组设备信息。该故障诊断装置利用该n组设备信息可以与该n个待诊断设备进行通信。该故障诊断装置采用发送队列的方式同时与该n个待诊断设备进行通信,能够同时、准确地与多个待诊断设备进行通信。

在一个可选的实现方式中,所述故障诊断装置将待向所述n个待诊断设备发送的m组发送信息存储至发送队列之前,所述方法还包括:

所述故障诊断装置获得所述目标协议标识;

所述故障诊断装置生成包括所述目标待诊断设备的标识、所述目标协议标识以及初始数据的所述目标组发送信息;所述初始数据为待向所述目标诊断设备发送的数据。

在一个可选的实现方式中,所述故障诊断装置获得所述目标协议标识之后,所述方法还包括:

所述故障诊断装置根据所述目标待诊断设备的标识和所述目标协议标识,确定与所述目标待诊断设备通过所述目标故障诊断协议进行通信的通道的通道值;

所述故障诊断装置生成包括所述目标待诊断设备的标识、所述目标协议标识以及初始数据的所述目标组发送信息包括:

所述故障诊断装置解析所述通道值,得到所述目标待诊断设备的标识和所述目标协议标识,以及生成包括所述目标待诊断设备的标识、所述目标协议标识以及所述初始数据的所述目标组发送信息。

在一个可选的实现方式中,所述故障诊断装置根据目标组设备信息和所述目标组发送信息,生成目标数据帧之前,所述方法还包括:

所述故障诊断装置获得所述目标组发送信息包括的所述目标待诊断设备的标识;

所述故障诊断装置根据所述目标待诊断设备的标识,从所述n组设备信息中获取所述目标组设备信息。

在一个可选的实现方式中,所述故障诊断装置向所述目标待诊断设备发送所述目标数据帧之后,所述方法还包括:

所述故障诊断装置接收来自所述目标待诊断设备的反馈数据帧;所述反馈数据帧为所述目标待诊断设备响应所述目标数据帧所发送的数据帧;

所述故障诊断装置解析所述反馈数据帧,得到帧功能字段;

所述故障诊断装置在所述帧功能字段为诊断数据帧指令的情况下,将所述反馈数据帧存储至消息队列;

所述故障诊断装置在所述帧功能字段不为所述诊断数据帧指令的情况下,将所述反馈数据帧存储至读队列。

在一个可选的实现方式中,所述目标组设备信息还包括所述目标待诊断设备的标识以及所述目标待诊断设备连接的usb接口的设备句柄;所述故障诊断装置解析所述反馈数据帧,得到帧功能字段之前,所述方法还包括:

确定发送所述反馈数据帧的待诊断设备连接的usb接口的目标设备句柄;

查询所述n组设备信息中,所述目标设备句柄对应的待诊断设备的标识,得到所述目标待诊断设备的标识;

所述故障诊断装置解析所述反馈数据帧,得到帧功能字段包括:

所述故障诊断装置解析所述反馈数据帧,得到所述帧功能字段、数据字段以及协议标识字段;

所述将所述反馈数据帧存储至消息队列包括:

将所述帧功能字段、所述数据字段、所述目标待诊断设备的标识以及所述协议标识字段作为一组数据存储至所述消息队列。

在一个可选的实现方式中,所述将所述帧功能字段、所述数据字段、所述目标待诊断设备的标识以及所述协议标识字段作为一组数据存储至所述消息队列之后,所述方法还包括:

所述故障诊断装置解析所述通道值,得到所述目标待诊断设备的标识和所述目标协议标识;

从所述消息队列中获取与所述目标待诊断设备的标识和所述目标协议标识相匹配的至少一组数据;

从所述至少一组数据中提取出数据部分。

第二方面,本申请实施例提供了一种故障诊断装置,该故障诊断装置包括:

扫描单元,用于扫描n个接口连接的n个待诊断设备,得到n组设备信息;其中,所述n个接口与所述n个待诊断设备一一对应,所述n组设备信息与所述n个待诊断设备一一对应,任一组设备信息包括所述故障诊断装置实现与所述任一组设备信息对应的待诊断设备的通信所需的信息,n为大于1的整数;

存储单元,用于将待向所述n个待诊断设备发送的m组发送信息存储至发送队列;m为大于1的整数;

获取单元,用于获取所述发送队列中待发送的目标组发送信息,所述目标组发送信息包括待向目标待诊断设备发送的数据;

生成单元,用于根据目标组设备信息和所述目标组信息,生成目标数据帧;所述目标组设备信息为所述n组设备信息中所述目标待诊断设备对应的一组设备信息,所述目标组信息包括所述目标待诊断设备支持的目标故障诊断协议的目标协议标识;

发送单元,用于向所述目标待诊断设备发送所述目标数据帧。

在一个可选的实现方式中,所述获取单元,还用于获得所述目标协议标识;

所述生成单元,还用于生成包括所述目标待诊断设备的标识、所述目标协议标识以及初始数据的所述目标组发送信息;所述初始数据为待向所述目标诊断设备发送的数据。

在一个可选的实现方式中,所述故障诊断装置还包括:

确定单元,用于根据所述目标待诊断设备的标识和所述目标协议标识,确定与所述目标待诊断设备通过所述目标故障诊断协议进行通信的通道的通道值;

解析单元,用于解析所述通道值,得到所述目标待诊断设备的标识和所述目标协议标识。

在一个可选的实现方式中,所述获取单元,还用于获得所述目标组发送信息包括的所述目标待诊断设备的标识;根据所述目标待诊断设备的标识,从所述n组设备信息中获取所述目标组设备信息。

在一个可选的实现方式中,所述故障诊断装置还包括:

接收单元,用于接收来自所述目标待诊断设备的反馈数据帧;所述反馈数据帧为所述目标待诊断设备响应所述目标数据帧所发送的数据帧;

所述解析单元,还用于解析所述反馈数据帧,得到帧功能字段;

所述存储单元,还用于在所述帧功能字段为诊断数据帧指令的情况下,将所述反馈数据帧存储至消息队列;在所述帧功能字段不为所述诊断数据帧指令的情况下,将所述反馈数据帧存储至读队列。

在一个可选的实现方式中,所述目标组设备信息还包括所述目标待诊断设备的标识以及所述目标待诊断设备连接的usb接口的设备句柄;

所述确定单元,还用于确定发送所述反馈数据帧的待诊断设备连接的usb接口的目标设备句柄;

查询单元,用于查询所述n组设备信息中,所述目标设备句柄对应的待诊断设备的标识,得到所述目标待诊断设备的标识;

所述解析单元,具体用于解析所述反馈数据帧,得到所述帧功能字段、数据字段以及协议标识字段;

所述存储单元,具体用于将所述帧功能字段、所述数据字段、所述目标待诊断设备的标识以及所述协议标识字段作为一组数据存储至所述消息队列。

在一个可选的实现方式中,所述解析单元,还用于在所述存储单元将所述帧功能字段、所述数据字段、所述目标待诊断设备的标识以及所述协议标识字段作为一组数据存储至所述消息队列之后,解析所述通道值,得到所述目标待诊断设备的标识和所述目标协议标识;

所述获取单元,还用于从所述消息队列中获取与所述目标待诊断设备的标识和所述目标协议标识相匹配的至少一组数据;所述故障诊断装置还包括:

提取单元,用于从所述至少一组数据中提取出数据部分。

第三方面,本申请实施例提供了一种电子设备,该电子设备包括:存储器,用于存储程序;处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如上述第一方面以及任一种可选的实现方式的方法。

第四方面,本申请实施例提供了一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行如上述第一方面以及任一种可选的实现方式的方法。

第五方面,本申请实施例提供了一种计算机可读存储介质,该计算机存储介质存储有计算机程序,该计算机程序包括程序指令,该程序指令当被处理器执行时使该处理器执行上述第一方面以及任一种可选的实现方式的方法。

第六方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面以及任一种可选的实现方式的方法。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1为本申请实施例提供的一种故障诊断方法流程图;

图2为本申请实施例提供的另一种故障诊断方法流程图;

图3为本申请实施例提供的一种故障诊断装置接收数据的方法流程;

图4为本申请实施例提供的一种故障诊断装置读消息队列中的数据的方法流程;

图5为本申请实施例提供的一种故障诊断装置的结构示意图;

图6为本申请实施例提供的另一种故障诊断装置的结构示意图。

具体实施方式

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法或设备固有的其他步骤或单元。

目前,通常采用的一种汽车故障诊断方案是使用一个运行有故障诊断软件的故障诊断装置(例如笔记本电脑)通过usb接口与待诊断设备(例如汽车)进行通信,进而对该待诊断设备进行故障诊断。在这种方案中,故障诊断装置每次只能对一个汽车进行故障诊断,即每次仅能连接一个待诊断设备。也就是说,故障诊断装置不能同时对多个汽车进行故障诊断。因此,需要研究能够同时对多个汽车进行故障诊断的方案。下面介绍本申请申请实施例提供的一种能够通过对多个汽车进行故障诊断的故障诊断方法。

图1为本申请实施例提供的一种故障诊断方法流程图,如图1所示,该方法可包括:

101、故障诊断装置扫描n个接口连接的n个待诊断设备,得到n组设备信息。

上述n个接口与上述n个待诊断设备一一对应,上述n组设备信息与上述n个待诊断设备一一对应,任一组设备信息包括上述故障诊断装置实现与上述任一组设备信息对应的待诊断设备的通信所需的信息,n为大于1的整数。该故障诊断装置可以是笔记本电脑、台式电脑、汽车诊断仪等运行有故障诊断软件(即上位机诊断软件)的电子设备。该n个接口可以是n个usb接口。可选的,故障诊断装置有n个或n个以上usb接口,每个usb接口可连接一个待诊断设备。待诊断设备可以是汽车,也可以是其他设备。在一些实施例中,故障诊断装置上运行的上位机诊断软件(即故障诊断软件)调用passthruscanfordevices函数,扫描该n个接口连接的n个待诊断设备,n组设备信息;将该n组设备信息存储至设备信息队列usbdeviceinforlist。可选的,任一组设备信息可以包括该任一组设备信息对应的待诊断设备所对应的如下信息:streamrx,即用于接收数据的句柄;streamtx,即用于发送数据的句柄;usbhandle设备句柄;usbdeviceinfo设备信息的结构;该待诊断设备的标识(即id号)。usbhandle设备句柄可以是上位机诊断软件上打开并初始化和标识具体设备(即待诊断设备)的句柄。usbdeviceinfor设备信息的结构包含设备(即待诊断设备)的名称,设备的产品标识(productid,简称pid),设备的序列号等等底层的详细信息。

可选的,故障诊断装置上运行的上位机诊断软件还可根据该n个待诊断设备的标识,调用passthruopen函数,一一打开并初始化查询到的待诊断设备,并注册统一接受数据的回调函数stmrx_complete。

102、故障诊断装置将待向n个待诊断设备发送的m组发送信息存储至发送队列。

m为大于1的整数。可选的,故障诊断装置在执行步骤102之前,可执行如下操作:故障诊断装置获得目标待诊断设备支持的故障诊断协议的目标协议标识;生成包括上述目标待诊断设备的标识、上述目标协议标识以及初始数据的目标组发送信息;上述初始数据为待向上述目标诊断设备发送的数据。该目标待诊断设备支持的故障诊断协议可以理解为用于故障诊断装置确定的用于诊断该目标待诊断设备的故障诊断协议。该目标待诊断设备包括于该n个待诊断设备,该目标组发送信息为该发送队列中的一组发送信息。在实际应用中,故障诊断装置可获得各待诊断设备所支持的故障诊断协议的标识以及待向各待诊断设备发送的数据,进而生成该m组发送信息。

在一个可选的实现方式中,上述故障诊断装置获得上述目标协议标识之后,上述方法还包括:

上述故障诊断装置根据上述目标待诊断设备的标识和上述目标协议标识,确定与上述目标待诊断设备通过上述目标故障诊断协议进行通信的通道的通道值;

上述故障诊断装置生成包括上述目标待诊断设备的标识、上述目标协议标识以及初始数据的上述目标组发送信息包括:

上述故障诊断装置解析上述通道值,得到上述目标待诊断设备的标识和上述目标协议标识,以及生成包括上述目标待诊断设备的标识、上述目标协议标识以及上述初始数据的上述目标组发送信息。

在一些实施例中,故障诊断装置上运行的上位机诊断软件可调用passthruconnect函数,选择deviceid设备号(例如目标待诊断设备的标识)和具体的协议protocolid(例如目标协议标识)作为参数传入;创建硬件通道channel,并将由deviceid左移16位加上protocolid生成的四字节的channel值(即通道值)返回给上位机诊断软件。上述故障诊断装置解析上述通道值,得到上述目标待诊断设备的标识和上述目标协议标识,以及生成包括上述目标待诊断设备的标识、上述目标协议标识以及上述初始数据的上述目标组发送信息可以是:故障诊断装置上运行的上位机诊断软件调用设置过滤器函数,设置获取参数函数,发送原始数据帧函数等等,由channel值解析出deviceid和protocolid,并把调用函数生成的一组发送数据存储至发送队列,即sendqueue队列。举例来说,上位机诊断软件调用设置过滤器函数可生成一组包括过滤器参数、deviceid以及protocolid的参数。又举例来说,上位机诊断软件调用设置发送原始数据帧函数可生成一组包括发送原始数据帧、deviceid以及protocolid的参数。应理解,故障诊断装置可生成多个通道值,一个待诊断设备对应一个或多个通道值,该故障诊断装置可根据每个通道值得到一组发送信息。也就是说,故障诊断装置可准确地获得待向各待诊断设备发送的各组信息。

103、故障诊断装置获取发送队列中待发送的目标组发送信息。

上述目标组发送信息包括待向目标待诊断设备发送的数据。

104、故障诊断装置根据目标组设备信息和目标组发送信息,生成目标数据帧。

上述目标组设备信息为上述n组设备信息中上述目标待诊断设备对应的一组设备信息,上述目标组发送信息还包括上述目标待诊断设备支持的目标故障诊断协议的目标协议标识。

在一个可选的实现方式中,上述故障诊断装置根据目标组设备信息和上述目标组发送信息,生成目标数据帧之前,上述方法还包括:

上述故障诊断装置获得上述目标组发送信息包括的上述目标待诊断设备的标识;

上述故障诊断装置根据上述目标待诊断设备的标识,从上述n组设备信息中获取上述目标组设备信息。在该实现方式中,可准确、快速地从n组设备信息中获取向目标待诊断设备发送数据所需的设备信息。

105、故障诊断装置向目标待诊断设备发送目标数据帧。

本申请实施例中,故障诊断装置采用发送队列的方式同时与该n个待诊断设备进行通信,能够同时、准确地与多个待诊断设备进行通信。

下面对图1中的故障诊断方法进一步进行详述。

图2为本申请实施例提供的另一种故障诊断方法流程图,图2中的方法是对图1中方法的进一步细化和详述,如图2所示,该方法可包括:

201、上位机诊断软件调用扫描函数扫描各待诊断设备。

可选的,故障诊断装置上运行的上位机诊断软件调用passthruscanfordevices函数(即扫描函数),扫描各待诊断设备。

202、扫描函数将扫描得到的设备信息的分别存储至设备信息队列(即usbdeviceinforlist)。

步骤201和步骤203为步骤101的一种可选的实现方式。

203、扫描函数返回给上位机诊断软件设备标识列表和扫描到的待诊断设备数。

该设备标识列表包括各待诊断设备的标识,待诊断设备数是指扫描到的待诊断设备的个数。

204、上位机诊断软件调用第一函数,一一打开并初始化查询到的待诊断设备,并注册统一接受数据的回调函数。

可选的,上位机诊断软件调用passthruopen函数(即第一函数),并传入各待诊断设备的标识(即各待诊断设备的id),一一打开并初始化查询到的待诊断设备,并注册统一接受数据的回调函数stmrx_complete。

205、上位机诊断软件调用第二函数,选择待诊断设备的标识和故障诊断协议标识作为参数传入;创建硬件通道,将生成的通道值并返回给上位机诊断软件。

可选的,上位机诊断软件调用passthruconnect函数(即第二函数),选择待诊断设备的标识和故障诊断协议标识作为参数传入;创建硬件通道channel。其中channel是由deviceid(即待诊断设备的标识)左移16位加上protocolid(即故障诊断协议标识)生成的四字节的通道值。在一些实施例中,上位机诊断软件可自行根据各待诊断设备的标识选择用于诊断各待诊断设备的故障诊断协议,进而获得各故障诊断协议标识。在一些实施例中,用户可以选择用于诊断各待诊断设备的故障诊断协议,进而获得各故障诊断协议标识。

206、传入生成的通道值,上位机诊断软件调用设置过滤器函数、设置获取参数函数、发送原始数据帧函数等等,由通道值解析出待诊断设备id和故障诊断协议id,并把得到的信息存储至发送队列。

传入生成的通道值是指上位机诊断软件将各通道值分别传入过滤器函数、设置获取参数函数、发送原始数据帧函数等等。举例来说,上位机诊断软件将各通道值分别传入过滤器函数,该过滤器函数可以解析各通道值得到每个通道值对应的待诊断设备id和故障诊断协议id,并将过滤器参考、待诊断设备id和故障诊断协议id作为一组信息存储至发送队列。步骤205和步骤206为步骤102的一种可选的实现方式。

207、故障诊断装置中的发送线程迭代遍历发送队列,取出发送队列中的一组数据,得到该组数据中的待诊断设备id。

图2中的设备id是指待诊断设备id(即待诊断设备的标识),协议id是指故障故障协议id(即故障诊断协议标识)。步骤207是步骤103的一种可选的实现方式。

208、通过待诊断设备id遍历设备信息队列,找到对应的设备信息的结构,取出用于发送数据的句柄,根据故障诊断协议id和数据组包成以55aa格式开头的数据帧。

数据组可以是上述m组发送信息。应理解,上位机诊断软件可以根据每组发送信息和每组发送信息对应的故障诊断协议id包成以55aa格式开头的数据帧。步骤208是步骤104一种可选的实现方式。

209、上位机诊断软件调用第三函数,传入用于发送数据的句柄和组包后的数据帧作为参数,发送给指定的待诊断设备。

可选的,上位机诊断软件调用stmk_write函数(即第三函数),传入streamtx用于发送数据的句柄和组包后的数据帧作为参数,发送给指定的待诊断设备。步骤209是步骤105一种可选的实现方式。

图2以底层实现的方式描述了故障诊断装置向各待诊断设备发送数据的过程。在实际应用中,故障诊断装置会接收到来自各待诊断设备的数据帧。下面来描述故障诊断装置如何接收来自各待诊断设备的数据帧的方法流程。

图3为本申请实施例提供的一种故障诊断装置接收数据的方法流程,如图3所示,该方法可包括:

301、故障诊断装置的底层驱动自动调用回调函数,并将目标设备句柄传入。

底层驱动自动调用stmrx_complete回调函数(即上述注册的统一接受数据的回调函数),并把usbhandle设备句柄传入。该目标设备句柄可以是目标待诊断设备连接的usb接口的设备句柄,该目标待诊断设备可以上述n个待诊断设备中任一个待诊断设备。可选的,故障诊断装置在执行步骤301之前,接收来自上述目标待诊断设备的反馈数据帧;上述反馈数据帧为上述目标待诊断设备响应上述目标数据帧所发送的数据帧。该故障诊断装置可识别出接收到该反馈帧数据的usb接口的设备句柄(即目标设备句柄)。

302、故障诊断装置通过目标设备句柄,迭代遍历设备信息队列,得到设备信息的结构以及目标待诊断设备的标识。

故障诊断装置通过目标设备句柄,迭代遍历设备信息队列,得到设备信息的结构以及目标待诊断设备的标识可以是:该故障诊断装置查询上述n组设备信息中,上述目标设备句柄对应的待诊断设备的标识以及设备信息的结构。

303、故障诊断装置解析校验底层接受的55aa开头的数据帧,提取协议标识字段、帧功能字段、数据字段。

该55aa开头的数据帧可以是上述反馈数据帧。该协议标识字段可以包括上述目标协议标识。

304、故障诊断装置获得响应信息。

该响应信息可以包括目标待诊断设备的标识、协议标识字段、帧功能字段、数据字段。

305、故障诊断装置判断帧功能字段是否为诊断数据帧指令。

若是,执行步骤306;若否,执行步骤307。

306、故障诊断装置将响应信息存储至消息队列。

307、故障诊断装置将响应信息存储至读队列。

图3中描述了故障诊断装置接收目标待诊断设备响应的数据帧的方法流程。应理解,故障诊断装置可采用类似的方式接收各待诊断设备响应的数据帧。

在实际应用中,故障诊断装置还会读取消息队列中各组数据。下面来描述故障诊断装置如何读取消息队列中的数据的方法流程。

图4为本申请实施例提供的一种故障诊断装置读消息队列中的数据的方法流程,如图4所示,该方法可包括:

401、上位机诊断软件调用第四函数,并传入通道值。

可选的,上位机诊断软件调用passthrureadmsgs函数(即第四函数),并将channel值传入passthrureadmsgs函数。

402、第四函数通过通道值解析出设备id和协议id。

图4中的设备id是指待诊断设备id(即待诊断设备的标识),协议id是指故障故障协议id(即故障诊断协议标识)。应理解,该第四函数解析一个通道值,可得到一个设备id和协议id。在实际应用中,上位机诊断软件可调用该第四函数,并分别传入图2中的步骤205生成的通道值。

403、第四函数通过设备id和协议lid遍历消息队列,找到匹配的响应信息。

404、第四函数提取响应信息中的数据部分,并返回给上位机诊断软件。

可选的,passthrureadmsgs函数提取响应信息中的data数据部分,并填充passthru_msg结构体,并返回给上位机诊断软件。

可以理解,故障诊断装置可调用该第四函数并传入通道值,该第四函数可从消息队列中准确地提取出各待诊断设备发送的数据。

图5为本申请实施例提供的一种故障诊断装置的结构示意图,如图5所示,该故障诊断装置可包括:

扫描单元501,用于扫描n个接口连接的n个待诊断设备,得到n组设备信息;其中,上述n个接口与上述n个待诊断设备一一对应,上述n组设备信息与上述n个待诊断设备一一对应,任一组设备信息包括上述故障诊断装置实现与上述任一组设备信息对应的待诊断设备的通信所需的信息,n为大于1的整数;

存储单元502,用于将待向上述n个待诊断设备发送的m组发送信息存储至发送队列;m为大于1的整数;

获取单元503,用于获取上述发送队列中待发送的目标组发送信息,上述目标组发送信息包括待向目标待诊断设备发送的数据;

生成单元504,用于根据目标组设备信息和上述目标组信息,生成目标数据帧;上述目标组设备信息为上述n组设备信息中上述目标待诊断设备对应的一组设备信息,上述目标组信息包括上述目标待诊断设备支持的目标故障诊断协议的目标协议标识;

发送单元505,用于向上述目标待诊断设备发送上述目标数据帧。

在一个可选的实现方式中,获取单元503,还用于获得上述目标协议标识;

生成单元504,还用于生成包括上述目标待诊断设备的标识、上述目标协议标识以及初始数据的上述目标组发送信息;上述初始数据为待向上述目标诊断设备发送的数据。

在一个可选的实现方式中,上述故障诊断装置还包括:

确定单元506,用于根据上述目标待诊断设备的标识和上述目标协议标识,确定与上述目标待诊断设备通过上述目标故障诊断协议进行通信的通道的通道值;

解析单元507,用于解析上述通道值,得到上述目标待诊断设备的标识和上述目标协议标识。

在一个可选的实现方式中,获取单元503,还用于获得上述目标组发送信息包括的上述目标待诊断设备的标识;根据上述目标待诊断设备的标识,从上述n组设备信息中获取上述目标组设备信息。

在一个可选的实现方式中,上述故障诊断装置还包括:

接收单508元,用于接收来自上述目标待诊断设备的反馈数据帧;上述反馈数据帧为上述目标待诊断设备响应上述目标数据帧所发送的数据帧;

解析单元507,还用于解析上述反馈数据帧,得到帧功能字段;

存储单元502,还用于在上述帧功能字段为诊断数据帧指令的情况下,将上述反馈数据帧存储至消息队列;在上述帧功能字段不为上述诊断数据帧指令的情况下,将上述反馈数据帧存储至读队列。

在一个可选的实现方式中,上述目标组设备信息还包括上述目标待诊断设备的标识以及上述目标待诊断设备连接的usb接口的设备句柄;

确定单元506,还用于确定发送上述反馈数据帧的待诊断设备连接的usb接口的目标设备句柄;

查询单元508,用于查询上述n组设备信息中,上述目标设备句柄对应的待诊断设备的标识,得到上述目标待诊断设备的标识;

解析单元507,具体用于解析上述反馈数据帧,得到上述帧功能字段、数据字段以及协议标识字段;

存储单元502,具体用于将上述帧功能字段、上述数据字段、上述目标待诊断设备的标识以及上述协议标识字段作为一组数据存储至上述消息队列。

在一个可选的实现方式中,解析单元507,还用于在上述存储单元将上述帧功能字段、上述数据字段、上述目标待诊断设备的标识以及上述协议标识字段作为一组数据存储至上述消息队列之后,解析上述通道值,得到上述目标待诊断设备的标识和上述目标协议标识;

获取单元503,还用于从上述消息队列中获取与上述目标待诊断设备的标识和上述目标协议标识相匹配的至少一组数据;上述故障诊断装置还包括:

提取单元509,用于从上述至少一组数据中提取出数据部分。

请参阅图6,图6是本申请实施例提供的一种故障诊断设备的结构示意图,包括:至少一个处理器601,例如中央处理器(centralprocessingunit,cpu),至少一个存储器602,输入输出接口603和总线604。其中,上述总线604可以是一组并行的数据线,用于实现上述处理器601、上述存储器602和上述输入输出接口603的相互连接;上述存储器602可以是高速随机存取存储器(randomaccessmemory,ram),也可以是非易失性存储器(non-volatilememory),例如至少一个只读存储器(readonlymemory,rom)。

具体的,上述输入输出接口603在处理器601的控制下与多个待诊断设备进行通信。

具体的,上述存储器602中可以存储程序指令,上述处理器1001可用于调用程序指令执行图1至图4所示的方法。处理器601可实现图5中除发送单元505和接收单元508之外的各单元的功能。输入输出接口603可实现图5中发送单元505和接收单元508的功能。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,存储介质包括只读存储器(readonlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmablereadonlymemory,prom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子抹除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

以上对本申请实施例公开的一种故障诊断方法及相关装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1