本发明涉及文件处理技术领域,尤其涉及一种文件比对方法和装置。
背景技术:
在现代整车网络系统中,各节点通过CAN网络传输信号,通过CAN报文协议文件定义ECU、TCU、EPS等控制器收发信号,例如,ECU发送油门、转速以及扭矩信号,TCU发送档位和降扭请求等信号。CAN报文协议文件主要定义字节长度、类型、精度、偏移以及信号名称等。在整车控制策略开发过程中,当CAN报文协议文件发生变更的时候,会影响整车控制策略,因此在同一个测试周期内经常会出现测试输入变更的情况。相关技术中,通过商业化软件对比工具列举出其中一个CAN报文协议文件相对于另一个CAN报文协议文件的区别,由测试人员对比两个CAN报文协议文件的修改点。
这种方式下,商业化软件的采购费用昂贵,且工作量较大,定位变更点的效率不高。
技术实现要素:
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种文件比对方法,能够快速准确地定位待对比文件中的变更点,有效提升比对效率。
本发明的另一个目的在于提出一种文件比对装置。
为达到上述目的,本发明第一方面实施例提出的方法,所述文件中存储控制器局域网络CAN报文,包括:提取待比对的第一文件和第二文件中的CAN报文信息,其中,所述CAN报文信息包括赋值信息和注释信息;生成用于标记所述第一文件中CAN报文信息的第一数组,以及用于标记所述第二文件中CAN报文信息的第二数组,其中,所述第一数组中包括标记所述第一文件中不同CAN报文信息的第一子数组,所述第二数组中包括标记所述第二文件中不同CAN报文信息的第二子数组;根据所述第一数组中标记不同CAN报文信息的第一子数组,和所述第二数组中标记不同CAN报文信息的第二子数组对所述第一文件和所述第二文件进行比对。
本发明第一方面实施例提出的文件比对方法,通过生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对,能够快速准确地定位待对比文件中的变更点,有效提升比对效率。
为达到上述目的,本发明第二方面实施例提出的文件比对装置,所述文件中存储控制器局域网络CAN报文,包括:提取模块,用于提取待比对的第一文件和第二文件中的CAN报文信息,其中,所述CAN报文信息包括赋值信息和注释信息;生成模块,用于生成用于标记所述第一文件中CAN报文信息的第一数组,以及用于标记所述第二文件中CAN报文信息的第二数组,其中,所述第一数组中包括标记所述第一文件中不同CAN报文信息的第一子数组,所述第二数组中包括标记所述第二文件中不同CAN报文信息的第二子数组;对比模块,用于根据所述第一数组中标记不同CAN报文信息的第一子数组,和所述第二数组中标记不同CAN报文信息的第二子数组对所述第一文件和所述第二文件进行比对。
本发明第二方面实施例提出的文件比对装置,通过生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对,能够快速准确地定位待对比文件中的变更点,有效提升比对效率。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的文件比对方法的流程示意图;
图2是本发明另一实施例提出的文件比对方法的流程示意图;
图3是本发明一实施例提出的文件比对装置的结构示意图;
图4是本发明另一实施例提出的文件比对装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的文件比对方法的流程示意图。以该文件比对方法被配置为文件比对装置中来举例说明。该文件比对方法可以应用在汽车控制策略开发与测试的过程中。
参见图1,该文件比对方法可以包括:
S11:提取待比对的第一文件和第二文件中的CAN报文信息,其中,CAN报文信息包括赋值信息和注释信息。
在本发明的实施例中,CAN报文协议文件中例如包括的字段为:报文ID、字节长度,以及报文ID对应的数值范围等,其中,注释信息例如为报文ID的中文含义,赋值信息例如为:0标记关,1标记开。
可选地,提取待比对的第一文件和第二文件中的CAN报文信息,其中,CAN报文信息包括赋值信息和注释信息,以根据提取的第一文件的赋值信息和注释信息生成用于标记第一文件中CAN报文信息的第一数组,根据提取的第二文件的赋值信息和注释信息生成用于标记第二文件中CAN报文信息的第二数组。
进一步地,可以分别提取待对比的第一文件中CAN报文信息中的赋值信息和注释信息,以及,提取第二文件中CAN报文信息中的赋值信息和注释信息,通过分别提取待比对的第一文件和第二文件中的赋值信息和注释信息,可以将第一文件中的赋值信息与第二文件中的赋值信息进行比对,且将第一文件中的注释信息和第二文件中的注释信息进行比对,实现后续有针对性的层次化比对,简化比对过程中的检索步骤,不需要由测试人员从两个CAN报文协议文件中全部报文信息中检索比对,有效提升比对效率。
S12:生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组。
其中,第一数组中包括标记第一文件中不同CAN报文信息的第一子数组,第二数组中包括标记第二文件中不同CAN报文信息的第二子数组。
可选地,用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,以根据第一数组中标记第一文件不同CAN报文信息的第一子数组,和第二数组中标记第二文件中不同CAN报文信息的第二子数组对第一文件和第二文件进行比对。
S13:根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对。
在本发明的实施例中,第一子数组包括第一赋值子数组和第一注释子数组,其中,第一赋值子数组用于标记第一文件中CAN报文的赋值信息,第一注释子数组用于标记第一文件中CAN报文的注释信息,例如,根据提取的第一文件的注释信息生成第一注释子数组note_data1,根据提取的第一文件的赋值信息生成第一赋值子数组assignment_data1。第二子数组包括第二赋值子数组和第二注释子数组,其中,第二赋值子数组用于标记第二文件中CAN报文的赋值信息,第二注释子数组用于标记第二文件中CAN报文的注释信息,例如,根据提取的第二文件的注释信息生成第二注释子数组note_data2,根据提取的第二文件的赋值信息生成第二赋值子数组assignment_data2。
可选地,根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对,例如,将第一注释子数组note_data1中的注释信息与第二注释子数组note_data2中的注释信息进行对比,将第一赋值子数组assignment_data1中的赋值信息与第二赋值子数组assignment_data2中的赋值信息进行对比,得到对比结果。
一些实施例中,参见图2,步骤S13具体包括:
S21:将第一赋值子数组中的赋值信息,和第二赋值子数组中的赋值信息进行比对,得到第一比对结果。
在本发明的实施例中,可以提取第一赋值子数组和第二赋值子数组中满足预设条件的赋值信息作为第一比对结果。
其中,预设条件为:不同时在不同的数组中存在的CAN报文信息。
例如,可以以第二赋值子数组assignment_data2中的赋值信息为比对基准,逐行逐列地对比第一赋值子数组assignment_data1中的赋值信息和第二赋值子数组assignment_data2中的赋值信息,如果assignment_data1中存在赋值信息A,而assignment_data2中不存在赋值信息A,则可以将赋值信息A存在于第一赋值子数组assignment_data1中,且不存在与第二赋值子数组assignment_data2中的结果作为第一比对结果,该第一比对结果标识第一文件相比于第二文件的区别,可以理解的是,由于第一文件和第二文件中的CAN报文协议信息以16进制或者二进制的字符存储于计算机中,因此,通过以第二赋值子数组assignment_data2中的赋值信息为比对基准,可以得到赋值信息A存在于第一赋值子数组assignment_data1中,且不存在于第二赋值子数组assignment_data2中的结果,对应的,以第一赋值子数组assignment_data1为比对基准,逐行逐列地对比第二赋值子数组assignment_data2中的赋值信息和第一赋值子数组assignment_data1中的赋值信息,可以得到存在于第二赋值子数组assignment_data2中,且不存在于第一赋值子数组assignment_data1中的结果作为第一比对结果,该第一比对结果标识第二文件相比于第一文件的区别,通过对比出第一文件与第二文件的区别,且对比出第二文件与第一文件的区别,比对结果覆盖面完全,直观性较强,便于用户查看。
作为一种示例,第一赋值子数组assignment_data1中的赋值信息为0,1,2,而第二赋值子数组assignment_data2中的赋值信息为1,2,3,将第一赋值子数组assignment_data1和第二赋值子数组assignment_data2做比对,得到的第一比对结果为:赋值信息0存在于第一赋值子数组assignment_data1中,而不存在于第二赋值子数组assignment_data2中,赋值信息3存在于第二赋值子数组assignment_data2中,而不存在于第一赋值子数组assignment_data1中。
S22:将第一注释子数组中的注释信息,和第二注释子数组中的注释信息进行比对,得到第二比对结果。
在本发明的实施例中,可以提取第一注释子数组和第二注释子数组中满足预设条件的注释信息作为第二比对结果。
其中,预设条件为:不同时在不同的数组中存在的CAN报文信息。
例如,可以以第二注释子数组note_data2中的注释信息为比对基准,逐行逐列地对比第一注释子数组note_data1中的注释信息和第二注释子数组note_data2中的注释信息,如果note_data1中存在注释信息B,而note_data2中不存在注释信息B,则可以将注释信息B存在于第一注释子数组note_data1中,且不存在与第二注释子数组note_data2中的结果作为第二对比结果,该第二对比结果标识第一文件相比于第二文件的区别,可以理解的是,由于第一文件和第二文件中的CAN报文协议信息以16进制或者二进制的字符存储于计算机中,因此,通过以第二注释子数组note_data2中的注释信息为比对基准,可以得到注释信息B存在于第一注释子数组note_data1中,而不存在于第二注释子数组note_data2中的结果,对应的,以第一注释子数组note_data1为比对基准,逐行逐列地对比第二注释子数组note_data2中的注释信息和第一注释子数组note_data1中的注释信息,可以得到存在于第二注释子数组note_data2中,且不存在于第一注释子数组note_data1中的结果作为第二对比结果,该第二比对结果标识第二文件相比于第一文件的区别,通过对比出第一文件与第二文件的区别,且对比出第二文件与第一文件的区别,比对结果覆盖面完全,直观性较强,便于用户查看。
作为一种示例,第一注释子数组note_data1中的注释信息为:报文ID为0x0cf10500,0x0cf10501,0x0cf10502,即报文ID为16进制数0x0cf10500,0cf10501,0x0cf10502,而第二注释子数组note_data2中的注释信息为:报文ID为0x0cf10501,0x0cf10502,0x0cf10503,即报文ID为16进制数0x0cf10501,0cf10502,0x0cf10503,将第一注释子数组note_data1和第二注释子数组note_data2做对比,得到的第二对比结果为:注释信息:报文ID为0x0cf10500存在于第一注释子数组note_data1中,而不存在于第二注释子数组note_data2中,注释信息:报文ID为0x0cf10503存在于第二注释子数组note_data2中,而不存在于第一注释子数组note_data1中。
S23:将第一比对结果和第二比对结果输出到结果文件中,以将结果文件展示给用户。
本发明中的文件比对方法可以基于MATLAB中的m语言实现,也可以基于其它语言,在此不作限制。
可选地,可以采用MATLAB中的m语言将第一比对结果和第二比对结果输出到结果文件中,对此不作限制。
例如,采用MATLAB中的m语言将第一比对结果和第二比对结果写入Excel表格中,直观性较强,便于用户查看,并对Excel表格进行命名,例如为Result,以将结果文件展示给用户。例如,将结果文件Result.xls显示在MATLAB软件的命令窗口中,由于MATLAB使用简单,且无须采购昂贵的商业化软件,能够快速准确地定位变更点,有效提升比对效率。
本实施例中,通过将第一比对结果和第二比对结果输出到结果文件中,以将结果文件展示给用户,能够较为直观地查看结果文件,快速准确地定位待对比文件中的变更点,有效提升比对效率。
本实施例中,通过生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对,能够快速准确地定位待对比文件中的变更点,有效提升比对效率。
图3是本发明一实施例提出的文件比对装置的结构示意图。该文件比对装置300可以通过软件、硬件或者两者的结合实现。
参见图3,该文件比对装置300可以包括:提取模块310、生成模块320,以及对比模块330。其中,
提取模块310,用于提取待比对的第一文件和第二文件中的CAN报文信息,其中,CAN报文信息包括赋值信息和注释信息。
生成模块320,用于生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,其中,第一数组中包括标记第一文件中不同CAN报文信息的第一子数组,第二数组中包括标记第二文件中不同CAN报文信息的第二子数组。
对比模块330,用于根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对。
可选地,第一子数组包括第一赋值子数组和第一注释子数组,第二子数组包括第二赋值子数组和第二注释子数组,其中,第一赋值子数组用于标记第一文件中CAN报文的赋值信息,第一注释子数组用于标记第一文件中CAN报文的注释信息,第二赋值子数组用于标记第二文件中CAN报文的赋值信息,第二注释子数组用于标记第二文件中CAN报文的注释信息。
一些实施例中,参见图4,该文件比对装置300还可以包括:
可选地,比对模块330包括:
第一对比子模块331,用于将第一赋值子数组中的赋值信息,和第二赋值子数组中的赋值信息进行比对,得到第一比对结果。
可选地,第一对比子模块331还用于:提取第一赋值子数组和第二赋值子数组中满足预设条件的赋值信息作为第一比对结果。
其中,预设条件为:不同时在不同的数组中存在的CAN报文信息。
第二对比子模块332,用于将第一注释子数组中的注释信息,和第二注释子数组中的注释信息进行比对,得到第二比对结果。
可选地,第二对比子模块332还用于:提取第一注释子数组和第二注释子数组中满足预设条件的注释信息作为第二比对结果。
其中,预设条件为:不同时在不同的数组中存在的CAN报文信息。
输出子模块333,用于将第一比对结果和第二比对结果输出到结果文件中,以将结果文件展示给用户。
需要说明的是,前述图1-图2实施例中对文件比对方法实施例的解释说明也适用于该文件比对装置,其实现原理类似,此处不再赘述。
本实施例中,通过生成用于标记第一文件中CAN报文信息的第一数组,以及用于标记第二文件中CAN报文信息的第二数组,根据第一数组中标记不同CAN报文信息的第一子数组,和第二数组中标记不同CAN报文信息的第二子数组对第一文件和第二文件进行比对,能够快速准确地定位待对比文件中的变更点,有效提升比对效率。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。