一种服务诊断请求查找方法及装置制造方法

文档序号:6536364阅读:138来源:国知局
一种服务诊断请求查找方法及装置制造方法
【专利摘要】本申请提供了一种服务诊断请求查找方法及装置,预先设置一查找表,并将查找表中的元素的值初始化为第一标识,方法包括:获取电子控制单元支持的诊断服务请求的服务标识集合,将服务标识集合中的服务标识按从小到大或从大到小的顺序排序,得到第一服务标识集合,按预设规则确定与每个服务标识对应的索引号,通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用第二标识替换通过对应索引号索引的第一标识,得到第一查找表;当接收到诊断服务请求的服务标识时,通过该服务标识确定第一索引号,从第一查找表中读取由第一索引号索引的元素。本申请可保证每个诊断服务请求的查找速度相同,且仅需一个查找工作量。
【专利说明】一种服务诊断请求查找方法及装置
【技术领域】
[0001]本发明涉及汽车诊断通信【技术领域】,尤其涉及一种服务诊断请求查找方法及装置。
【背景技术】
[0002]随着电子技术的快速发展,汽车上广泛使用电子控制单元E⑶,这些E⑶之间一般通过控制器局域网CAN进行报文通信。在汽车行驶过程中,单个ECU除了需要和其它ECU进行通信以外,还会实时监测自身的一些故障状态,例如,和其它ECU之间是否丢失通信,一旦发生相应的故障,E⑶会按照固定的格式把故障信息保存在自身的Flash或者EEPROM中。如果发生了比较严重的故障,车主会将汽车送到4S店进行维修,此时,汽车维修人员将汽车诊断设备接入汽车车载诊断OBD接口,操作汽车诊断设备给ECU发送相应的指令,读取ECU中的故障信息,并根据读取到的故障信息查找故障维修手册进行检修。在这个过程中,汽车诊断设备需要按照固定的报文格式给ECU发送报文,即诊断服务请求,ECU收到诊断服务请求后,需要尽快查找、处理并给出诊断服务响应,这一通信过程即为诊断通信。
[0003]国际化标准组织ISO专门就汽车诊断设备和ECU之间的诊断通信制定了相应的诊断协议,IS014229-1和IS015031-5是最为常见的诊断协议。其中,IS015031-5规定了 10个诊断服务请求(0x01,0x02,0x03,0x04, 0x05,0x06, 0x07,0x08, 0x09,OxOA), IS014229-1 规定了 25 个诊断服务请求(0x10,0x11,0x14,0x19,0x22,0x23,0x24,0x27,0x28,0x2A,0x2C,0x2E,0x2F,0x31,0x34,0x35,0x36,0x37,0x3D,0x3E,0x83,0x84,0x85,0x86,0x87),每个诊断服务请求的服务标识(Service Identifier, SID)都独立且唯一。对于与汽车排放相关的E⑶而言,例如,发动机管理系统,通常需要同时遵循IS014229-1和IS015031-5协议,对于其它E⑶而言,通常只需遵循IS014229-1协议即可。
[0004]ECU收到汽车诊断设备发来的诊断服务请求后,必须在规定的时间内给出诊断服务响应,否则会造诊断通信失败,然后进行下一次诊断通信尝试。由于汽车维修人员在进行检修的过程中,需要频繁的操作汽车诊断设备,即向ECU发送很多诊断服务请求,如果单个诊断服务请求的处理速度过慢,累加到一起就会影响到整个故障检修的时间。因此,需要ECU软件开发人员除了遵循协议在规定的时间内给出诊断服务响应外,尽可能的提高每个诊断服务请求的查找效率。
[0005]现有技术中,查找诊断服务请求通常采用for循环查找法。假设ECU需要同时支持IS014229-1和IS015031-5协议,即支持35个诊断服务请求,设计一个数组A,把ECU支持的诊断服务请求SID按照从小到大或者从大到小顺序存储起来,当收到任何一个诊断服务请求的时候,将其对应的SID值与数据A中的元素进行比对,直到找到相等的结果,才停止比对。使用这种方法进行数据查找的话,当诊断服务请求的SID等于数据A中的第一个元素的时候(SID=A[0]),查找时间最短,只需要进行I次查找工作,反之,当诊断服务请求SID等于数据A中的最后第一个元素时(SID=A[34]),查找时间最长,需要进行35次查找工作,这种查找方式导致不同的SID的查找速度有很大差异。
【发明内容】

[0006]有鉴于此,本发明提供了一种服务诊断请求查找方法及装置,用以解决现有技术中的查找方式导致不同的SID的查找速度有很大差异的问题,其技术方案如下:
[0007]—种服务诊断请求查找方法,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述方法包括:
[0008]获取电子控制单元所支持的诊断服务请求的服务标识集合;
[0009]将所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合;
[0010]按预设规则确定与每个服务标识对应的所述查找表的索引号,通过每个服务标识在所述第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表;
[0011]当接收到诊断服务请求的服务标识时,通过接收的服务标识确定第一索引号,从所述第一查找表中读取由所述第一索引号索引的元素。
[0012]其中,所述查找表包括72个元素,所述服务标识集合中的服务标识按从小到大的顺序进行排序;
[0013]则所述按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为:
[0014]对于所述第一服务标识集合中的目标服务标识,判断所述目标服务标识是否大于0x80 ;
[0015]如果是,则用所述目标服务标识减去0x40,将所述目标服务标识减去0x40得到的值转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号;
[0016]如果否,则将所述目标服务标识转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号。
[0017]其中,当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为:
[0018]当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80 ;
[0019]如果是,则用所述接收的诊断服务请求的服务标识减去0x40,将所述接收的诊断服务请求的服务标识减去0x40得到的值确定为所述第一索引号;
[0020]如果否,则将所述接收的诊断服务请求的服务标识确定为所述第一索引号。
[0021]其中,所述查找表包括135个元素;
[0022]则按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为:
[0023]对于所述第一服务标识集合中的目标服务标识,将所述目标服务标识转换为十进制数,并将所述十进制数作为与所述目标服务标识对应的索引号;
[0024]当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为:
[0025]当接收到诊断服务请求的服务标识时,将接收的诊断服务请求的服务标识确定为所述第一索引号。
[0026]所述方法还包括:[0027]当所述第一索引号索引的元素的值不为所述第一标识时,调用与所述第一索引号索引的元素的值对应的诊断服务请求处理函数对接收的诊断服务请求进行处理。
[0028]一种服务诊断请求查找装置,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述装置包括:
[0029]获取模块,用于获取电子控制单元所支持的诊断服务请求的服务标识集合;
[0030]排序模块,用于将所述获取单元获取的所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合;
[0031]第一确定模块,用于按预设规则确定与每个服务标识对应的所述查找表的索引号;
[0032]第二确定模块,用于通过每个服务标识在所述第一服务标识集合中的排序确定与每个服务标识对应的第二标识;
[0033]替换模块,用于用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表;
[0034]第三确定模块,用于当接收到诊断服务请求的服务标识时,通过接收的服务标识
确定第一索引号;
[0035]读取模块,用于从所述第一查找表中读取由所述第一索引号索引的元素。
[0036]其中,所述查找表包括72个元素,所述服务标识集合中的服务标识按从小到大的顺序进行排序;
[0037]则所述第一确定模块,包括:
[0038]第一判断子模块,用于对于所述第一服务标识集合中的目标服务标识,判断所述目标服务标识是否大于0x80 ;
[0039]第一确定子模块,用于当所述目标服务标识大于0x80时,用所述目标服务标识减去0x40,将所述目标服务标识减去0x40得到的值转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号;
[0040]第二确定子模块,用于当所述目标服务标识小于等于0x80时,将所述目标服务标识转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号。
[0041]其中,所述第三确定模块包括:
[0042]第二判断子模块,用于当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80 ;
[0043]第三确定子模块,用于当接收的诊断服务请求的服务标识大于0x80时,用所述接收的诊断服务请求的服务标识减去0x40,将所述接收的诊断服务请求的服务标识减去0x40得到的值确定为所述第一索引号;
[0044]第四确定子模块,用于当接收的诊断服务请求的服务标识小于等于0x80时,将所述接收的诊断服务请求的服务标识确定为所述第一索引号。
[0045]其中,所述查找表包括135个元素;
[0046]则所述第一确定模块包括:
[0047]第五确定子模块,用于对于所述第一服务标识集合中的目标服务标识,将所述目标服务标识转换为十进制数,并将所述十进制数作为与所述目标服务标识对应的索引号;
[0048]所述第三确定模块包括:[0049]第六确定子模块,用于当接收到诊断服务请求的服务标识时,将接收的诊断服务请求的服务标识确定为所述第一索引号。
[0050]所述装置还包括:
[0051]处理模块,用于当所述第一索引号索引的元素的值不为所述第一标识时,调用与所述第一索引号索引的元素的值对应的诊断服务请求处理函数,对接收的诊断服务请求进行处理。
[0052]上述技术方案具有如下有益效果:
[0053]本发明提供的服务诊断请求查找方法及装置,将电子控制单元所支持的诊断服务请求的服务标识进行排序,按预设规则确定与每个服务标识对应的查找表的索引号,并通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,然后用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表,基于第一查找表查找诊断服务请求,可保证每个诊断服务请求的查找速度相同,并且仅需要一个查找工作量,查找效果较好。
【专利附图】

【附图说明】
[0054]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0055]图1为本发明实施例提供的一种服务诊断请求查找方法的流程示意图;
[0056]图2为本发明实施例提供的另一种服务诊断请求查找方法的流程示意图;
[0057]图3为本发明实施例提供的另一种服务诊断请求查找方法的流程示意图;
[0058]图4为本发明实施例提供的服务诊断请求查找方法中,按预设规则确定与每个服务标识对应的查找表的索引号的实现方式的流程示意图;
[0059]图5为本发明实施例提供的服务诊断请求查找方法中,当接收到诊断服务请求的服务标识时,通过接收到的服务标识确定第一索引号的实现方式的流程示意图;
[0060]图6为本发明实施例提供的一种服务诊断请求查找装置的结构示意图。
【具体实施方式】
[0061]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0062]请参阅图1,为本发明实施例提供的一种服务诊断请求查找方法的流程示意图,预先设置一包括预设个数的元素的查找表,并将查找表中的元素的值初始化为第一标识,该方法可以包括:
[0063]步骤SlOl:获取电子控制单元所支持的诊断服务请求的服务标识集合。
[0064]步骤S102:将服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合。[0065]步骤S103:按预设规则确定与每个服务标识对应的查找表的索引号。
[0066]步骤S104:通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识。
[0067]步骤S105:用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表。
[0068]步骤S106:当接收到诊断服务请求的服务标识时,通过接收到的诊断服务请求的服务标识确定第一索引号。
[0069]步骤S107:从第一查找表中读取由第一索引号索引的元素。
[0070]本发明实施例提供的服务诊断请求查找方法,将电子控制单元所支持的诊断服务请求的服务标识进行排序,按预设规则确定与每个服务标识对应的查找表的索引号,并通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,然后用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表,基于第一查找表查找诊断服务请求,可保证每个诊断服务请求的查找速度相同,并且仅需要一查找工作量。
[0071]请参阅图2,为本发明实施例提供的另一种服务诊断请求查找方法的流程示意图,预先设置一查找表,该查找表包括135个元素,并且,将135个元素的值初始化为第一标识(例如OxFF),该方法可以包括:
[0072]步骤S201:获取电子控制单元所支持的诊断服务请求的服务标识集合。
[0073]其中,电子控制单元所支持的诊断服务请求可以为IS015031-5诊断服务请求,也可以为IS014229-1诊断服务请求,也可以为IS015031-5诊断服务请求和IS014229-1诊断服务请求。
[0074]步骤S202:将服务标识集合中的服务标识按从小到大的顺序进行排序,得到第一服务标识集合。
[0075]步骤S203:将每个服务标识转换为十进制数,并将转换得到的十进制数作为与每个服务标识对应的索引号。
[0076]示例性的,服务标识为0x01,由于0x01转换为十进制数为1,因此,将I作为查找
表索引号。
[0077]步骤S204:通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识。
[0078]示例性的,服务标识集合包括9个服务标识,0x01排在9个服务标识的第0位(从0开始排),则,确定与服务标识0x01对应的第二标识为0x00。
[0079]步骤S205:用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表。
[0080]示例性的,与服务标识0x01对应的索引号为1,与服务标识0x01对应的第二标识为0x00,则将由索引号I索引的第一标识(如OxFF)替换为第二标识为0x00。对于服务标识集合中的每个服务标识都进行上述处理,可得到第一查找表。
[0081]步骤S206:当接收到诊断服务请求的服务标识时,将接收到的诊断服务请求的服务标识确定为第一索引号。
[0082]步骤S207:从第一查找表中读取由第一索引号索引的元素。[0083]步骤S208:当第一索引号索引的元素的值不为第一标识时,调用与第一索引号索引的元素的值对应的诊断服务请求处理函数对接收的诊断服务请求进行处理。
[0084]需要说明的是,当第一索引号索引的元素的值为第一标识时,表明电子控制单元不支持接收的诊断服务请求。
[0085]本发明实施例提供的服务诊断请求查找方法,将电子控制单元所支持的诊断服务请求的服务标识进行排序,将每个服务标识的十进制数作为与每个服务标识对应的索引号,并通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,然后用确定出的第二标识替换通过对应的索引号索引的第一标识,得到第一查找表,基于第一查找表查找诊断服务请求,可保证每个诊断服务请求的查找速度相同,并且仅需要一查找工作量。
[0086]考虑到IS015031-5诊断服务请求的服务标识和IS014229-1诊断服务请求的服务标识中,最大的服务标识为0x87,由于0x87转换为十进制数为135,因此,上述实施例中设置的查找表中的元素的个数为135个。然而,包括135个元素的查找表会占用很大的存储空间。由于IS015031-5诊断服务请求和IS014229-1诊断服务请求标识大于0x80的诊断服务请求标识只有5个,分别为0X83、0X84、0X85、0X86、0X87,为了减小查找表占用的存储空间,同时兼顾执行效率,本实施例与上述实施例的区别在于,查找表中设置的元素只包括72个元素,并且对大于0x80的诊断服务请求的服务标识做了处理。本实施例与上述实施例相比,会节省135-72=63个字节的存储空间。
[0087]请参阅图3,为本发明实施例提供的另一种服务诊断请求查找方法的流程示意图,预先设置一查找表,该查找表包括72个元素,并且72个元素的值被初始化为第一标识(如OxFF),该方法可以包括:
[0088]步骤S301:获取电子控制单元所支持的诊断服务请求的服务标识集合。
[0089]其中,电子控制单元所支持的诊断服务请求可以包括IS015031-5诊断服务请求,也可以包括IS014229-1诊断服务请求,也可同时包括IS015031-5诊断服务请求和IS014229-1诊断服务请求。
[0090]步骤S302:将服务标识集合中的服务标识按从小到大的顺序进行排序,得到第一服务标识集合。
[0091]步骤S303:按预设规则确定与每个服务标识对应的查找表的索引号。
[0092]具体的,请参阅图4,为本发明实施例提供的服务诊断请求查找方法中,按预设规则确定与每个服务标识对应的查找表的索引号的实现方式的流程示意图,可以包括:
[0093]步骤S401:对于第一服务标识集合中的目标服务标识,判断目标服务标识是否大于0x80,如果是,则执行步骤s402a,否则,执行步骤S402b。
[0094]步骤S402a:用目标服务标识减去0x40,将目标服务标识减去0x40得到的值转换为十进制数,将该十进制数作为与目标服务标识对应的索引号。
[0095]步骤S402b:将目标服务标识转换为十进制数,将该十进制数作为与目标服务标识对应的索引号。
[0096]在确定出与每个服务标识对应的查找表的索引号后,返回服务诊断请求查找方法的流程:
[0097]步骤S304:通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识。
[0098]步骤S305:用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表。
[0099]步骤S306:当接收到诊断服务请求的服务标识时,通过接收到的诊断服务请求的服务标识确定第一索引号。
[0100]具体的,请参阅图5,为本发明实施例提供的服务诊断请求查找方法中,当接收到诊断服务请求的服务标识时,通过接收到的诊断服务请求的服务标识确定第一索引号的实现方式的流程示意图,可以包括:
[0101]步骤S501:当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80,如果是,则执行步骤S502a,否则,执行步骤S502b。
[0102]步骤S502a:用接收的诊断服务请求的服务标识减去0x40,将接收的诊断服务请求的服务标识减去0x40得到的值确定为第一索引号。
[0103]步骤S502b:将接收的诊断服务请求的服务标识确定为第一索引号。
[0104]在确定出第一索引号后,返回服务诊断请求查找方法的流程:
[0105]步骤S307:从第一查找表中读取由第一索引号索引的元素。
[0106]步骤S308:当第一索引号索引的元素的值不为第一标识时,调用与第一索引号索引的元素的值对应的诊断服务请求处理函数,对接收的诊断服务请求进行处理。
[0107]需要说明的是,当第一索引号索引的元素的值为第一标识时,表明电子控制单元不支持接收的诊断服务请求。
[0108]本发明实施例提供的服务诊断请求查找方法,将电子控制单元所支持的诊断服务请求的服务标识进行排序,通过将每个服务标识与0x80进行比较确定与每个服务标识对应的索引号,并通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,然后用确定出的第二标识替换通过对应的索引号索引的第一标识,得到第一查找表,基于第一查找表查找诊断服务请求,可保证每个诊断服务请求的查找速度相同,并且仅需要一个查找工作量。另外,本发明实施例在兼顾查找效率的同时,降低了查找表所占用的存储空间。
[0109]在上述本发明实施例的基础上,下面分别以电子控制单元所支持的诊断服务请求为IS015031-5诊断服务请求和IS014229-1诊断服务请求为例,对上述本发明实施例提供的技术方案进行详细说明。
[0110]预先设置包括72个元素查找表,并将查找表中的72个元素初始化为OxFF。
[0111]第一种可能的情况,电子控制单元所支持的诊断服务请求为IS015031-5诊断服务请求:
[0112]示例性的,电子控制单元所支持的诊断服务请求为9个IS015031-5诊断服务请求,具体的,9个IS015031-5诊断服务请求的服务标识分别为0x01、0x03、0x02、0x04、0x07、0x06、0x08、0x09、OxOA。
[0113]在获取到上述9个IS015031-5诊断服务请求的服务标识后,对9个服务标识按从小到大的顺序进行排序,排序后为:0x01、0x02、0x03、0x04、0x06、0x07、0x08、0x09、0x0A。
[0114]由于9个服务标识均小于0x80,因此,直接将服务标识转换为十进制数。
[0115]示例性的,0x01转换为十进制数为01,将01作为查找表的索引号gSidMap[01],由于OxOl排在9个服务标识的第0位(从0开始排),因此,将查找表中gSidMap[01]索引的元素的值替换为0x00,即,此时gSidMap [01] =0x00 ;示例性的,0x02转换为十进制数为02,将02作为查找表的索引号gSidMap[02],由于0x02排在9个服务标识的第I位,因此,将查找表中gSidMap[02]索引的元素的值替换为0别1,8卩,此时§31(11&1?[01]=(^01。同样的,对其它的服务标识也执行上述操作,得到第一查找表,第一查找表如下所示:
[0116]表1
[0117]
【权利要求】
1.一种服务诊断请求查找方法,其特征在于,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述方法包括: 获取电子控制单元所支持的诊断服务请求的服务标识集合; 将所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合; 按预设规则确定与每个服务标识对应的所述查找表的索引号,通过每个服务标识在所述第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表; 当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,从所述第一查找表中读取由所述第一索引号索引的元素。
2.根据权利要求1所述的方法,其特征在于,所述查找表包括72个元素,所述服务标识集合中的服务标识按从小到大的顺序进行排序; 则所述按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为: 对于所述第一服务标识集合中的目标服务标识,判断所述目标服务标识是否大于0x80 ; 如果是,则用所述目标服务标识减去0x40,将所述目标服务标识减去0x40得到的值转换为十进制数,并将所 述十进制数确定为与所述目标服务标识对应的索引号; 如果否,则将所述目标服务标识转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号。
3.根据权利要求2所述的方法,其特征在于,当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为: 当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80 ; 如果是,则用所述接收的诊断服务请求的服务标识减去0x40,将所述接收的诊断服务请求的服务标识减去0x40得到的值确定为所述第一索引号; 如果否,则将所述接收的诊断服务请求的服务标识确定为所述第一索引号。
4.根据权利要求1所述的方法,其特征在于,所述查找表包括135个元素; 则按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为: 对于所述第一服务标识集合中的目标服务标识,将所述目标服务标识转换为十进制数,并将所述十进制数作为与所述目标服务标识对应的索引号; 当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为: 当接收到诊断服务请求的服务标识时,将接收的诊断服务请求的服务标识确定为所述第一索引号。
5.根据权利要求1~4中任意一项所述的方法,其特征在于,所述方法还包括: 当所述第一索引号索引的元素的值不为所述第一标识时,调用与所述第一索引号索引的元素的值对应的诊断服务请求处理函数对接收的诊断服务请求进行处理。
6.一种服务诊断请求查找装置,其特征在于,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述装置包括:获取模块,用于获取电子控制单元所支持的诊断服务请求的服务标识集合; 排序模块,用于将所述获取单元获取的所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合; 第一确定模块,用于按预设规则确定与每个服务标识对应的所述查找表的索引号;第二确定模块,用于通过每个服务标识在所述第一服务标识集合中的排序确定与每个服务标识对应的第二标识; 替换模块,用于用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表; 第三确定模块,用于当接收到诊断服务请求的服务标识时,通过接收的服务标识确定第一索引号; 读取模块,用于从所述第一查找表中读取由所述第一索引号索引的元素。
7.根据权利要求6所述的装置,其特征在于,所述查找表包括72个元素,所述服务标识集合中的服务标识按从小到大的顺序进行排序; 则所述第一确定模块,包括: 第一判断子模块,用于对于所述第一服务标识集合中的目标服务标识,判断所述目标服务标识是否大于0x80 ; 第一确定子模块, 用于当所述目标服务标识大于0x80时,用所述目标服务标识减去0x40,将所述目标服务标识减去0x40得到的值转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号; 第二确定子模块,用于当所述目标服务标识小于等于0x80时,将所述目标服务标识转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号。
8.根据权利要求7所述的装置,其特征在于,所述第三确定模块包括: 第二判断子模块,用于当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80 ; 第三确定子模块,用于当接收的诊断服务请求的服务标识大于0x80时,用所述接收的诊断服务请求的服务标识减去0x40,将所述接收的诊断服务请求的服务标识减去0x40得到的值确定为所述第一索引号; 第四确定子模块,用于当接收的诊断服务请求的服务标识小于等于0x80时,将所述接收的诊断服务请求的服务标识确定为所述第一索引号。
9.根据权利要求6所述的装置,其特征在于,所述查找表包括135个元素; 则所述第一确定模块包括: 第五确定子模块,用于对于所述第一服务标识集合中的目标服务标识,将所述目标服务标识转换为十进制数,并将所述十进制数作为与所述目标服务标识对应的索引号; 所述第三确定模块包括: 第六确定子模块,用于当接收到诊断服务请求的服务标识时,将接收的诊断服务请求的服务标识确定为所述第一索引号。
10.根据权利要求6~9中任意一项所述的装置,其特征在于,所述装置还包括: 处理模块,用于当所述第一索引号索引的元素的值不为所述第一标识时,调用与所述第一索引号索引的元素的值对应的诊断服务请求处理函数,对接收的诊断服务请求进行处理。
【文档编号】G06F17/30GK103761300SQ201410027190
【公开日】2014年4月30日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】刘小燕 申请人:北京经纬恒润科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1