CN108733674B - 一种a2l文件合并方法及装置 - Google Patents
一种a2l文件合并方法及装置 Download PDFInfo
- Publication number
- CN108733674B CN108733674B CN201710244796.9A CN201710244796A CN108733674B CN 108733674 B CN108733674 B CN 108733674B CN 201710244796 A CN201710244796 A CN 201710244796A CN 108733674 B CN108733674 B CN 108733674B
- Authority
- CN
- China
- Prior art keywords
- address information
- file
- identifier
- objects
- target
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种A2L文件合并方法及装置。本发明实施例通过解析每个A2L文件,得到A2L对象,然后,根据所述A2L对象的标识符,更新所述A2L对象的地址信息,之后,将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件。因此,本发明实施例提供的技术方案能够解决现有技术中A2L文件合并的问题,节省了成本。
Description
【技术领域】
本发明涉及数据处理技术领域,尤其涉及一种A2L文件合并方法及装置。
【背景技术】
目前,在汽车软件的开发过程中,汽车电子控制单元的软件需要对数据进行标定和测量,并且,标定和测量的数据一般以AASAM MCD-2MC格式存储,文件名称以.a2l结尾,简称A2L文件。但是,在汽车的软件开发过程中,通常会生成多个A2L文件,而进行数据标定的时候只能输入一个A2L文件,因此,将A2L文件进行合并变得非常重要。
现有技术中,一般使用Vector的A2L文件合并工具,但是,并没有公开的A2L文件的合并方法。
【发明内容】
有鉴于此,本发明实施例提供了一种A2L文件合并方法及装置,用以解决现有技术中A2L文件合并的问题。
一方面,本发明实施例提供了一种A2L文件合并方法,包括:
解析每个A2L文件,得到A2L对象;
根据所述A2L对象的标识符,更新所述A2L对象的地址信息;
将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,解析每个A2L文件,得到A2L对象,包括:
逐行读取每个A2L文件中的数据;
识别每行数据对应的A2L对象的属性类型;
采用与所述A2L对象的属性类型对应的解析方式,对每行所述数据进行解析,得到A2L对象。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述A2L对象的地址信息进行更新之前,所述方法还包括:
提取地址信息文件中的A2L对象的标识符与地址信息;
根据所述地址信息文件中的A2L对象的标识符与地址信息,生成地址信息列表。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,更新所述A2L对象的地址信息,包括:
检测所述地址信息列表中是否存在与至少一个所述A2L对象的标识符相同的目标标识符;
将所述地址信息列表中存在目标标识符的A2L对象的地址信息替换为所述目标标识符对应的地址信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将更新地址信息后的A2L对象进行合并,包括:
将所述更新地址信息后的A2L对象进行标识符冲突处理;
将所述标识符冲突处理后的A2L对象,按照A2L文件的生成格式,输出至一个A2L文件,得到所述目标A2L文件。
另一方面,本发明实施例提供了一种A2L文件合并装置,包括:
解析单元,用于解析每个A2L文件,得到A2L对象;
更新单元,用于根据所述A2L对象的标识符,更新所述A2L对象的地址信息;
合并单元,用于将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述解析单元,具体用于:
逐行读取每个A2L文件中的数据;
识别每行数据对应的A2L对象的属性类型;
采用与所述A2L对象的属性类型对应的解析方式,对每行所述数据进行解析,得到A2L对象。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述装置还包括:
提取单元,用于提取地址信息文件中的A2L对象的标识符与地址信息;
生成单元,用于根据所述地址信息文件中的A2L对象的标识符与地址信息,生成地址信息列表。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述更新单元,具体用于:
检测所述地址信息列表中是否存在与至少一个所述A2L对象的标识符相同的目标标识符;
将所述地址信息列表中存在目标标识符的A2L对象的地址信息替换为与所述目标标识符对应的地址信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述合并单元,具体用于:
将所述更新地址信息后的A2L对象进行标识符冲突处理;
将所述标识符冲突处理后的A2L对象,按照A2L文件的生成格式,输出至一个A2L文件中,得到所述目标A2L文件。
上述技术方案中的一个技术方案具有如下有益效果:
本发明实施例中,通过对每个A2L文件进行解析拆分得到A2L对象,之后,对这些A2L文件的地址信息进行更新,之后,将这些A2L对象进行合并,即可得到一个目标A2L文件;在该过程中,本发明实施例通过先解析拆分后合并生成的方式,将多个A2L文件合并为一个目标A2L文件,这个目标A2L文件中包含有这些A2L文件中的大部分A2L对象,此时生成并输出的目标A2L文件能够满足在汽车软件开发过程中对A2L文件中的数据进行标定的需求,解决了现有技术中A2L文件合并的问题,节省了成本。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例所提供的A2L文件合并方法的流程示意图;
图2是本发明实施例中对A2L文件进行解析的流程示意图;
图3是本发明实施例中更新A2L对象的地址信息的流程示意图;
图4是本发明实施例中对A2L对象进行标识符冲突处理的流程示意图;
图5是本发明实施例所提供的A2L文件合并装置的功能方块图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
针对现有技术中所存在的A2L文件合并的问题,本发明实施例提供了如下解决思路:通过解析每个A2L文件中的每个A2L对象,之后,再将这些A2L对象按照格式进行合并,生成并输出一个目标A2L文件。
在该思路的引导下,本方案实施例提供了以下可行的实施方案。
实施例一
本发明实施例给出一种A2L文件合并方法。
具体的,请参考图1,其为本发明实施例所提供的A2L文件合并方法的流程示意图,如图1所示,该方法包括以下步骤:
S101,解析每个A2L文件,得到A2L对象。
S102,根据A2L对象的标识符,更新A2L对象的地址信息。
S103,将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件。
具体的,A2L文件中的文档结构可以包括:文档头部、A2L对象和文档结尾。其中,文档头部包含A2L文件采用的ASAM的版本信息,该A2L文件所对应的项目名称等,而文档结尾和文档头部相对应,在文档结尾需要加上项目结束的标记。
具体的,按照数据类型对A2L对象进行分类,可以大致分为:标定A2L对象和测量A2L对象。其中,标定A2L对象对应的数据为标定数据,测量A2L对象对应的数据为测量数据。
具体的,A2L对象的属性类型可以包括但不限于:A2ML、IF_DATA、MOD_COMMON、MOD_PAR、MEASUREMENT、CHARACTERISTIC、COMPU_METHOD、RECORD_LAYOUT、GROUP、AXIS_PTS。为了便于表述,A2ML属性类型的A2L对象简称为A2ML对象,其余属性类型的A2L对象也做类似处理。
其中,A2ML是用来描述特殊接口(接口即与外部设备通信的方式)的数据的格式。IF_DATA是用来描述特殊接口的数据。MOD_COMMON是用来描述A2L文件中数据变量的存储长度与存储方式。MOD_PAR用来描述这些数据是针对哪些设备的存储的数据。MEASUREMENT用来描述被测量对象的属性。CHARACTERISTIC用来描述标定对象的属性。COMPU_METHOD用来描述将一值转换为另一个值的计算方法。RECORD_LAYOUT用来描述变量的数据结构在内存中的布局对象。GROUP用来归类标定与测量对象。AXIS_PTS用于描述坐标空间中点的参数。
本发明实施例中,考虑到上述A2L对象在A2L文件中并没有明确的顺序,而且,除A2ML、MOD_COMMON、MOD_PAR这三种属性类型的A2L对象外,每个属性类型的A2L对象的数量也是不确定的,基于此,在执行S101时,可以采用顺序解析的模式对A2L文件进行解析。
在一个具体的实现过程中,解析每个A2L文件,得到A2L对象的过程可以包括:逐行读取每个A2L文件中的数据,然后,识别每行数据对应的A2L对象的属性类型,之后,采用与所述A2L对象的属性类型对应的解析方式,对每行所述数据进行解析,得到A2L对象。
具体的,请参考图2,其为本发明实施例中对A2L文件进行解析的流程示意图,如图2所示,逐行读取A2L文件中的数据,当读入一行数据的时候,依次判断这行数据是否为A2ML对象、MOD_COMMON对象、MEASURE对象、CHARACTERISTIC对象、IF_DATA对象、COMPU_METHOD对象、AXIX_PTS对象、RECORD_LAYOUT对象、GROUP对象、FUNCTION对象、MODULE对象,当在任意一步的判断过程为是的时候,就确定这行数据的属性类型,从而,根据该属性类型对应的解析方式对这行数据进行解析,即可得到A2L对象。并在每次解析过程结束后,判断是否到达A2L文件的结尾,当判断为否时,继续进行下一行数据的判断;当判断为是时,结束。
这样,通过逐行读入并逐行判断的方式,直至读入A2L文件的结尾,就可以解析得到这个A2L文件的全部A2L对象。
在一个具体的实现过程中,考虑到A2L文件中的A2L对象一般具有标识符,标识符相当于每个对象的身份标识,因此,可以根据标识符来确定每行数据的属性类型。具体的,当确定一行数据中具备有任意一个属性类型对应的标识符时,就可以确定这行数据的属性类型。
在一个具体的实现过程中,该标识符可以是A2L对象的名称。
但是,A2ML、MOD_COMMON、MOD_PAR这三种属性类型的对象在一个A2L文件中有且只能有一种,并且,这三种属性类型不具备标识符。
本发明实施例对于解析得到的A2L对象具体包括的内容不进行特别限定。例如,COMPU_METHOD、RECORD_LAYOUT、GROUP这几种属性类型的A2L对象解析得到的数据包括标识符属性。MEASUREMENT对象解析出的数据包括标识符Name,数据类型Datatype,转换方法Conversion,精度Accuracy,数值最大值LowerLimit,数值最小值UpperLimit和ECU内存地址信息。CHARACTERISTIC对象解析出的数据包括名称Name,注释LongIdentifier,类型Type,地址信息Address。
本发明实施例中,考虑到在S101中可能会获取到部分A2L对象的地址信息,但是,这些地址信息是否正确不能确定,因此,在进行合并前,需要执行S102,以使得合并得到的目标A2L文件中各A2L对象的地址信息是正确的。
本发明实施例中,是根据A2L对象的标识符,实现对A2L对象的地址信息的更新。基于此,在执行S102时可以有多种实现方式。为了更具体的说明本方案,本发明实施例给出以下实现方式。
在执行S102之前,预先提取地址信息文件(map文件)中的A2L对象的标识符与地址信息,并基于提取到的map文件中的A2L对象的标识符与地址信息,生成地址信息列表PLIST。
具体的,A2L文件中的标定A2L对象的地址信息和测量A2L对象的地址信息都存储在map文件中,而map文件中也可以包含有多种地址信息类型。
在提取map文件中的地址信息时,也可以通过逐行读取判断的方式实现。具体的,A2L文件中的地址信息一般以“.rodata”、“.bss”、“.vletext”、“.data”、“.calib”、“.app_const”、“.app_data”开头,并且每行的数据段(连续的字符组成的)仅有3个。基于此,可以逐行读取map文件中的数据,若有任意的一行数据是以“.rodata”、“.bss”、“.vletext”、“.data”、“.calib”、“.app_const”、“.app_data”开头,并且该行的数据段(连续的字符组成的)仅有3个,那么,就可以提取这行数据中包含的A2L对象的地址信息。提取A2L对象的标识符的方式如前所述,在此不再进行赘述。那么,在提取到A2L对象的标识符和地址信息后,就同时将这行A2L对象的标识符和地址信息对应存储至地址信息列表PLIST中。
需要说明的是,map文件中的A2L对象与S101中获取到的A2L对象可以相同,可以不同。例如,S101中获取到的A2L对象与map文件中的A2L对象完全相同。或者,又例如,S101中获取到的A2L对象可以包含于map文件中的A2L对象中。
本发明实施例中,通过检测地址信息列表PLIST中是否存在与至少一个A2L对象的标识符相同的目标标识符,然后,将地址信息列表PLIST中存在目标标识符的A2L对象的地址信息替换为该目标标识符对应的地址信息,而对于其他不存在目标标识符的A2L对象的地址信息不进行更新。
基于此,在执行S102时,针对任意的一个A2L对象,对其进行地址信息的更新时,只需要检测生成的地址信息列表PLIST中是否存在与该A2L对象的标识符相同的目标标识符即可,从而,当该地址信息列表PLIST中存在目标标识符时,就将该A2L对象的地址信息替换为目标标识符对应的地址信息,以更新获取到的A2L对象的地址信息。
在具体实现该步骤的过程中也可以有多种实现方式。例如,可以通过比较目标标识符对应的地址信息与A2L对象的地址信息是否一致,当二者不一致时,则将A2L对象的地址信息替换为目标标识符对应的地址信息。或者,又例如,也可以不经过判断比较的过程,只要确定地址信息列表中存在目标标识符,则直接将A2L对象的地址信息替换为目标标识符对应的地址信息。
反之,若该地址信息列表中不存在某一A2L对象的目标标识符,则不会对该A2L对象的地址信息进行更新。
通过以上方式,可以对S101中获取到的多个A2L对象逐个进行地址信息的更新,或者,也可以进行批量处理,本发明实施例对此不进行特别限定。需要注意的是,当对S101中获取到的多个A2L对象批量进行地址信息的更新时,由于S101中获取到的A2L对象可能有很多,基于此,在批量更新这些A2L对象的地址信息时,每个A2L对象都对应于不同的目标标识符,当存在任意一个A2L对象对应的目标标识符时,只需要对该A2L对象的地址信息进行更新即可。
以上,是根据获取到的A2L对象在地址信息列表PLIST中查询目标标识符的方式,进行地址信息的更新;或者,反之,还可以以地址信息列表为基准,对获取到的A2L对象的地址信息进行更新。
在一个具体的实现过程中,可以将根据A2L对象的数据类型,将在S101中获取到的A2L对象按照数据类型存储到不同的链表中,具体的,可以建立两个链表,一个链表为CLIST链表,用于存储所有的标定A2L对象,另一个链表为MLIST链表,用于存储所有的测量A2L对象。之后,针对每个链表分别进行地址信息的更新。
具体的,请参考图3,其为本发明实施例中更新A2L对象的地址信息的流程示意图。如图3所示,该步骤包括:
S301,创建哈希表HC和HM。
其中,HC用于存储标定A2L对象,HM用于存储测量A2L对象。
S302,将CLIST中的标定A2L对象存入HC中,并将MLIST中的测量A2L对象存入HM中。
S303,迭代器选取PLIST的第一个元素。
S304,查询HC中是否存在与该元素的标识符相同的A2L对象;若是,执行S305;若否,执行S306。
S305,更新HC中与该元素的标识符相同的A2L对象的地址信息。
S306,查询HM中是否有与该元素的标识符相同的A2L对象;若是,执行S307;若否,执行S308。
S307,更新HM中与该元素的标识符相同的A2L对象的地址信息。
S308,判断当前元素是否为空;若是,循环结束,执行S310;若否,循环未结束,执行S309。
S309,迭代器选取PLIST中的下一个元素。
S310,将CLIST和MLIST中的数据清除,并将HC的数据存入CLIST中,将MC的数据存入MLIST中。
以上,为S102中对A2L的地址信息进行更新的一种具体实现方式,并不用以限制本申请。而且,在实际实现S102的过程中,还可以有其他的实现方式。
例如,也可以通过上述在map文件中提取地址信息的方式,不需要经过对比,直接在map文件中提取与S101中得到的A2L对象的标识符相同的标识符对应的地址信息,这样,也能够实现对A2L对象的地址信息的更新,在此不再进行赘述。
本发明实施例中,考虑到获取到的是多个A2L文件中的多个A2L对象,那么,这些A2L对象中会存在大量名称重复的情况,也就是,标识符重复的情况。并且,这种标识符重复的情况不仅存在于相同类型的A2L对象之间,在不同类型的A2L对象之间也存在标识符重复的情况,包括属性类型与数据类型。
基于此,在执行S103的过程中,可以包括两个步骤:将更新地址信息后的A2L对象进行标识符冲突处理,之后,将标识符冲突处理后的A2L对象,按照A2L文件的生成格式输出至一个A2L文件中,就可以得到目标A2L文件。
以下,以对相同属性类型的A2L对象之间存在的标识符重复情况进行标识符冲突处理为例进行具体说明。
请参考图4,其为本发明实施例中对A2L对象进行标识符冲突处理的流程示意图。如图4所示,该步骤包括:
S401,为每种属性类型的A2L对象创建一个输出链表和一个标识符存储哈希表H,这个输出链表用于存储A2L对象。
S402,针对每个A2L文件中解析得到的每个A2L对象,依次查询H中是否存在。
S403,将H中存在的A2L对象存储到该属性类型的输出链表中,并将该A2L对象的标识符存储至H中。
需要说明的是,在S402中,若有A2L对象不存在于H中,则不需要将这个A2L对象加入到该属性类型的A2L对象的输出链表中。
基于以上步骤,可以得到每种属性类型的A2L对象的输出链表,这些输出链表中不存在标识符重复的情况。基于这些输出链表,还可以进一步对不同属性类型之间的标识符冲突处理,在此不再进行赘述。
目标A2L文件的格式可以根据实际需要进行预设,本发明实施例对此不进行特别限定。
在一个具体的实现过程中,可以按照文档头部、A2ML,AXIS_PTS、IF_DATA、MOD_COMMON、MOD_PAR、MEASUREMENT、CHARACTERISTIC、COMPU_METHOD、RECORD_LAYOUT、GROUP、文档结尾输出至一个A2L文件当中,即可得到目标A2L文件。
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,通过对每个A2L文件进行解析拆分得到A2L对象,之后,对这些A2L文件的地址信息进行更新,之后,将这些A2L对象进行合并,即可得到一个目标A2L文件;在该过程中,本发明实施例通过先解析拆分后合并生成的方式,将多个A2L文件合并为一个目标A2L文件,这个目标A2L文件中包含有这些A2L文件中的大部分A2L对象,此时生成并输出的目标A2L文件能够满足在汽车软件开发过程中对A2L文件中的数据进行标定的需求,解决了现有技术中A2L文件合并的问题,节省了成本。
实施例二
基于上述实施例一所提供的A2L文件合并方法,本发明实施例进一步给出实现上述方法实施例中各步骤及方法的装置实施例。
请参考图5,其为本发明实施例所提供的A2L文件合并装置的功能方块图。如图5所示,该装置包括:
解析单元51,用于解析每个A2L文件,得到A2L对象;
更新单元52,用于根据A2L对象的标识符,更新A2L对象的地址信息;
合并单元53,用于将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件。
具体的,本发明实施例中,解析单元51,具体用于:
逐行读取每个A2L文件中的数据;
识别每行数据对应的A2L对象的属性类型;
采用与A2L对象的属性类型对应的解析方式,对每行数据进行解析,得到A2L对象。
在一个具体的实现过程中,该装置还包括:
提取单元54,用于提取地址信息文件中的A2L对象的标识符与地址信息;
生成单元55,用于根据地址信息文件中的A2L对象的标识符与地址信息,生成地址信息列表。
此时,更新单元52,具体用于:
检测地址信息列表中是否存在与至少一个所述A2L对象的标识符相同的目标标识符;
将地址信息列表中存在目标标识符的A2L对象的地址信息替换为与目标标识符对应的地址信息。
本发明实施例中,合并单元53,具体用于:
将更新地址信息后的A2L对象进行标识符冲突处理;
将标识符冲突处理后的A2L对象,按照A2L文件的生成格式,输出至一个A2L文件,得到目标A2L文件。
由于本实施例中的各单元能够执行图1所示的方法,本实施例未详细描述的部分,可参考对图1的相关说明。
本发明实施例的技术方案具有以下有益效果:
本发明实施例中,通过对每个A2L文件进行解析拆分得到A2L对象,之后,对这些A2L文件的地址信息进行更新,之后,将这些A2L对象进行合并,即可得到一个目标A2L文件;在该过程中,本发明实施例通过先解析拆分后合并生成的方式,将多个A2L文件合并为一个目标A2L文件,这个目标A2L文件中包含有这些A2L文件中的大部分A2L对象,此时生成并输出的目标A2L文件能够满足在汽车软件开发过程中对A2L文件中的数据进行标定的需求,解决了现有技术中A2L文件合并的问题,节省了成本。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种A2L文件合并方法,其特征在于,所述方法包括:
解析每个A2L文件,得到A2L对象;
根据所述A2L对象的标识符,更新所述A2L对象的地址信息;
将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件;
所述将更新地址信息后的A2L对象进行合并,包括:
将所述更新地址信息后的A2L对象进行标识符冲突处理;
将所述标识符冲突处理后的A2L对象,按照A2L文件的生成格式,输出至一个A2L文件中,得到所述目标A2L文件;
所述将所述更新地址信息后的A2L对象进行标识符冲突处理,包括:
为每种属性类型的A2L对象创建一个输出链表和一个标识符存储哈希表,所述输出链表用于存储A2L对象;
针对每个A2L文件中解析得到的每个A2L对象,依次查询所述标识符存储哈希表中是否存在所述每个A2L文件对应的A2L对象;
将所述标识符存储哈希表中存在的A2L对象存储到该属性类型的输出链表中,并将所述A2L对象的标识符存储至所述标识符存储哈希表中。
2.根据权利要求1所述的方法,其特征在于,解析每个A2L文件,得到A2L对象,包括:
逐行读取每个A2L文件中的数据;
识别每行数据对应的A2L对象的属性类型;
采用与所述A2L对象的属性类型对应的解析方式,对每行所述数据进行解析,得到A2L对象。
3.根据权利要求1所述的方法,其特征在于,对所述A2L对象的地址信息进行更新之前,所述方法还包括:
提取地址信息文件中的A2L对象的标识符与地址信息;
根据所述地址信息文件中的A2L对象的标识符与地址信息,生成地址信息列表。
4.根据权利要求3所述的方法,其特征在于,更新所述A2L对象的地址信息,包括:
检测所述地址信息列表中是否存在与至少一个所述A2L对象的标识符相同的目标标识符;
将所述地址信息列表中存在目标标识符的A2L对象的地址信息替换为所述目标标识符对应的地址信息。
5.一种A2L文件合并装置,其特征在于,所述装置包括:
解析单元,用于解析每个A2L文件,得到A2L对象;
更新单元,用于根据所述A2L对象的标识符,更新所述A2L对象的地址信息;
合并单元,用于将更新地址信息后的A2L对象进行合并,得到一个目标A2L文件;
所述合并单元,具体用于:
将所述更新地址信息后的A2L对象进行标识符冲突处理;
将所述标识符冲突处理后的A2L对象,按照A2L文件的生成格式,输出至一个A2L文件中,得到所述目标A2L文件;
所述合并单元,具体用于:
为每种属性类型的A2L对象创建一个输出链表和一个标识符存储哈希表,所述输出链表用于存储A2L对象;
针对每个A2L文件中解析得到的每个A2L对象,依次查询所述标识符存储哈希表中是否存在所述每个A2L文件对应的A2L对象;
将所述标识符存储哈希表中存在的A2L对象存储到该属性类型的输出链表中,并将所述A2L对象的标识符存储至所述标识符存储哈希表中。
6.根据权利要求5所述的装置,其特征在于,所述解析单元,具体用于:
逐行读取每个A2L文件中的数据;
识别每行数据对应的A2L对象的属性类型;
采用与所述A2L对象的属性类型对应的解析方式,对每行所述数据进行解析,得到A2L对象。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
提取单元,用于提取地址信息文件中的A2L对象的标识符与地址信息;
生成单元,用于根据所述地址信息文件中的A2L对象的标识符与地址信息,生成地址信息列表。
8.根据权利要求7所述的装置,其特征在于,所述更新单元,具体用于:
检测所述地址信息列表中是否存在与至少一个所述A2L对象的标识符相同的目标标识符;
将所述地址信息列表中存在目标标识符的A2L对象的地址信息替换为所述目标标识符对应的地址信息。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710244796.9A CN108733674B (zh) | 2017-04-14 | 2017-04-14 | 一种a2l文件合并方法及装置 |
PCT/CN2017/093167 WO2018188222A1 (zh) | 2017-04-14 | 2017-07-17 | 一种a2l文件合并方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710244796.9A CN108733674B (zh) | 2017-04-14 | 2017-04-14 | 一种a2l文件合并方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108733674A CN108733674A (zh) | 2018-11-02 |
CN108733674B true CN108733674B (zh) | 2021-10-08 |
Family
ID=63793648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710244796.9A Active CN108733674B (zh) | 2017-04-14 | 2017-04-14 | 一种a2l文件合并方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108733674B (zh) |
WO (1) | WO2018188222A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287153B (zh) * | 2019-06-29 | 2021-05-18 | 潍柴动力股份有限公司 | 一种a2l标定量地址范围冲突的检测方法及装置 |
CN110262289B (zh) * | 2019-07-18 | 2022-04-26 | 潍柴动力股份有限公司 | A2l文件中变量的处理方法、装置和存储介质 |
CN110851665B (zh) * | 2019-11-12 | 2022-07-12 | 上海元城汽车技术有限公司 | 标定信息提取方法、装置、电子设备及存储介质 |
CN112486925B (zh) * | 2020-12-28 | 2022-09-23 | 潍柴动力股份有限公司 | 一种a2l文件处理方法、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1248191A2 (en) * | 2001-04-04 | 2002-10-09 | Denso Corporation | Product development system using common format data |
CN103136211A (zh) * | 2011-11-23 | 2013-06-05 | 北汽福田汽车股份有限公司 | 一种a2l文件的自动生成方法和装置 |
CN103699116A (zh) * | 2013-12-17 | 2014-04-02 | 陕西法士特齿轮有限责任公司 | 一种自动变速器集成实验系统 |
CN103778153A (zh) * | 2012-10-23 | 2014-05-07 | 广州汽车集团股份有限公司 | 一种基于asap标准生成标定数据库的方法及系统 |
CN104102479A (zh) * | 2013-04-10 | 2014-10-15 | 北汽福田汽车股份有限公司 | 一种obd变量定义源文件的自动生成方法 |
CN104850570A (zh) * | 2014-08-29 | 2015-08-19 | 北汽福田汽车股份有限公司 | A2l文件自动生成方法及系统 |
CN106126504A (zh) * | 2016-08-26 | 2016-11-16 | 重庆红江机械有限责任公司 | A2l语法解析器及方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101957858A (zh) * | 2010-09-27 | 2011-01-26 | 中兴通讯股份有限公司 | 数据比对方法和装置 |
US8924365B2 (en) * | 2011-02-08 | 2014-12-30 | Wavemarket, Inc. | System and method for range search over distributive storage systems |
CN103577278B (zh) * | 2012-07-30 | 2016-12-21 | 国际商业机器公司 | 用于数据备份的方法和系统 |
US20140088732A1 (en) * | 2012-09-27 | 2014-03-27 | Siemens Product Lifecycle Management Software Inc. | Methods and systems for configuration and management of electronic control unit |
CN103020024B (zh) * | 2012-12-27 | 2016-01-27 | 北京经纬恒润科技有限公司 | 一种文件格式转换方法 |
CN104123126B (zh) * | 2013-04-26 | 2018-04-10 | 阿里巴巴集团控股有限公司 | 一种用于生成合并冲突记录列表的方法和装置 |
CN104636351B (zh) * | 2013-11-07 | 2018-01-19 | 北汽福田汽车股份有限公司 | A2l文件的生成方法及系统 |
CN104899219B (zh) * | 2014-03-06 | 2019-06-18 | 上海携程商务有限公司 | 伪静态url的筛除方法、系统及网页爬取方法、系统 |
CN105677250B (zh) * | 2016-01-04 | 2019-07-12 | 北京百度网讯科技有限公司 | 对象存储系统中的对象数据的更新方法和更新装置 |
-
2017
- 2017-04-14 CN CN201710244796.9A patent/CN108733674B/zh active Active
- 2017-07-17 WO PCT/CN2017/093167 patent/WO2018188222A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1248191A2 (en) * | 2001-04-04 | 2002-10-09 | Denso Corporation | Product development system using common format data |
CN103136211A (zh) * | 2011-11-23 | 2013-06-05 | 北汽福田汽车股份有限公司 | 一种a2l文件的自动生成方法和装置 |
CN103778153A (zh) * | 2012-10-23 | 2014-05-07 | 广州汽车集团股份有限公司 | 一种基于asap标准生成标定数据库的方法及系统 |
CN104102479A (zh) * | 2013-04-10 | 2014-10-15 | 北汽福田汽车股份有限公司 | 一种obd变量定义源文件的自动生成方法 |
CN103699116A (zh) * | 2013-12-17 | 2014-04-02 | 陕西法士特齿轮有限责任公司 | 一种自动变速器集成实验系统 |
CN104850570A (zh) * | 2014-08-29 | 2015-08-19 | 北汽福田汽车股份有限公司 | A2l文件自动生成方法及系统 |
CN106126504A (zh) * | 2016-08-26 | 2016-11-16 | 重庆红江机械有限责任公司 | A2l语法解析器及方法 |
Non-Patent Citations (1)
Title |
---|
发动机标定数据管理系统开发;周洋;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131215(第S2期);I138-535 * |
Also Published As
Publication number | Publication date |
---|---|
WO2018188222A1 (zh) | 2018-10-18 |
CN108733674A (zh) | 2018-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108733674B (zh) | 一种a2l文件合并方法及装置 | |
CN108427731B (zh) | 页面代码的处理方法、装置、终端设备及介质 | |
CN107316156B (zh) | 一种数据处理方法、装置、服务器及存储介质 | |
CN108664471B (zh) | 文字识别纠错方法、装置、设备及计算机可读存储介质 | |
US20150186195A1 (en) | Method of analysis application object which computer-executable, server performing the same and storage media storing the same | |
CN116340367B (zh) | 数据查询方法、装置、设备和存储介质 | |
CN112905441A (zh) | 测试用例生成方法、测试方法、装置及设备 | |
CN111026663A (zh) | 一种软件缺陷检测方法、装置、计算机设备和存储介质 | |
CN110750991A (zh) | 实体识别方法、装置、设备及计算机可读存储介质 | |
CN112256635A (zh) | 一种识别文件类型的方法及装置 | |
WO2018066661A1 (ja) | ログ分析方法、システムおよび記録媒体 | |
CN114840729A (zh) | 元器件分类测试数据生成方法及系统、设备、存储介质 | |
CN113064556A (zh) | 一种bios的数据存储方法、装置、设备及存储介质 | |
CN109101435A (zh) | 移动存储设备的多分区识别方法及系统、车载终端 | |
CN116719843A (zh) | 数据库系统的查询方法、存储介质及设备 | |
CN113158177A (zh) | 一种动态度量方法、装置、设备及存储介质 | |
CN114579580A (zh) | 存储数据的方法、查询数据的方法和装置 | |
CN107196789B (zh) | 一种校验基站参数的方法和装置 | |
CN114024872A (zh) | 语音语义平台异常报警方法、设备、存储介质及装置 | |
CN111338956A (zh) | 一种自动化的压测方法、装置、设备和存储介质 | |
CN110580243A (zh) | 一种文件比对方法、装置、电子设备及存储介质 | |
CN115543227B (zh) | 跨系统数据迁移方法、系统、电子设备及存储介质 | |
JP6091471B2 (ja) | ソースコード解析装置、ソースコード解析方法およびソースコード解析プログラム | |
CN116303627B (zh) | 半导体测试数据的查询方法、装置、电子设备及存储介质 | |
JP2020064383A (ja) | リスク特定装置、リスク特定方法、およびプログラム |
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 |