CN114356685A - 路径寻参的方法、装置、电子设备及存储介质 - Google Patents

路径寻参的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN114356685A
CN114356685A CN202111648524.8A CN202111648524A CN114356685A CN 114356685 A CN114356685 A CN 114356685A CN 202111648524 A CN202111648524 A CN 202111648524A CN 114356685 A CN114356685 A CN 114356685A
Authority
CN
China
Prior art keywords
parameter
target
path
container object
instruction
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.)
Pending
Application number
CN202111648524.8A
Other languages
English (en)
Inventor
刘均
邓蒙召
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Launch Technology Co Ltd
Original Assignee
Shenzhen Launch Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Launch Technology Co Ltd filed Critical Shenzhen Launch Technology Co Ltd
Priority to CN202111648524.8A priority Critical patent/CN114356685A/zh
Publication of CN114356685A publication Critical patent/CN114356685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01MTESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
    • G01M17/00Testing of vehicles
    • G01M17/007Wheeled or endless-tracked vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

本申请适用于汽车电子技术领域,提供了一种路径寻参的方法、装置、电子设备及存储介质。所述方法,包括:响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。本申请实施例通过利用第一容器对象检索目标路径获得目标参数,由于第一容器对象包含参数指针和与参数匹配的路径的对应关系,避免了对ODX文件进行全面索引造成的执行效率低的问题。

Description

路径寻参的方法、装置、电子设备及存储介质
技术领域
本申请属于汽车电子技术领域,尤其涉及一种路径寻参的方法、装置、电子设备及存储介质。
背景技术
基于开放式测试序列交换格式(Open Test sequence eXchange,OTX)是一种标准化的交换格式,用于形式化描述针对目标车辆的自动化诊断序列。
测试序列基于可扩展标记语言(Extensible Markup Language,XML),可以在具有不同平台和诊断测试器的流程合作伙伴之间交换。每当车外测试设备对具有诊断能力的汽车部件或功能进行诊断,测试,重新编程或初始化时,都会使用诊断测试序列。
在执行OTX的测试序列时,尤其是在执行请求或响应指令时,由于涉及到的开放的诊断交互格式(Open Diagnostic eXchange,ODX)文件数量和层次众多,ODX文件中的引用关系复杂,造成执行效率低。
发明内容
本申请实施例提供了一种路径寻参的方法、装置、电子设备及存储介质,可以解决上述问题。
第一方面,本申请实施例提供了一种路径寻参的方法,包括:
响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;
基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
可选的,所述第一容器对象为键值对容器对象;
所述第一容器对象以第一可变长容器对象作为作为键;所述第一可变长容器对象用于保存与所述参数匹配的路径;所述第一容器对象以所述参数的指针作为值。
可选的,基于所述目标路径,利用第一容器对象进行检索,获得目标参数,包括:
基于所述目标路径,构建目标可变长容器对象;
根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;
根据所述指针获得目标参数。
可选的,根据所述寻参指令确定目标路径,包括:
根据所述寻参指令中的层名元素中内短名称,确定所述路径。
可选的,在响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径前,所述方法还包括:
获取所述第一容器对象。
第二方面,本申请实施例提供了一种路径寻参的方法,包括:
获取目标数据包;
解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
第三方面,本申请实施例提供了一种路径寻参的装置,包括:
寻参指令响应模块,用于响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;
目标参数获得模块,用于基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
可选的,所述第一容器对象为键值对容器对象;所述第一容器对象以第一可变长容器对象作为作为键;所述第一可变长容器对象用于保存与所述参数匹配的路径;所述第一容器对象以所述参数的指针作为值。
可选的,目标参数获得模块,包括:
可变长容器构建模块,用于基于所述目标路径,构建目标可变长容器对象;
目标参数的指针确定模块,根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;
目标参数获得模块,用于根据所述指针获得目标参数。
可选的,寻参指令响应模块,包括:
路径确定模块,用于根据所述寻参指令中的层名元素中内短名称,确定所述路径。
可选的,所述路径寻参的装置,还包括:
第一容器对象获取模块,用于获取所述第一容器对象。
第四方面,本申请实施例提供了一种路径寻参的装置,包括:
目标数据包获取模块,用于获取目标数据包;
参数解析模块,用于解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
匹配关系保存模块,用于针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
第五方面,本申请实施例提供了一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤。
第七方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面及其可选实施方式所述的方法步骤,和第二方面及其可选实施方式所述的方法步骤。
应理解,本申请实施例通过利用第一容器对象检索目标路径获得目标参数,由于第一容器对象包含参数指针和与参数匹配的路径的对应关系,避免了对ODX文件进行全面索引造成的执行效率低的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的路径寻参的方法的流程示意图;
图2是本申请另一实施例提供的路径寻参的方法的流程示意图;
图3是本申请一实施例提供的数据处理的方法的流程示意图;
图4是本申请一实施例提供的路径寻参的方法的流程示意图;
图5是本申请实施例提供的路径寻参的装置的结构示意图;
图6是本申请实施例提供的数据处理的装置的结构示意图;
图7是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在说明本申请实施例提供的路径寻参的方法之前,为方便对本申请实施例的理解,下面对本申请实施例提供的路径寻参的方法原理以及本申请实施例中涉及的相关概念进行说明。
容器(container):用于存放数据的类模板。可变长数组、链表、平衡二叉树等数据结构在STL中都被实现为容器。程序员使用容器时,即将容器类模板实例化为容器类时,会指明容器中存放的元素是什么类型的。容器中可以存放基本类型的变量,也可以存放对象。
向量(vector):是一个封装了动态大小(可变长)数组的顺序容器(SequenceContainer),按照严格的线性顺序排序,可以通过元素在序列中的位置对序列中的任意元素进行快速直接访问。跟任意其它类型容器一样,它能够存放各种类型的对象。
map,计算机科学中的关联数组,是一个抽象的数据结构,它包含着类似于(键key,值value)的不重复有序对,按照键key排序,键是唯一的。例如map<string,int>MyObject2TypeMap,map中存储的是一系列pair<string,int>对象。
可扩展标记语言(Extensible Markup Language,XML),标准通用标记语言的子集。XML是一种用于标记电子文件使其具有结构性的标记语言。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是一种常用的数据交换格式。
开放式诊断数据交换格(Open diagnostic data exchange,ODX)是自动化及测量系统标准协会(Association for Standardisation of Automation and MeasuringSystems,ASAM)制定的标准架构诊断仪(MVCI,Modular Vehicle CommunicationInterface)所使用的数据文件。ODX是格式标准化的诊断文件,在诊断不同的车,或者不同的ECU时,只需要加载适配这个车型或ECU的ODX文件即可,而无需对诊断仪做任何改变。ODX统一了诊断文件的格式,所以诊断文件在研发、测试、生产、售后等部门中传递交换的时候,不需要进行格式转换。
短名称(SHORT-NAME)标识一个ODX对象。它的长度限制为128个字符。一个简短的名字由字母、数字和“_”字符组成。下面的表达式描述了短名称的语法:[a-zA-Zo-9]+。在所有可能重用对象的情况下,这些对象都通过引用(XML中的链接odx-link)连接到其他对象。由于这些链接有时应使用编辑器工具以交互方式创建,可通过引用重用对象的一组特征属性:短名称SHORT-NAME(此特定对象类的唯一标识符)。
开放式测试序列交换格式(Open Test sequence eXchange,OTX)是一种标准化的交换格式,在ISO 13209中进行了标准化,用于形式化描述自动化诊断序列,例如系统测试或指导性调试。
诊断序列基于XML,可以在具有不同平台和诊断测试器的流程合作伙伴之间交换。每当车外测试设备对具有诊断能力的汽车部件或功能进行诊断,测试,重新编程或初始化时,都会使用诊断测试序列。
诊断序列中的测试顺序定义了用户(即车间或装配线工作人员),诊断应用程序(测试设备)和车辆通信接口之间的交互顺序,以及必须执行的任何计算和决策。这些测试序列就像流程图中的一系列节点按照一定次序组成的流程。
在执行OTX的测试序列时,尤其是在执行请求或响应指令时,由于涉及到的开放的诊断交互格式(Open Diagnostic eXchange,ODX)文件数量和层次众多,ODX文件中的引用关系复杂。
在执行OTX的测试序列的请求或响应指令时,需要遍历ODX文件,按照该请求或响应指令的路径,逐级查询,获取与该请求或响应指令的路径对应的参数。参数也称诊断参数,用于解析请求指令,或解析响应指令中ECU返回的数据。由于每次执行请求或响应指令时,都要按照该请求或响应指令的路径,逐级查询,获取与该请求或响应指令的路径对应的参数,又因为ODX文件数量和层次众多,ODX文件中的引用关系复杂,造成执行效率低。
为了解决上述问题,本申请实施例提供了一种路径寻参的方法。为了说明本申请所提出的技术方案,下面通过具体实施例来进行说明。
下面对本申请实施例所提出的路径寻参的方法作出说明。该路径寻参的方法应用于电子设备,该电子设备可以是车辆诊断设备、车辆控制设备,或具有与车辆的ECU通信接口的桌上型计算机、笔记本电脑、掌上电脑、智能手机及云端服务器等计算设备。
图1示出了本申请实施例提供的路径寻参的方法,应用于上述的电子设备,可由所述电子设备的软件和/或硬件实现。如图1所示,该方法包括步骤S110至S120。各个步骤的具体实现原理如下:
S110,响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径。
在一些实施例中,寻参指令可以是OTX流程中的请求指令或相应指令。电子设备在执行OTX流程时,若OTX流程执行到请求或响应指令的节点,则根据寻参指令节点中聚合的层名元素确定目标路径和所述目标路径的层数。层名元素通常为命名为“stepByName”的元素。
在一些具体的示例中,根据所述寻参指令确定目标路径,包括:根据所述寻参指令中的层名元素中内短名称,确定所述路径。
例如,参见以下OTX响应指令的代码片段:
<diag:responseParameters>
<diag:name value=“dummy”xsi:type=“StringLiteral”/>
<diag:responseParam>
<diag:target name=“DIDF187Output”xsi:type=“StringVariable”>
<diag:path>
<stepByName value=”DataRacord”xsi:type=“StringVariable”/>
<stepByName value=”DIDF187_SparePartNamber_ASCII_80_bits”xsi:type=“StringVariable”/>
</diag:path>
</diag:responseParam>
</diag:responseParameters>
当OTX流程执行到<diag:responseParameters>节点时,处理该节点对应的寻参指令,根据该响应指令聚合的<diag:path>节点内的<stepByName>节点的数量确定所述层数。<stepByName>节点中的“value”对应的是索引对应参数的短名称,将“value”按预设方式组合起来就构成了索引对应参数的路径。预设方式可以是按OTX顺序,也可以是按可变长容器的存储规则。
S120,基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
在一些实施例中,电子设备预先获取了第一容器对象。所述第一容器对象用于保存第一对应关系,所述第一对应关系为参数与所述参数匹配的路径之间的对应关系。
在一些实施例中,所述第一容器对象为键值对容器对象,例如map对象。所述第一容器对象以第一可变长容器对象作为作为键key。所述第一可变长容器对象用于保存与所述参数匹配的路径。所述第一容器对象以所述参数的指针作为值。
例如,可变长容器为vector对象,该vector对象用于保存参数路径。将vector对象作为map对象的键key。以所述参数的指针作为map对象的值value。
具体例如,在处理请求命令和响应命令的基类中增加一个map容器对象的定义:map<vector<string>,otxParameter*>mapPath2Param。键vector<string>存储路径层次,值otxParameter*存储map能索引到的具体参数对象指针。
在一些实施例中,可以对路径进行预处理,获得与路径唯一对应的信息,例如哈希值。第一容器对象的中保存的路径与参数的对应关系,可以是路径的哈希值与参数的指针之间的对应关系。
在一些实施例中,基于所述目标路径,利用第一容器对象进行检索,获得目标参数,包括:基于所述目标路径,构建目标可变长容器对象;根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;根据所述指针获得目标参数。
例如,上述示例中的OTX响应指令的代码片段,利用两个<stepByName>节点中的“value”对应的索引对应参数的短名称,构建一个目标可变长容器对象,如目标vector对象。再利用上述map的find函数,对该目标vector对象进行索引,获得其对应的目标参数的指针。在通过目标参数的指针获得具体的目标参数。
应理解,本申请实施例通过利用第一容器对象检索目标路径获得目标参数,由于第一容器对象包含参数指针和与参数匹配的路径的对应关系,避免了对ODX文件进行全面索引造成的执行效率低的问题。
在上述图1所示的路径寻参的方法的实施例的基础上,在响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径前,如图2所示,还包括步骤S010:
S010,获取所述第一容器对象。
在一些实施例中,电子设备预先获取了多个第一容器对象。
在一些具体的示例中,电子设备通过解析PDX文件包预先获取了多个第一容器对象。
在另一些具体示例中,汽车厂商提供服务器,或者第三方服务商提供计算设备,服务器或计算设备通过解析PDX文件包预先生成了多个第一容器对象。电子设备通过有线和/或无线的网络连接从服务器或计算设备获取第一容器对象。
为了生成上述实施例所需的第一容器对象,本申请实施提供了一种数据处理的方法,该数据处理的方法可以应用于上述的电子设备,还可以应用于汽车厂商提供的服务器,也可以应用于第三方提供的计算设备。可由电子设备、服务器或计算设备的软件和/或硬件实现。
图3示出了本申请实施例提供的路径寻参的方法,该方法包括步骤S310至S330。各个步骤的具体实现原理如下:
S310,获取目标数据包。
在一些实施例中,目标数据包为交换数据格式数据包,例如XML数据包。目标数据包可以是目标车辆的诊断数据包。目标车辆为需要进行诊断检测的车辆。诊断数据包可以是基于ODX协议数据文件,具体可以是PDX文件包。
在一些实施例中,电子设备,例如车辆诊断设备,从汽车厂商的服务器获取目标数据包。在另一些实施例中,汽车厂商的服务器从与之通信耦合的存储器中获取目标数据包。在又一些实施例中,第三方提供的计算设备从汽车厂商的服务器获取目标数据包。
S320,解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径。
在一些实施例中,遍历目标数据包中的请求命令和响应命令的参数列表,获取各个参数匹配的路径。
在一些具体的示例中,获取所述各个参数匹配的路径,包括:根据所述参数的短名称引用关系确定所述路径。
参数的短名称引用是逐级引用的,可以逐级获取ODX文件中请求命令或响应命令引用短名称,将短名称逐层组合形成短名称路径。
在一些实施例中,可以将短名称逐层组合的方式可以是嵌套组合,也可以是串联组合,并生成与该组合唯一匹配的标识信息,例如哈希值。
在另一些实施例中,可以将短名称逐级的加入可变长容器对象中,例如加入vector对象中。
S330,针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中。所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
在一些实施例中,所述第一容器对象为键值对容器对象,例如map对象。将第一对应关系保存到第一容器对象中,包括:将所述参数的指针保存为所述第一容器对象的值;将与所述参数匹配的路径,保存为第一容器对象的键。
例如map容器对象,map<vector<string>,otxParameter*>mapPath2Param的vector<string>用于保存与所述参数匹配的路径,otxParameter*用于保存参数的指针。
在一些实施例中,执行图3所示是实施例各个步骤的执行主体为上述电子设备,例如车辆诊断仪。
可以在电子设备解析ODX协议的代码中定义一个基类类型,将参数列表等请求命令和响应命令共有的内部诊断数据对象提取到基类中。在请求命令和响应命令的基类中增加一个map容器对象的定义:map<vector<string>,otxParameter*>mapPath2Param。vector<string>用于保存与所述参数匹配的路径,otxParameter*用于保存参数的指针。
车辆诊断仪在解析汽车厂家提供的PDX汽车源文件环节,就将解析到的请求命令和响应命令的参数列表存储到map容器中。在需要进行路径寻参时,调用该容器对象,就可以迅速获得目标参数,而不需要在ODX文件中反复检索,提高了车辆诊断仪运行效率。
在另一些实施例中,执行图3所示是实施例各个步骤的执行主体为上述服务器或第三方设备。此种情况下电子设备从服务器或第三方设备获取第一容器对象。参考上述实施方式,服务器或第三方设备解析PDX文件,分别将解析到的诊断参数列表中的参数,存储到map容器对象中,并保存为可被电子设备获取的形式。例如,将map容器对象以数据表的形式保存。
可以理解的是,上述各个示例可以合逻辑的组合和增减。作为示例而非限定,本申请提供一个具体的示例,以便更好的理解本申请实施例的实现方式。
如图4所示:
本示例中处理流程大体分为两个阶段。
第一阶段是解析基于ODX诊断协议的文件包,获取第一容器对象的过程。其中,第一阶段可以由电子设备、服务器或第三方设备实现,为了表述方便,以下阐述以电子设备实现为例。
第二阶段是在OTX流程中调用路径寻参接口,利用第一容器对象获得目标参数的过程。第二阶段可以由电子设备,例如车辆诊断设备实现。
在第一阶段中,可以在电子设备解析ODX协议的代码中定义一个基类类型,将参数列表等请求命令和响应命令共有的内部诊断数据对象提取到基类中。在请求命令和响应命令的基类中增加一个map容器对象的定义:map<vector<string>,otxParameter*>mapPath2Param。vector<string>用于保存与所述参数匹配的路径,otxParameter*用于保存参数的指针。
具体的,参见图4,定义基于ODX诊断协议的请求命令和响应命令类型。
创建一个基类,将请求命令和响应命令共有的内部诊断数据对象提取到基类中。请求命令和响应命令类型中增加一个map容器对象的定义。电子设备加载PDX文件包,解析PDX文件包。电子设备在请求命令和响应命令的解析接口中遍历解析到的参数列表。将参数对象的路径按层次存储至一个vector容器对象中。将按路径层次的vector对象和对应的参数对象指针配对存储至基类map容器对象。电子设备提供请求命令和响应命令的ODX解析接口,在请求命令和响应命令的ODX解析接口中,将解析到的请求命令和响应命令的参数列表中每个参数的路径,按层次存储到一个vector<string>对象中,跟路径层次对应的参数的指针配对存储到基类对象的map容器对象中。
在第二阶段中,电子设备在执行OTX流程时,执行到寻参指令,例如请求指令或响应指令,需要根据参数路径获得参数。电子设备的程序中可以提供OTX流程调用的路径寻参接口。该接口的输入为参数路径,输出为目标参数。OTX流程调用的路径寻参接口中,直接调用Map容器对象mapPath2Param的Find函数查找传入的参数路径得到正确的参数对象。在OTX流程调用的路径寻参接口中传入待检索的参数路径。通过map容器对象检索传入的路径。最终返回检索到的参数对象。
本申请为ODX协议定义的请求命令和响应命令定义一个基类类型,将参数列表等请求命令和响应命令共有的内部诊断数据对象提取到基类中,使得程序整体设计更加灵活,更方便扩展,开发效率更高。在请求命令和响应命令的基类中增加一个map容器对象的定义:map<vector<string>,otxParameter*>mapPath2Param,即可完成各种路径层次的寻参需求,避免引入过多复杂容器对象,程序开发时间成本显著降低,代码量明显缩减。OTX流程调用的路径寻参接口中,直接调用Map容器对象mapPath2Param的Find函数查找传入的参数路径即可迅速得到正确的参数对象,寻参步骤更便捷,寻参速度更快。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上述图1所示的路径寻参的方法,图5示出的是本申请实施例提供的一种路径寻参的装置M100,包括:
寻参指令响应模块M110,用于响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;
目标参数获得模块M120,用于基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
可选的,所述第一容器对象为键值对容器对象;所述第一容器对象以第一可变长容器对象作为作为键;所述第一可变长容器对象用于保存与所述参数匹配的路径;所述第一容器对象以所述参数的指针作为值。
可选的,目标参数获得模块,包括:
可变长容器构建模块,用于基于所述目标路径,构建目标可变长容器对象;
目标参数的指针确定模块,根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;
目标参数获得模块,用于根据所述指针获得目标参数。
可选的,寻参指令响应模块,包括:
路径确定模块,用于根据所述寻参指令中的层名元素中内短名称,确定所述路径。
可选的,所述路径寻参的装置,还包括:
第一容器对象获取模块,用于获取所述第一容器对象。
第四方面,本申请实施例提供了一种路径寻参的装置,包括:
目标数据包获取模块,用于获取目标数据包;
参数解析模块,用于解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
匹配关系保存模块,用于针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。
对应于上述图3所示的路径寻参的方法,图6示出的是本申请实施例提供的一种数据处理的装置M200,包括:
目标数据包获取模块M210,用于获取目标数据包;
参数解析模块M220,用于解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
匹配关系保存模块M230,用于针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
可以理解的是,以上实施例中的各种实施方式和实施方式组合及其有益效果同样适用于本实施例,这里不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图7为本申请一实施例提供的电子设备的结构示意图。如图7所示,该实施例的电子设备D10包括:至少一个处理器D100(图7中仅示出一个)处理器、存储器D101以及存储在所述存储器D101中并可在所述至少一个处理器D100上运行的计算机程序D102,所述处理器D100执行所述计算机程序D102时实现上述任意各个方法实施例中的步骤。
在一些实施例中,所述处理器D100执行所述计算机程序D102时,实现以下步骤:响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
可选的,所述第一容器对象为键值对容器对象;所述第一容器对象以第一可变长容器对象作为作为键;所述第一可变长容器对象用于保存与所述参数匹配的路径;所述第一容器对象以所述参数的指针作为值。
可选的,所述处理器D100执行所述计算机程序D102基于所述目标路径,利用第一容器对象进行检索,获得目标参数时,具体实现以下步骤:基于所述目标路径,构建目标可变长容器对象;根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;根据所述指针获得目标参数。
可选的,所述处理器D100执行所述计算机程序D102根据所述寻参指令确定目标路径时,具体实现以下步骤:根据所述寻参指令中的层名元素中内短名称,确定所述路径。
可选的,所述处理器D100执行所述计算机程序D102在实现响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径的步骤前,还实现以下步骤:获取所述第一容器对象。
在一些实施例中,所述处理器D100执行所述计算机程序D102时,实现以下步骤:获取目标数据包;解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
所述电子设备D10可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该电子设备可包括,但不仅限于,处理器D100、存储器D101。本领域技术人员可以理解,图7仅仅是电子设备D10的举例,并不构成对电子设备D10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器D100可以是中央处理单元(Central Processing Unit,CPU),该处理器D100还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器D101在一些实施例中可以是所述电子设备D10的内部存储单元,例如电子设备D10的硬盘或内存。所述存储器D101在另一些实施例中也可以是所述电子设备D10的外部存储设备,例如所述电子设备D10上配备的插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器D101还可以既包括所述电子设备D10的内部存储单元也包括外部存储设备。所述存储器D101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器D101还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行时可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种路径寻参的方法,其特征在于,包括:
响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;
基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
2.如权利要求1所述的方法,其特征在于,所述第一容器对象为键值对容器对象;
所述第一容器对象以第一可变长容器对象作为作为键;所述第一可变长容器对象用于保存与所述参数匹配的路径;所述第一容器对象以所述参数的指针作为值。
3.如权利要求2所述的方法,其特征在于,基于所述目标路径,利用第一容器对象进行检索,获得目标参数,包括:
基于所述目标路径,构建目标可变长容器对象;
根据所述目标可变长容器对象,利用所述第一容器对象进行检索,确定目标参数的指针;
根据所述指针获得目标参数。
4.如权利要求1所述的方法,其特征在于,根据所述寻参指令确定目标路径,包括:
根据所述寻参指令中的层名元素中内短名称,确定所述路径。
5.如权利要求1所述的方法,其特征在于,在响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径前,所述方法还包括:
获取所述第一容器对象。
6.一种数据处理的方法,其特征在于,包括:
获取目标数据包;
解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
7.一种路径寻参的装置,其特征在于,包括:
寻参指令响应模块,用于响应于OTX流程中的寻参指令,根据所述寻参指令确定目标路径;
目标参数获得模块,用于基于所述目标路径,利用第一容器对象进行检索,获得目标参数;所述第一容器对象为包含第一对应关系的容器对象,所述第一对应关系为参数与所述参数匹配的路径的对应关系。
8.一种数据处理的装置,其特征在于,包括:
目标数据包获取模块,用于获取目标数据包;
参数解析模块,用于解析所述目标数据包中的各个参数,获取所述各个参数匹配的路径;
匹配关系保存模块,用于针对每个参数,确定所述参数与所述参数匹配的路径之间的第一对应关系,将所述第一对应关系保存到第一容器对象中;
所述第一容器对象,用于根据由OTX流程中的寻参指令确定的目标路径,获得目标参数。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并能够在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项,或权利要求6所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项,或权利要求6所述的方法。
CN202111648524.8A 2021-12-29 2021-12-29 路径寻参的方法、装置、电子设备及存储介质 Pending CN114356685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111648524.8A CN114356685A (zh) 2021-12-29 2021-12-29 路径寻参的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111648524.8A CN114356685A (zh) 2021-12-29 2021-12-29 路径寻参的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN114356685A true CN114356685A (zh) 2022-04-15

Family

ID=81103209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111648524.8A Pending CN114356685A (zh) 2021-12-29 2021-12-29 路径寻参的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114356685A (zh)

Similar Documents

Publication Publication Date Title
US11158143B2 (en) Vehicle diagnostic method and device, and computer readable storage medium
CN112104664B (zh) 物联网数据的协议转换方法、装置及设备
CN106776633B (zh) 用户可配置的自动生成a2l文件的装置和方法
CN114329090A (zh) 路径寻参的方法、装置、电子设备及存储介质
CN111552267B (zh) 车辆诊断方法、装置及车辆诊断设备
CN106407111B (zh) 终端测试装置、终端测试设备及变量维护方法
CN112751810B (zh) Can报文解析方法、装置及终端
CN114035805A (zh) 用于预编译器的代码转换方法、装置、介质及设备
CN112147983A (zh) 一种车辆诊断方法、装置、电子设备及存储介质
CN113848851A (zh) 车辆检测方法、装置、电子设备及存储介质
CN112181924A (zh) 文件转换方法、装置、设备及介质
CN117725422B (zh) 程序代码漏洞检测模型训练方法及检测方法
CN111078948A (zh) 汽车诊断数据解析方法及系统、存储介质
CN114356685A (zh) 路径寻参的方法、装置、电子设备及存储介质
CN112445797B (zh) 车辆诊断数据引用方法、装置、终端设备及存储介质
CN115314413B (zh) 一种can信号测试方法及装置
CN113848862B (zh) 诊断软件获取方法、装置、通信设备及存储介质
CN114625106A (zh) 车辆诊断的方法、装置、电子设备及存储介质
CN112433943A (zh) 基于抽象语法树的环境变量检测方法、装置、设备及介质
CN114326674B (zh) Ecu刷写的方法、装置、电子设备及存储介质
CN112949258A (zh) 数据处理方法、装置、电子设备及存储介质
CN112445491B (zh) 文件序列处理方法、装置、终端设备及存储介质
CN111930097A (zh) 一种车辆诊断数据解析方法、装置、设备及存储介质
CN113568662B (zh) 一种基于调用关系的代码变更影响范围分析方法及系统
CN116594960B (zh) 描述性文件格式转换方法、装置、计算机设备及存储介质

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