本申请涉及数据处理技术领域,尤其涉及一种a2l文件处理方法、装置及存储介质。
背景技术:
目前,汽车软件开发过程中,汽车电子控制单元软件需对数据进行标定和测量。标定和测量的数据通常以asammcd-2mc格式存储,文件名以.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示例性示出了本申请实施例提供的删除字典中待删除变量的变量名和变量值的方法流程图;
图3示例性示出了本申请实施例提供的一种a2l文件处理方法的完整流程图;
图4示例性示出了本申请实施例提供的一种a2l文件处理装置的功能结构图;
图5示例性示出了本申请实施例提供的一种a2l文件处理装置的硬件结构图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部份实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
基于本申请中示出的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整技术方案。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语“模块”,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
下面对本申请实施例涉及的名词进行解释:
a2l文件:a2l文件是一个对电子控制单元(electroniccontrolunit,ecu)内部变量进行描述的文件,包含测量变量和标定变量两部分,a2l文件和程序一一对应。通过a2l文件,标定工具识别程序中的变量名称、变量地址、变量长度等信息。
字典:脚本语言中一种以键值对形式存储各种的变量类型,键值对,由键(key)和值(value)组成。本申请实施例中字典中的键为a2l文件中变量的变量名,值为变量的变量值。
图1示例性示出了本申请实施例提供的一种a2l文件处理方法流程图。该方法的执行主体可以为a2l文件中变量的处理装置,如图1所示,该流程主要包括以下几步:
s101:读取待删除变量的变量名。
该步骤中,可从待删除变量列表中读取待删除变量的变量名,其中,待删除变量列表预先存储于处理a2l文件中变量的装置中,还可以存储于其他装置中,比如服务端装置。
s102:判断读取的变量名是否为a2l文件对应的部分字典中的键,若是,执行s103,否则结束。
该步骤中,字典用于存储按a2l文件中的变量类型拆分a2l文件后的部分变量的变量名和变量值,字典中的键为a2l文件中变量的变量名,值为变量名对应的变量值,即a2l文件中变量的内容,可以是数值,也可以是文字描述。一个字典中存在至少一个变量,不同类型的变量存在于不同字典中。字典具体的生成方式为:根据变量的类型,将a2l文件拆分为文件头部分和多个非文件头部分,将文件头部分存入字符串中,将多个非文件头部分的变量存入各字典中,其中非文件头部分包括:标定量(characteristic)信息、测量量(measurement)信息、轴分(axis_pts)信息、记录布局(record_layout)信息、函数(function)信息、振动(compu_vtab)信息、模式(compu_method)信息、单位(unit)信息。
其中,文件头部分包含了项目信息,比如项目编号,项目版本等信息;标定量信息用来定义标定变量,包含可以被标定的变量的名字、地址、长度、计算公式、精度、最大最小值等信息,一个ecu可以有很多的标定变量;测量量信息用来定义测量变量,包含可以被测量的变量的名字、地址、长度、计算公式、精度、最大最小值等信息,一个ecu可以有很多的测量变量;轴分信息用来定义数组或查表变量对应的轴的类型,它将被记录布局信息引用,一个ecu里边可以有很多种不同的轴类型,用于实现查表和插值,一般很少用到;记录布局信息用来定义标定变量的物理存储结构,比如单个变量、二维表、三维表等;振动信息用来定义原始值和物理值的映射关系,是一种特殊的转换关系,一般应用于枚举变量;模式信息用于定义计算公式以及原始值和物理值之间的转换关系,计算公式可以被标定变量和测量变量来引用,从而将原始值转换成便于阅读和使用的物理值;单位信息通常包含该单位的描述、单位等信息;函数信息用来定义函数,通常包含该函数定义的标定量、测量量,输出的标定量、测量量,输出的标定量、测量量,包含的子函数名及各子函数具体定义、输入与输出的标定量与测量量等信息。
将多个非文件头部分的变量存入字典中,对于标定量信息中的变量,其变量名和变量值保存至标定量字典(caldict)中,对于测量量信息中的变量,其变量名和变量值保存至测量量字典(mesdict)中,对于轴分信息中的变量,其变量名和变量值保存至轴分字典(axisdict)中,对于函数信息中的变量,其变量名和变量值保存至函数字典(funcdict)中,其他以此类推。各字典存储的内容如下表1-8所示。
表1、标定量字典
表2、测量量字典
表3、轴分字典
表4、记录布局字典
表5、函数字典
表6、振动字典
表7、模式字典
表8、单位字典
在一种可选的实施方式中,有些a2l文件中的变量是不许删除的,比如记录布局信息中的变量,因此在进行变量删除时,可不考虑记录布局字典、振动字典信息、模式字典、单位字典中的变量。
s103:从各字典中删除变量名以及变量名对应的变量值。
该步骤中,针对每一字典,若字典的键为待删除变量的变量名,则删除变量名以及变量名对应的变量值。其中,有些字典中的变量是不被删除的,比如记录布局信息中的变量、振动信息中的变量、模式信息中的变量、单位信息中的变量,因此,在进行变量删除时,可仅将标定量字典、测量量字典、轴分字典、函数字典中待删除变量的变量名和变量值删除。
需要说明的是,一个函数可能包括多个子函数,或者函数中存在嵌套函数,因此同一个变量名在不同的子函数或函数中可能对应不同的变量值,也就是说,函数字典中的同一个键,可能有不同的值。因此当待删除变量属于函数信息,删除函数字典中待删除变量的变量名和变量值时,需要变量整个函数字典。具体的,遍历函数字典中的键,若函数字典的键为待删除变量的变量名,则从函数字典中删除变量名以及变量名对应的变量值。具体删除过程参见图2,在此不再展开描述。
s104:按照拆分前a2l文件中的变量顺序,根据各字典中的剩余变量名以及剩余变量名对应的变量值,重新生成新的a2l文件。
该步骤中,将待删除变量列表中的全部待删除变量的变量名和变量值从各字典中删除后,按照拆分前a2l文件中的变量顺序,将各字典中的剩余变量名以及剩余变量名对应的变量值依序写入一个新的文件中,加入a2l文件的文件头和文件结束标志,生成一个新的a2l文件。
本申请的上述实施例中,根据变量的类型将a2l文件拆分为多个部分,文件头部分存入字符串中,其他部分单独存储于字典中,从待删除变量列表中读取待删除变量的变量名,将该变量名和该变量名对应的变量值从各字典中删除,删除后依变量顺序生成新的a2l文件,从而实现a2l文件的自动处理,与手动处理相比,节约了人力物力,且提高了a2l文件的处理效率和准确率。
图2示例性示出了本申请实施例提供的删除字典中待删除变量的变量名和变量值的方法流程图。如图2所示,该流程主要包括以下几步:
s201~s202:判断待删除变量的变量名是否为标定量字典中的键,若是,则删除标定量字典中等于待删除变量的变量名的键以及该键对应的值,否则执行s203。
s203~s204:判断待删除变量的变量名是否为测量量字典中的键,若是,则删除测量量字典中等于待删除变量的变量名的键以及该键对应的值,否则执行s205。
s205~s206:判断待删除变量的变量名是否为轴分字典中的键,若是,则删除轴分字典中等于待删除变量的变量名的键以及该键对应的值,否则执行s207。
s207读取函数字典中的键。
s208~s209:判断读取的键是否等于待删除变量的变量名,若是,则删除函数字典中等于待删除变量的变量名的键以及该键对应的值。
s210:判断函数字典中的键是否遍历完成,若未完成,返回s207,否则结束。
需要说明的是,图2中的步骤并非严格的执行顺序,比如s203~s204可先于s201~s202,s201~s202、s203~s204还可并行执行。
本申请的上述实施例中,对a2l文件中的多个拆分部分中对应的各字典中的变量分别进行处理,删除待删除变量的变量名和变量值,提高了文件处理速度。
图3示例性示出了本申请实施例提供的一种a2l文件处理方法的完整流程图。如图3所示,该流程主要包括以下几步:
s301:根据变量的类型,将a2l文件拆分为文件头、标定量信息、测量量信息、轴分信息、记录布局信息、函数信息、振动信息、模式信息、单位信息多个部分。
s302:将文件头部分存入字符串中,将多个非文件头部分的变量存入各字典中。
其中,一个字典中存在至少一个变量,不同类型的变量存在于不同字典中。字典用于存储按a2l文件中的变量类型拆分a2l文件后的部分变量的变量名和变量值,字典中的键为待删除变量的变量名,值为待删除变量的变量值。
s303:从待删除变量列表中读取待删除变量的变量名。
s304:针对部分字典中的每一字典,判断读取的变量名是否等于字典中的键,若是,执行s305,否则执行s306。
s305:从字典中删除待删除变量的变量名以及变量名对应的变量值。
其中,s304和s305的详细过程参见图2,在此不再重复。
s306:判断待删除变量列表中的变量名是否遍历完成,若是则执行s307,否则返回s303。
s307:按照拆分前a2l文件中的变量顺序,根据各字典中的剩余变量名以及剩余变量名对应的变量值,重新生成新的a2l文件。
需要说明的是,s301~s307步骤的描述具体可参见上述实施例,在此不再重复。
基于相同的技术构思,本申请实施例还提供了一种a2l文件处理装置,可实现前述实施例中a2l文件处理方法。
参见图4,该装置包括读取模块401、删除模块402、文件生成模块403:
读取模块,用于读取待删除变量的变量名;
删除模块,用于若变量名为a2l文件对应的部分字典中的键,则从各字典中删除变量名以及变量名对应的变量值,字典用于存储按a2l文件中的变量类型拆分a2l文件后的部分变量的变量名和变量值,字典中的键为待删除变量的变量名,值为待删除变量的变量值;
文件生成模块,用于按照拆分前a2l文件中的变量顺序,根据各字典中的剩余变量名以及剩余变量名对应的变量值,重新生成新的a2l文件。
可选的,装置还包括文件拆分模块404,用于:
根据变量的类型,将a2l文件拆分为文件头部分和多个非文件头部分;
将文件头部分存入字符串中,将多个非文件头部分的变量存入各字典中,其中一个字典中存在至少一个变量,不同类型的变量存在于不同字典中。
可选的,非文件头部分包括:标定量信息、测量量信息、轴分信息、记录布局信息、函数信息、振动信息、模式信息、单位信息。
可选的,删除模块具体用于:
针对部分字典的每一字典,若字典的键为待删除变量的变量名,则删除变量名以及变量名对应的变量值。
可选的,待删除变量属于函数信息,删除模块具体用于:
遍历字典中的键,若字典的键为待删除变量的变量名,则从字典中删除变量名以及变量名对应的变量值。
在此需要说明的是,本申请实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
基于相同的技术构思,本申请实施例还提供了一种a2l文件处理装置,可实现前述实施例中a2l文件处理方法。
参见图5,该装置包括存储器501、处理器502:
存储器501,用于存储程序指令;
处理器502,用于调用存储器501中存储的程序指令以实现本申请实施例上述a2l文件处理方法。
具体实施方式和技术效果,再次不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行本申请实施例提供的a2l文件处理方法。具体实施方式和技术效果,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
1.一种a2l文件处理方法,其特征在于,包括:
读取待删除变量的变量名;
若所述变量名为a2l文件对应的部分字典中的键,则从各字典中删除所述变量名以及所述变量名对应的变量值,所述字典用于存储按所述a2l文件中的变量类型拆分所述a2l文件后的部分变量的变量名和变量值,所述字典中的键为待删除变量的变量名,值为待删除变量的变量值;
按照拆分前所述a2l文件中的变量顺序,根据各字典中的剩余变量名以及剩余变量名对应的变量值,重新生成新的a2l文件。
2.如权利要求1所述的方法,其特征在于,通过以下方式生成字典:
根据变量的类型,将所述a2l文件拆分为文件头部分和多个非文件头部分;
将所述文件头部分存入字符串中,将多个非文件头部分的变量存入各字典中,其中一个字典中存在至少一个变量,不同类型的变量存在于不同字典中。
3.如权利要求2所述的方法,其特征在于,所述非文件头部分包括:标定量信息、测量量信息、轴分信息、记录布局信息、函数信息、振动信息、模式信息、单位信息。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述从各字典中删除所述变量名以及所述变量名对应的变量值,包括:
针对部分字典的每一字典,若所述字典的键为待删除变量的变量名,则删除所述变量名以及所述变量名对应的变量值。
5.如权利要求4所述的方法,其特征在于,所述待删除变量属于函数信息;
通过以下方式删除用于存储所述函数信息中变量的字典中的变量名和变量值:
遍历所述字典中的键,若所述字典的键为所述待删除变量的变量名,则从所述字典中删除所述变量名以及所述变量名对应的变量值。
6.一种a2l文件处理装置,其特征在于,包括:
读取模块,用于读取待删除变量的变量名;
删除模块,用于若所述变量名为a2l文件对应的部分字典中的键,则从各字典中删除所述变量名以及所述变量名对应的变量值,所述字典用于存储按所述a2l文件中的变量类型拆分所述a2l文件后的部分变量的变量名和变量值,所述字典中的键为待删除变量的变量名,值为待删除变量的变量值;
文件生成模块,用于按照拆分前所述a2l文件中的变量顺序,根据各字典中的剩余变量名以及剩余变量名对应的变量值,重新生成新的a2l文件。
7.如权利要求6所述的装置,其特征在于,所述装置还包括文件拆分模块,用于:
根据变量的类型,将所述a2l文件拆分为文件头部分和多个非文件头部分;
将所述文件头部分存入字符串中,将多个非文件头部分的变量存入各字典中,其中一个字典中存在至少一个变量,不同类型的变量存在于不同字典中。
8.如权利要求6-7中任一项所述的装置,其特征在于,所述删除模块具体用于:
针对部分字典的每一字典,若所述字典的键为待删除变量的变量名,则删除所述变量名以及所述变量名对应的变量值。
9.一种a2l文件处理装置,其特征在于,包括存储器和处理器:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令以执行如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如权利要求1-5中任一项所述的方法。
技术总结