本技术涉及车辆诊断服务,特别涉及一种车辆诊断方法、装置、系统及存储介质。
背景技术:
1、车辆ecu(electronic control unit,电子控制单元,又称“行车电脑”、“车载电脑”等)诊断服务模块是实现ecu刷写、自诊断及标定等应用需求的基础服务组件。现有技术中,在进行ecu诊断时,需要通过与该ecu型号匹配的诊断代码实现对该车辆ecu的诊断。针对诊断服务器,传统诊断方案中,由于采用硬编码的方式将与ecu配套的诊断代码嵌入ecu内部,使得ecu具备自诊断功能。在诊断需求发生改变或者跨平台、跨域进行诊断功能时,即需要对新出现的ecu进行诊断时,就需要开发人员重新编辑与ecu配套的诊断代码,并采用硬编码的方式将与其配套的诊断代码嵌入ecu内部。
2、可见,现有技术中,对新出现的ecu诊断需求进行诊断时,需要专业的开发人员单独编辑相应的诊断代码,处理效率较低,因此,亟需提供一种车辆诊断方法,以在车辆诊断过程中节省人力成本。
技术实现思路
1、本技术提供一种车辆诊断方法、装置、系统及存储介质,用以在车辆诊断过程中节省人力成本。
2、本技术提供一种车辆诊断方法,包括:
3、对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,其中,所述诊断调查表用于描述车辆ecu诊断服务需求,所述协议栈包括车辆诊断服务涉及的各个诊断任务的执行代码,所述诊断服务中包含多个诊断任务;
4、获取包含所述协议栈的接口信息以及诊断服务处理流程的诊断序列描述文件;
5、对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,其中,所述构建完成的测试框架中的诊断任务执行顺序与所述诊断服务流程匹配;
6、将所述协议栈以及所述协议栈的接口信息按照测试框架中的诊断任务执行顺序添加到所述测试框架中,以生成包含所述协议栈以及所述测试框架的车辆诊断服务代码;
7、通过执行所述车辆诊断服务代码进行车辆的诊断服务。
8、本技术的有益效果在于:通过对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,其中,所述诊断调查表用于描述车辆ecu诊断服务需求,所述协议栈包括车辆诊断服务涉及的各个诊断任务的执行代码;获取包含所述协议栈的接口信息以及诊断服务处理流程的诊断序列描述文件,以对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,并将所述协议栈的接口信息按照测试框架中的诊断任务执行顺序添加到所述测试框架中。由于构建完成的测试框架中的诊断任务执行顺序与所述诊断服务流程匹配,并且构建完成的测试框架中包含了协议栈的接口信息,因此,可以将所述协议栈以及所述协议栈的接口信息按照测试框架中的诊断任务执行顺序添加到所述测试框架中,以生成包含所述协议栈以及所述测试框架的车辆诊断服务代码,进而可以通过执行所述车辆诊断服务代码完成车辆的诊断服务。在本技术中,由于当在诊断需求发生改变或者跨平台、跨域进行诊断功能时,可以自动生成车辆诊断服务代码,而无需专业的开发人员编辑相应的诊断代码,进而实现诊断服务平台化,节省了人力成本,提高诊断流程效率。
9、所述对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,包括:
10、获取所述诊断调查表中的ecu诊断服务需求和用户自定义数据,其中,所述ecu诊断服务需求为待诊断车辆对应的ecu诊断服务需求,所述用户自定义数据包括待诊断车辆的标识信息;
11、分别对所述诊断调查表中的ecu诊断服务需求和用户自定义数据进行第一解析以生成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈。
12、所述分别对所述诊断调查表中的ecu诊断服务需求和用户自定义数据进行第一解析以生成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈,包括:
13、根据预设cdd模板将所述诊断调查表配置为包含ecu诊断服务需求和用户自定义数据的cdd文件;
14、对所述cdd文件进行格式转换,以将所述cdd文件转换为包含ecu诊断服务需求和用户自定义数据的odx文件;
15、通过odx解析器对所述odx文件进行解析,以生成成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈。
16、对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,包括:
17、通过otx编辑器将所述诊断序列描述文件编辑为otx文件;
18、通过otx解析器对所述otx文件进行解析,以生成所述测试框架。
19、通过执行所述车辆诊断服务代码进行车辆的诊断服务,包括:
20、以接口信息在所述测试框架的添加顺序为执行顺序,对执行所述车辆诊断服务代码的状态机进行初始化操作;
21、执行所述车辆诊断服务代码中车辆诊断部分对应的接口,以实现对车辆的诊断;
22、获取车辆诊断结果;
23、将所述车辆诊断结果反馈给预设客户端。
24、所述对执行所述车辆诊断服务代码的状态机进行初始化操作,包括:
25、对与服务相关的以下至少一种预设参数的合法性进行检测:服务标识码、状态机子函数、有效数据长度、寻址方式、did是否支持、会话及安全状态;
26、在所有的预设参数的合法性检测通过时,对执行所述车辆诊断服务代码的状态机进行初始化操作;
27、当存在合法性未通过测试的预设参数时,返回初始化失败的信息。
28、所述获取车辆诊断结果,包括:
29、获取车辆反馈的肯定响应和否定响应;
30、将所述车辆反馈的肯定响应和否定响应进行封装;
31、确定封装后的肯定响应和否定响应为所述车辆诊断结果。
32、本技术还提供一种车辆诊断装置,包括:
33、第一解析模块,用于对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,其中,所述诊断调查表用于描述车辆ecu诊断服务需求,所述协议栈包括车辆诊断服务涉及的各个诊断任务的执行代码,所述诊断服务中包含多个诊断任务;
34、获取模块,用于获取包含所述协议栈的接口信息以及诊断服务处理流程的诊断序列描述文件;
35、第二解析模块,用于对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,其中,所述测试框架中的诊断任务执行顺序与所述诊断服务流程匹配;
36、生成模块,用于将所述协议栈以及所述协议栈的接口信息按照测试框架中的诊断任务执行顺序添加到所述测试框架下,以生成包含所述协议栈以及所述测试框架的车辆诊断服务代码;
37、诊断模块,用于通过执行所述车辆诊断服务代码进行车辆的诊断服务。
38、所述第一解析模块,包括:
39、第一获取子模块,用于获取所述诊断调查表中的ecu诊断服务需求和用户自定义数据,其中,所述ecu诊断服务需求为待诊断车辆对应的ecu诊断服务需求,所述用户自定义数据包括待诊断车辆的标识信息;
40、生成子模块,用于分别对所述诊断调查表中的ecu诊断服务需求和用户自定义数据进行第一解析以生成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈。
41、所述生成子模块,还用于:
42、根据预设cdd模板将所述诊断调查表配置为包含ecu诊断服务需求和用户自定义数据的cdd文件;
43、对所述cdd文件进行格式转换,以将所述cdd文件转换为包含ecu诊断服务需求和用户自定义数据的odx文件;
44、通过odx解析器对所述odx文件进行解析,以生成成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈。
45、所述第二解析模块,包括:
46、编辑子模块,用于通过otx编辑器将所述诊断序列描述文件编辑为otx文件;
47、解析子模块,用于通过otx解析器对所述otx文件进行解析,以生成所述测试框架。
48、所述诊断模块,包括:
49、初始化子模块,用于对执行所述车辆诊断服务代码的状态机进行初始化操作;
50、诊断子模块,用于以接口信息在所述测试框架的添加顺序为执行顺序,执行所述车辆诊断服务代码中车辆诊断部分对应的接口,以实现对车辆的诊断;
51、第二获取子模块,用于获取车辆诊断结果;
52、反馈子模块,用于将所述车辆诊断结果反馈给预设客户端。
53、初始化子模块,还用于:
54、对与服务相关的以下至少一种预设参数的合法性进行检测:服务标识码、状态机子函数、有效数据长度、寻址方式、did是否支持、会话及安全状态;
55、在所有的预设参数的合法性检测通过时,对执行所述车辆诊断服务代码的状态机进行初始化操作;
56、当存在合法性未通过测试的预设参数时,返回初始化失败的信息。
57、所述第二获取子模块,还用于:
58、获取车辆反馈的肯定响应和否定响应;
59、将所述车辆反馈的肯定响应和否定响应进行封装;
60、确定封装后的肯定响应和否定响应为所述车辆诊断结果。
61、本技术还提供一种车辆诊断系统,包括:
62、至少一个处理器;以及,
63、与所述至少一个处理器通信连接的存储器;其中,
64、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行以实现上述任一实施例所记载的车辆诊断方法。
65、本技术还提供一种计算机可读存储介质,当存储介质中的指令由车辆诊断系统对应的处理器执行时,使得车辆诊断系统能够实现上述任一实施例所记载的车辆诊断方法。
66、本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
67、下面通过附图和实施例,对本技术的技术方案做进一步的详细描述。