System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及车辆诊断服务,特别涉及一种车辆诊断方法、装置、系统及存储介质。
技术介绍
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诊本文档来自技高网...
【技术保护点】
1.一种车辆诊断方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,包括:
3.如权利要求2所述的方法,其特征在于,所述分别对所述诊断调查表中的ECU诊断服务需求和用户自定义数据进行第一解析以生成包含ECU诊断服务需求和用户自定义数据的车辆诊断代码的协议栈,包括:
4.如权利要求1所述的方法,其特征在于,对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,包括:
5.如权利要求1所述的方法,其特征在于,通过执行所述车辆诊断服务代码进行车辆的诊断服务,包括:
6.如权利要求5所述的方法,其特征在于,所述对执行所述车辆诊断服务代码的状态机进行初始化操作,包括:
7.如权利要求5所述的方法,其特征在于,所述获取车辆诊断结果,包括:
8.一种车辆诊断装置,其特征在于,包括:
9.一种车辆诊断系统,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,当存储介质中的指令由车辆
...【技术特征摘要】
1.一种车辆诊断方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述对诊断调查表进行第一解析以生成车辆诊断服务代码的协议栈,包括:
3.如权利要求2所述的方法,其特征在于,所述分别对所述诊断调查表中的ecu诊断服务需求和用户自定义数据进行第一解析以生成包含ecu诊断服务需求和用户自定义数据的车辆诊断代码的协议栈,包括:
4.如权利要求1所述的方法,其特征在于,对诊断序列描述文件中的诊断服务流程进行第二解析以生成车辆诊断服务代码的测试框架,包括:
5.如权利要求1所述的方法,...
【专利技术属性】
技术研发人员:刘文峰,
申请(专利权)人:北京车和家信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。