CN112181538A - 诊断流程执行方法、装置、设备及存储介质 - Google Patents
诊断流程执行方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112181538A CN112181538A CN202011033979.4A CN202011033979A CN112181538A CN 112181538 A CN112181538 A CN 112181538A CN 202011033979 A CN202011033979 A CN 202011033979A CN 112181538 A CN112181538 A CN 112181538A
- Authority
- CN
- China
- Prior art keywords
- function
- entry
- diagnosis
- diagnostic
- executing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000006870 function Effects 0.000 claims abstract description 353
- 238000003745 diagnosis Methods 0.000 claims abstract description 81
- 238000002405 diagnostic procedure Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 37
- 238000013507 mapping Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Abstract
本申请提供一种诊断流程执行方法、装置、设备及存储介质,该方法包括:响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;解析所述诊断流程文件,得到所述诊断流程包括的所有入口函数的函数信息;根据所述函数信息生成条件执行各个所述入口函数;基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;基于所述目标入口函数执行所述诊断流程。实现了通过触发条件执行各个入口函数,获取目标入口函数,进而实现动态执行诊断流程。
Description
技术领域
本申请涉及车辆诊断技术领域,尤其涉及一种诊断流程执行方法、装置、设备及存储介质。
背景技术
通常用户需要借助诊断应用来确定车辆的行驶状况,查明故障部位及原因等。而目前的诊断应用可执行的诊断功能是基于Open Test sequence eXchange format(otx)实现的,简称诊断流程。由于每个诊断流程可以有多个otx的入口函数,且每个otx的入口函数都是在对应的otx源文件中确定的,而诊断应用执行诊断流程时,需要通过对应的入口函数调用,导致诊断应用每次只能固定执行一个诊断流程,无法动态选择执行诊断流程。
发明内容
本申请实施例提供了一种诊断流程执行方法、装置、设备及存储介质,能够解决诊断应用每次只能固定执行一个诊断流程的问题。
第一方面,本申请提供一种诊断流程执行方法,包括:
响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;
解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息;
根据所述函数信息生成条件执行各个所述入口函数;
基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;
基于所述目标入口函数执行所述诊断流程。
在一可选的实现方式中,解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息之后,还包括:
将所述入口函数的函数信息转换为条件执行函数,将条件执行函数转换为预设编程语言的源文件。
在一可选的实现方式中,所述根据所述函数信息生成条件执行各个所述入口函数,包括:
在所述源文件中,根据所述函数信息生成条件执行遍历各个所述入口函数。
在一可选的实现方式中,所述预设编程语言为C++语言,所述源文件为.cpp文件;
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件,包括:
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为C++语言的.cpp文件,再将.cpp文件编译成二进制可执行文件;
在所述源文件中,根据所述函数信息生成条件执行各个所述入口函数,包括:
在所述C++语言的.cpp文件中,根据所述函数信息生成条件执行各个所述入口函数。
在一可选的实现方式中,所述触发条件为用户基于所述诊断操作界面选择所述诊断功能时,基于所述诊断功能自动生成的触发条件;所述触发条件与所述入口函数之间存在映射关系;
所述基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,包括:
基于所述触发条件执行所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;
根据所述映射关系,获取所述诊断功能对应的目标入口函数。
在一可选的实现方式中,所述触发条件为基于switch条件语句的触发条件,所述入口函数为基于switch条件语句的入口函数;
基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,包括:
基于所述switch条件语句触发所述递归函数,遍历所述触发条件与所述入口函数之间的映射关系;
基于所述switch条件语句的触发条件执行基于switch条件语句的入口函数。
在一可选的实现方式中,所述函数信息包括函数名称、函数入口地址和函数符号信息;
根据所述函数信息生成条件执行各个所述入口函数,包括:
根据各个所述入口函数的所述函数名称、所述函数入口地址和所述函数符号信息,生成条件执行各个所述入口函数。
第二方面,本申请实施例提供一种诊断流程执行装置,包括:
第一获取模块,用于响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;
得到模块,用于解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息;
生成模块,用于根据所述函数信息生成条件执行各个所述入口函数;
第二获取模块,用于基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;
执行模块,用于基于所述目标入口函数执行所述诊断流程。
在一可选的实现方式中,还包括:
转换模块,用于将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件。
在一可选的实现方式中,所述生成模块,具体用于:
在所述源文件中,根据所述函数信息生成条件执行各个所述入口函数。
在一可选的实现方式中,所述预设编程语言为C++语言,所述源文件为.cpp文件;
所述转换模块,具体用于:
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为C++语言的.cpp文件,再将.cpp文件编译成二进制可执行文件;
所述生成模块,具体用于:
在所述C++语言的.cpp文件中,根据所述函数信息生成条件执行各个所述入口函数。
在一可选的实现方式中,所述触发条件为用户基于所述诊断操作界面选择所述诊断功能时,基于所述诊断功能自动生成的触发条件;所述触发条件与所述入口函数之间存在映射关系;
所述第二获取模块,包括:
遍历单元,用于基于所述触发条件执行所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;
获取单元,用于根据所述映射关系,获取所述诊断功能对应的目标入口函数。
在一可选的实现方式中,所述触发条件为基于switch条件语句的触发条件,所述入口函数为基于switch条件语句的入口函数;
所述第一获取模块,具体用于:
基于所述switch条件语句触发所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;
基于所述switch条件语句的触发条件执行基于switch条件语句的入口函数。
在一可选的实现方式中,所述函数信息包括函数名称、函数入口地址和函数符号信息;
所述生成模块,具体用于:
根据各个所述入口函数的所述函数名称、所述函数入口地址和所述函数符号信息,生成条件执行各个所述入口函数。
第三方面,本申请提供一种诊断流程执行设备,包括:
存储器,用于存储诊断流程执行程序;
处理器,用于执行所述诊断流程执行程序时实现如上第一方面所述的诊断流程执行方法。
第四方面,本申请提供一种计算机程序产品,当计算机程序产品在诊断流程执行设备上运行时,使得诊断流程执行设备执行上述第一方面所述的诊断流程执行方法的步骤。
采用本申请第一方面提供的诊断流程执行方法,通过解析诊断功能对应的诊断流程,得到诊断功能对应的诊断流程包括的所有入口函数的函数信息;进而根据所述函数信息生成各个所述入口函数;进一步基于诊断功能对应的触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,通过所述目标入口函数选择执行对应的诊断流程。实现了通过触发条件执行各个入口函数,获取目标入口函数,进而实现动态执行诊断流程。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所支持要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请第一实施例提供的诊断流程执行方法的流程示意图;
图2是本申请第二实施例提供的诊断流程执行装置的示意图;
图3是本申请第三实施例提供的诊断流程执行设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。应当理解,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
下面具体结合附图,对本申请提供的诊断流程执行方法进行示例性的说明。
如图1所示,图1是本申请第一实施例提供的诊断流程执行方法的流程示意图。本实施例提供的诊断流程执行方法可以由各种车辆诊断环境下的诊断流程执行设备执行,该诊断流程执行设备可以是单个服务器、集群服务器等具有计算功能的上位机。详述如下:
S101,响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件。
需要说明的是,当用户调用诊断应用对车辆进行诊断时,需要通过诊断操作界面选择诊断功能。在本申请实施例中,诊断操作界面为预先设置的用于供用户选择诊断功能的界面,该诊断操作界面可以包括用于供用户选择诊断功能的选择框,所述选择框包含有下拉项,每个所述下拉项代表一种诊断功能,例如发送机(EMS)的相关功能等。
在本申请实施例中,所述触发条件为响应于用户基于所述诊断操作界面选择所述诊断功能的操作时,基于所述诊断功能自动生成的触发条件;所述触发条件与所述诊断功能对应的诊断流程包括的入口函数之间存在映射关系。
S102,解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息。
在本申请的实施例中,所述诊断流程可以是基于OTX定义的数据流。由于基于OTX定义的数据流可以有多个入口函数,且每一个入口函数的函数名称都是在OTX源文件中确定的,诊断应用在执行诊断流程过程中,无法知道入口函数的函数名称,而执行诊断流程必须需要知道函数名。因此,本申请实施例通过解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息。
需要说明的是,在本申请的一些实施例中,在在解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息之后,还包括:将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件,再将源文件编译成二进制可执行文件。对应地,在本实施例中,将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件,与图1实施例中的根据所述函数信息生成条件执行各个所述入口函数为顺序执行关系。
可选地,根据所述函数信息生成条件执行各个所述入口函数,可以包括:在所述源文件中,通过所述条件执行函数根据所述函数信息生成条件执行各个所述入口函数。
本申请实施例的预设编程语言包括C++语言和Java语言,像编程语言文件,可以是任意文件,这看开发otx采用的是什么语言,比如,用C++语言开发otx对应的源文件就采用.cpp文件,用java语言开发otx对应的源文件就采用.java文件。
在本申请的优选实施例中,所述预设编程语言为C++语言,所述源文件为.cpp文件;将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件,再将源文件编译成二进制可执行文件,可以包括:将基于OTX定义的数据流转换为条件执行函数,将条件执行函数转换为C++语言的.cpp文件,再将.cpp文件编译成二进制可执行文件。
S103,根据所述函数信息生成条件执行各个所述入口函数。
在本申请实施例中,所述根据所述函数信息生成条件执行各个所述入口函数,可以包括:在预设编程语言的所述源文件中,根据所述函数信息生成条件执行各个所述入口函数。
具体地,所述预设编程语言可以是C++语言,所述源文件可以是.cpp文件。在预设编程语言的所述源文件中,根据所述函数信息生成条件执行各个所述入口函数,包括:在所述C++语言的.cpp文件中,根据所述函数信息生成条件执行各个所述入口函数。
示例性地,所述函数信息包括函数名称、函数入口地址和函数符号信息;根据所述函数信息生成条件执行各个所述入口函数,可以包括:根据各个所述入口函数的所述函数名称、所述函数入口地址和所述函数符号信息,生成条件执行各个所述入口函数。
S104,基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数。
所述基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,可以包括:基于所述触发条件执行所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;根据所述映射关系,获取所述诊断功能对应的目标入口函数。
在一些可选的实现方式中,所述触发条件优选为基于switch条件语句或if else条件语句的触发条件,在本申请实施例中优选采用基于switch条件语句为触发条件,所述入口函数为基于switch条件语句的入口函数;基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,包括:基于所述switch条件语句触发所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;根据所述映射关系,获取所述诊断功能对应的目标入口函数。
S105,基于所述目标入口函数执行所述诊断流程。
在本申请的实施例中,通过生成一个OTX数据流的入口函数调用的二进制可执行文件,在二进制可执行文件中实现一个入口函数,在入口函数中通过条件语句,加上合适的条件去调用不同的OTX数据流的入口函数。当用户点击选择执行的OTX数据流对应的诊断流程时,携带用户选择的信息,调用二进制可执行文件中的入口函数,二进制可执行文件中的入口函数通过判断目标入口函数的参数信息,自动去执行正确的OTX入口函数,从而实现了动态执行诊断流程。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于上述实施例所提供的诊断流程执行方法,本发明实施例进一步给出实现上述方法实施例的装置实施例。
如图2所示,图2是本申请第二实施例提供的诊断流程执行装置的示意图。包括的各模块用于执行图1对应的实施例中的各步骤。具体请参阅图1对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图2,诊断流程执行装置200包括:
第一获取模块201,用于响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;
得到模块202,用于解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息;
生成模块203,用于根据所述函数信息生成条件执行各个所述入口函数;
第二获取模块204,用于基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;
执行模块205,用于基于所述目标入口函数执行所述诊断流程。
在一可选的实现方式中,还包括:
转换模块,用于将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件。
在一可选的实现方式中,所述生成模块203,具体用于:
在所述源文件中,根据所述函数信息生成条件执行各个所述入口函数。
在一可选的实现方式中,所述预设编程语言为C++语言,所述源文件为.cpp文件;
所述转换模块,具体用于:
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为C++语言的.cpp文件,再将.cpp文件编译成二进制可执行文件;
所述生成模块203,具体用于:
在所述C++语言的.cpp文件中,根据所述函数信息生成条件执行各个所述入口函数。
在一可选的实现方式中,所述触发条件为用户基于所述诊断操作界面选择所述诊断功能时,基于所述诊断功能自动生成的触发条件;所述触发条件与所述入口函数之间存在映射关系;
所述第二获取模块204,包括:
遍历单元,用于基于所述触发条件执行所述入口函数,遍历所述触发条件与所述入口函数之间的映射关系;
获取单元,用于根据所述映射关系,获取所述诊断功能对应的目标入口函数。
在一可选的实现方式中,所述触发条件为基于switch条件语句的触发条件,所述入口函数为基于switch条件语句的入口函数;
所述第一获取模块201,具体用于:
基于所述switch条件语句触发所述递归函数,遍历所述触发条件与所述入口函数之间的映射关系;
基于所述switch条件语句的触发条件执行基于switch条件语句的入口函数。
在一可选的实现方式中,所述函数信息包括函数名称、函数入口地址和函数符号信息;
所述生成模块203,具体用于:
根据各个所述入口函数的所述函数名称、所述函数入口地址和所述函数符号信息,生成条件执行各个所述入口函数。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请图1所示方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图3是本申请第三实施例提供的诊断流程执行设备的示意图。如图3所示,该实施例的诊断流程执行设备3包括:处理器300、存储器301以及存储在所述存储器301中并可在所述处理器300上运行的计算机程序302,例如诊断流程执行程序。处理器300执行所述计算机程序302时实现上述图1所示的诊断流程执行方法实施例中的步骤。或者,所述处理器300执行所述计算机程序302时实现上述图2实施例中各模块/单元的功能。
示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述诊断流程执行设备3中的执行过程。例如,所述计算机程序302可以被分割成第一获取模块、得到模块、生成模块、第二获取模块和执行模块,各模块具体功能请参阅图2对应地实施例中地相关描述,此处不赘述。
所述诊断流程执行设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图3仅仅是诊断流程执行设备3的示例,并不构成对诊断流程执行设备3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出设备、网络接入设备、总线等。
所称处理器300可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器301可以是所述诊断流程执行设备3的内部存储单元,例如诊断流程执行设备3的硬盘或内存。所述存储器301也可以是所述诊断流程执行设备3的外部存储设备,例如所述诊断流程执行设备3上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器301还可以既包括所述诊断流程执行设备3的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序302以及所述诊断流程执行设备3所支持的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述诊断流程执行方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种诊断流程执行方法,其特征在于,包括:
响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;
解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息;
根据所述函数信息生成条件执行各个所述入口函数;
基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;
基于所述目标入口函数执行所述诊断流程。
2.根据权利要求1所述的方法,其特征在于,在解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息之后,还包括:
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述函数信息生成条件执行各个所述入口函数,包括:
在所述源文件中,根据所述函数信息生成条件执行各个所述入口函数。
4.根据权利要求3所述的方法,其特征在于,所述预设编程语言为C++语言,所述源文件为.cpp文件;
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为预设编程语言的源文件,包括:
将所述入口函数的函数信息转化为条件执行函数,将条件执行函数转换为C++语言的.cpp文件;
在所述源文件中,根据所述函数信息生成条件执行各个所述入口函数,包括:
在所述C++语言的.cpp文件中,根据所述函数信息生成条件执行各个所述入口函数。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述触发条件为用户基于所述诊断操作界面选择所述诊断功能时,基于所述诊断功能自动生成的触发条件;所述触发条件与所述入口函数之间存在映射关系;
所述基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,包括:
基于所述触发条件执行所述入口递归函数,遍历所述触发条件与所述入口函数之间的映射关系;
根据所述映射关系,获取所述诊断功能对应的目标入口函数。
6.根据权利要求5所述的方法,其特征在于,所述触发条件为基于switch条件语句的触发条件,所述入口函数为基于switch条件语句的入口递归函数;
基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数,包括:
基于所述switch条件语句的触发条件执行基于switch条件语句的入口函数。
7.根据权利要求6所述的方法,其特征在于,所述函数信息包括函数名称、函数入口地址和函数符号信息;
根据所述函数信息生成条件执行各个所述入口函数,包括:
根据各个所述入口函数的所述函数名称、所述函数入口地址和所述函数符号信息,生成条件执行各个所述入口函数。
8.一种诊断流程执行装置,其特征在于,包括:
第一获取模块,用于响应于用户基于诊断操作界面选择诊断功能的操作,获取所述诊断功能对应的诊断流程和所述诊断功能对应的触发条件;
得到模块,用于解析所述诊断流程,得到所述诊断流程包括的所有入口函数的函数信息;
生成模块,用于根据所述函数信息生成条件执行各个所述入口函数;
第二获取模块,用于基于所述触发条件执行所述入口函数,获取所述诊断功能对应的目标入口函数;
执行模块,用于基于所述目标入口函数执行所述诊断流程。
9.一种诊断流程执行设备,其特征在于,包括:
存储器,用于存储诊断流程执行程序;
处理器,用于执行所述诊断流程执行程序时实现如权利要求1至7任一项所述的诊断流程执行方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的诊断流程执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033979.4A CN112181538B (zh) | 2020-09-27 | 2020-09-27 | 诊断流程执行方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011033979.4A CN112181538B (zh) | 2020-09-27 | 2020-09-27 | 诊断流程执行方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181538A true CN112181538A (zh) | 2021-01-05 |
CN112181538B CN112181538B (zh) | 2023-05-30 |
Family
ID=73944614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011033979.4A Active CN112181538B (zh) | 2020-09-27 | 2020-09-27 | 诊断流程执行方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181538B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995862A (zh) * | 2022-08-03 | 2022-09-02 | 深圳市星卡软件技术开发有限公司 | 诊断模块的调用方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197930A (zh) * | 2013-03-27 | 2013-07-10 | 北京经纬恒润科技有限公司 | 汽车诊断软件自动生成的方法 |
CN105225049A (zh) * | 2015-10-09 | 2016-01-06 | 清华大学深圳研究生院 | 一种高可扩展性故障诊断专家系统 |
CN106444724A (zh) * | 2016-11-25 | 2017-02-22 | 梧州市金正原电子科技有限公司 | 一种车辆智能诊断方法 |
DE102017128455A1 (de) * | 2016-11-30 | 2018-05-30 | Hyundai Autoever Corp. | Fahrzeug-Diagnose-Vorrichtung und Verfahren zum Verwalten eines Zertifikats davon |
CN109814524A (zh) * | 2018-12-17 | 2019-05-28 | 深圳市轱辘汽车维修技术有限公司 | 一种车辆诊断方法、装置及系统 |
-
2020
- 2020-09-27 CN CN202011033979.4A patent/CN112181538B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103197930A (zh) * | 2013-03-27 | 2013-07-10 | 北京经纬恒润科技有限公司 | 汽车诊断软件自动生成的方法 |
CN105225049A (zh) * | 2015-10-09 | 2016-01-06 | 清华大学深圳研究生院 | 一种高可扩展性故障诊断专家系统 |
CN106444724A (zh) * | 2016-11-25 | 2017-02-22 | 梧州市金正原电子科技有限公司 | 一种车辆智能诊断方法 |
DE102017128455A1 (de) * | 2016-11-30 | 2018-05-30 | Hyundai Autoever Corp. | Fahrzeug-Diagnose-Vorrichtung und Verfahren zum Verwalten eines Zertifikats davon |
CN109814524A (zh) * | 2018-12-17 | 2019-05-28 | 深圳市轱辘汽车维修技术有限公司 | 一种车辆诊断方法、装置及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114995862A (zh) * | 2022-08-03 | 2022-09-02 | 深圳市星卡软件技术开发有限公司 | 诊断模块的调用方法、装置和系统 |
CN114995862B (zh) * | 2022-08-03 | 2022-11-01 | 深圳市星卡软件技术开发有限公司 | 诊断模块的调用方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112181538B (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428462B (zh) | 通讯协议模板构建的方法及终端设备 | |
US9176842B2 (en) | Control flow analysis utilizing function dominator trees | |
CN109344062A (zh) | 页面跨域跳转测试的方法及终端设备 | |
CN113110994A (zh) | 一种车辆诊断方法、装置、电子设备及存储介质 | |
CN114895935A (zh) | 刷写车辆ecu的方法、装置、电子设备及存储介质 | |
CN112181538B (zh) | 诊断流程执行方法、装置、设备及存储介质 | |
CN114089713A (zh) | 一种基于uds的通信方法、ecu及上位机 | |
CN112395098A (zh) | 应用程序接口调用方法、装置、存储介质和电子设备 | |
US20130103986A1 (en) | Systems and methods for functional testing using leveraged dynamic linked libraries | |
CN109582318B (zh) | Portobuf本地化的处理方法、装置、终端及存储介质 | |
CN112181411A (zh) | 一种菜单生成方法、菜单生成装置及诊断设备 | |
EP3519964B1 (en) | Electronic apparatus for recording debugging information and control method thereof | |
US9489284B2 (en) | Debugging method and computer program product | |
CN111639030A (zh) | 一种页面测试方法、装置、设备及存储介质 | |
CN113778451A (zh) | 文件加载方法、装置、计算机系统和计算机可读存储介质 | |
CN113467815A (zh) | 热更新的应用修复方法、装置、终端设备及存储介质 | |
CN111444161A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110780864A (zh) | 类方法替换的控制方法及装置、存储介质及电子设备 | |
CN112180898A (zh) | 参数位置确定方法、装置、设备及存储介质 | |
CN111158661A (zh) | 系统接口对接方法、装置、介质及电子设备 | |
CN114124992B (zh) | 整车域控制器的运行状态监控方法、装置、设备和系统 | |
CN110968507A (zh) | 覆盖率统计方法及装置 | |
CN112905181B (zh) | 一种模型编译、运行方法及装置 | |
CN115032971B (zh) | 一种车辆诊断设备的更新方法、装置及服务器 | |
CN110688095B (zh) | 一种无人机sdk开发平台的构建方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |