报文数据的解析处理方法和装置与流程

文档序号:28860440发布日期:2022-02-12 00:23阅读:361来源:国知局
报文数据的解析处理方法和装置与流程

1.本技术涉及汽车电子技术领域,尤其涉及一种报文数据的解析处理方法和装置。


背景技术:

2.canoe是德国vetor公司推出的一款用于总线开发的设备,全称为can open environment,最初主要是用于can(controller area network,控制器局域网络)总线的开发、仿真、测试和分析,后来随着总线技术的发展,canoe不仅限于can类型的总线开发,还包含lin(local interconnect network,局域互联网络)、flexray(车载网络标准)、most(常用车载网络系统)和以太网开发。
3.在车载网络和ecu(electronic control unit,电子控制单元)开发、测试和分析方面,canoe因其强大的功能几乎长期占据着垄断地位。在总线网络开发方面,canoe可参与需求分析到系统实现的整个过程,对于数据报文(如can报文)的blf文件一般同样使用canoe并具体使用canoe的离线仿真功能进行数据读取及解析回放等处理。
4.然而,对于数据报文的blf(binary logging format,二进制格式)文件,一般需要使用带有license(软件许可证)的canoe进行读取及解析、显示,其成本高且工程配置复杂,当解析数据较大时,canoe解析数据的速度会明显下降,而在数据显示方面,多个blf文件无法进行数据对比,如电流等特征性数据无法对比,均需要导出数据进行二次处理、显示,因此带来许多不便。


技术实现要素:

5.有鉴于此,本技术提供一种报文数据的解析处理方法和装置,至少用于加快报文数据的数据解析过程,提高处理数据的灵活性。
6.具体技术方案如下:
7.一种报文数据的解析处理方法,包括:
8.在预定的图形化开发平台获取报文数据的数据文件;
9.在所述图形化开发平台识别所述数据文件中的压缩格式数据及非压缩格式数据,其中,所述报文数据携带在所述压缩格式数据中,所述非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息;
10.在所述图形化开发平台利用基于预定编程语言封装的解析处理文件对所述压缩格式数据进行解析处理,得到解析后的报文数据;
11.在所述图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,对所述目标数据中的至少部分数据进行可视化显示处理。
12.可选的,所述在预定的图形化开发平台获取报文数据的数据文件,包括:
13.在所述图形化开发平台通过所述图形化开发平台的文件输入输出接口,以二进制流方式读取报文数据的二进制数据文件。
14.可选的,所述在所述图形化开发平台识别所述数据文件中的压缩格式数据及非压
缩格式数据,包括:
15.将读取的所述二进制数据文件的二进制数据转化为字符数据;
16.根据转化后所得的字符数据形式的所述数据文件中数据块的识别码,确定压缩格式的数据块的数据格式,以识别出压缩格式的数据块和非压缩格式的数据信息;
17.其中,所述压缩格式的数据块中携带所述报文数据。
18.可选的,所述在所述图形化开发平台利用基于预定编程语言封装的解析处理文件对所述压缩格式数据进行解析处理,包括:
19.在所述图形化开发平台调用具有解析处理功能的包含结构体的动态链接库文件,对所述压缩格式数据进行解析处理;
20.其中,所述动态链接库文件为通过利用所述预定编程语言对预定的压缩/解压算法库进行封装所构造的文件,在通过封装处理构造所述动态链接库文件时,保留所述压缩/解压算法库中的第一接口参数作为所述压缩/解压算法库中函数接口的传递参数,将所述压缩/解压算法库中的第二接口参数转化为结构体类型的全局变量。
21.可选的,所述动态链接库文件包括:初始化函数、解压函数和内存释放函数;
22.所述在所述图形化开发平台调用具有解析处理功能的包含结构体的动态链接库文件,对所述压缩格式数据进行解析处理,包括:
23.在所述图形化开发平台调用所述初始化函数初始化所述动态链接库文件包含的各函数中结构体类型的全局变量;
24.在所述图形化开发平台调用所述解压函数,所述解压函数基于初始化后的全局变量及传递的接口参数信息对压缩格式的数据块进行解压,得到解析后的报文数据,并将解压后的数据存放至对应的缓冲数组;其中,所述接口参数信息包括压缩格式的数据块的数组、大小、解压数据的缓冲数组、大小、状态;
25.完成解压后,在所述图形化开发平台调用所述内存释放函数释放内存。
26.可选的,所述在所述图形化开发平台对对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,对所述目标数据中的至少部分数据进行可视化显示处理,包括:
27.对解析后的报文数据和所述非压缩格式数据进行筛选、分类处理,得到包括不同类别数据的目标数据;
28.在所述图形化开发平台按所述目标数据中不同类别数据的不同可视化颜色显示要求分别对不同类别数据进行对应的显示处理。
29.可选的,在得到解析后的报文数据之后,所述方法还包括:
30.对解析后的报文数据进行校验处理。
31.可选的,所述图形化开发平台为labview平台,所述预定编程语言为c语言或c++语言。
32.可选的,将所述图形化开发平台和基于预定编程语言封装的所述解析处理文件的处理过程封装为视觉识别系统文件,通过调用所述视觉识别系统文件对一个或多个报文数据的数据文件进行解析及数据可视化显示处理。
33.一种报文数据的解析处理装置,包括:
34.获取模块,用于在预定的图形化开发平台获取报文数据的数据文件;
35.识别模块,用于在所述图形化开发平台识别所述数据文件中的压缩格式数据及非压缩格式数据,其中,所述报文数据携带在所述压缩格式数据中,所述非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息;
36.解析模块,用于在所述图形化开发平台利用基于预定编程语言封装的解析处理文件对所述压缩格式数据进行解析处理,得到解析后的报文数据;
37.显示处理模块,用于在所述图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,对所述目标数据中的至少部分数据进行可视化显示处理。
38.从上述技术方案可以看出,本技术公开的报文数据的解析处理方法和装置,在预定的图形化开发平台获取报文数据的数据文件,并识别该数据文件中的压缩格式及非压缩格式数据,其中报文数据携带在压缩格式数据中,非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息;之后,在图形化开发平台利用基于预定编程语言封装的解析处理文件对压缩格式数据进行解析,得到解析后的报文数据,最终在图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,并对目标数据中的至少部分数据进行可视化显示处理,从而,本技术结合了图形化开发平台的快速、丰富的图形化界面处理功能及预定编程语言强大的数据处理能力(用于数据解析),可加快报文数据的数据解析过程及图形界面处理过程,提升了报文数据的数据解析与可视化显示效率,并丰富了图形界面处理功能。
附图说明
39.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1为本技术公开的报文数据的解析处理方法的流程图;
41.图2为本技术公开的解析后的各类别数据的一可视化界面示例;
42.图3为本技术公开的vi文件接受输入并执行处理时的一信息显示界面;
43.图4为本技术公开的报文数据的解析处理装置的组成结构图。
具体实施方式
44.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
45.本技术公开一种报文数据的解析处理方法和装置,主要通过结合图形化开发平台的快速、丰富的图形化界面处理功能及预定编程语言强大的数据处理能力,来至少加快报文数据的数据解析过程,提高处理数据的灵活性。
46.参见图1提供的报文数据的解析处理方法流程图,本技术实施例公开的报文数据的解析处理方法,包括如下处理步骤:
47.步骤101、在预定的图形化开发平台获取报文数据的数据文件。
48.其中,预定的图形化开发平台可以是但不限于labview平台,报文数据可以是但不限于can报文数据,下文所述的预定编程语言可以是但不限于c语言或c++语言,本技术实施例将主要以图形化开发平台、报文数据、预定编程语言分别为labview、can报文、c语言为例进行方案说明。
49.本步骤101中,具体可在图形化开发平台通过平台自身的文件输入输出接口以二进制流方式读取报文数据的二进制数据文件。
50.以labview、can报文为例,可使用labview的文件io(input/output,输入/输出)接口以二进制流读取can报文的blf文件数据。
51.步骤102、在上述图形化开发平台识别所读取数据文件中的压缩格式数据及非压缩格式数据;其中,所述报文数据携带在压缩格式数据中,所述非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息。
52.具体的,canoe存储的can报文的blf文件包含压缩格式的数据块及非压缩格式的数据信息两种格式。报文数据存储在压缩格式的数据块中,非压缩格式的数据信息则包括数据文件及压缩格式的数据块的描述信息,如包括blf文件的指针、大小及各压缩数据块的指针、大小等。
53.图形化开发平台如labview在基于其文件io接口读取can报文的blf文件后,首先将读取的二进制流数据转化为字符数据,之后再基于转化结果进行压缩格式数据及非压缩格式数据的识别。
54.其中,压缩格式的数据块具有识别码,非压缩格式的数据信息则不具备识别码,本步骤相应根据转化后所得的字符数据形式的数据文件中数据块对应的识别码识别压缩格式的数据块,而不具备识别码的数据则被识别为非压缩格式数据。
55.对于非压缩格式数据可直接使用,如直接对blf文件中的非压缩格式数据(blf文件及报文的压缩数据块的相关描述信息)进行可视化显示处理等。
56.对于压缩格式数据则需进一步执行解析处理。
57.步骤103、在上述图形化开发平台利用基于预定编程语言封装的解析处理文件对所述压缩格式数据进行解析处理,得到解析后的报文数据。
58.为了提升报文数据的解析效率,本技术将预定图形化开发平台与基于预定编程语言封装的解析处理文件进行结合,以labview、c/c++语言为例,具体将labview与基于c/c++语言封装的具有解析处理功能且包含结构体的动态链接库文件(dll文件)进行了结合,以在labview借助c/c++等编程语言的强大数据处理能力高效的解析数据。
59.其中,在进行结合时,labview构造复杂的c(c++)语言结构体较为困难,例如labview内没有指针数据类型导致两者(labview与c/c++结构体)之间数据块传递非常慢且容易造成指针溢出。基于此,本技术实施例在构造具有解析处理功能的包含结构体的动态链接库文件的函数(即dll函数)时,提出以下构造思路:函数接口进行参数传递时仅保留主要参数作为输入输出,不重要参数使用结构体类型的全局变量并通过函数初始化对这些不重要参数完成一次赋值。
60.基于上述思路,本技术实施例中,所采用的动态链接库文件,具体为通过利用上述预定编程语言如c语言对预定的压缩/解压算法库进行封装所构造的文件,且在通过封装处
理构造动态链接库文件的dll函数时,保留压缩/解压算法库中的第一接口参数作为该压缩/解压算法库中函数接口的传递参数,并将该压缩/解压算法库中的第二接口参数转化为结构体类型的全局变量,其中,第一接口参数为压缩/解压算法库中函数接口的预设的重要接口参数,可以包括但不限于待解析的数据块及大小,解析后的数据缓冲块及大小等参数,第二接口参数相应为压缩/解压算法库中函数接口的预设的非重要接口参数,可以包括但不限于预留参数,函数指针,地址等参数。
61.在此基础上,将上述预定的压缩/解压算法库封装生成dll文件。例如,按上述要求将压缩/解压算法zlib库封装生成包含结构体且具有解析处理功能的zlibdll.dll文件等。
62.封装生成的动态链接库文件包括:初始化函数、解压函数和内存释放函数,例如,封装生成的zlibdll.dll文件主要包含inflateinitdll,inflatedll,inflateenddll等函数,其中,inflateinitdll作用是初始化结构体数据,inflatedll作用是对带有压缩数据的结构体进行解压,inflateenddll作用是释放内存等。
63.从而,本步骤103,相应可通过在图形化开发平台调用具有解析处理功能的包含结构体的动态链接库文件,来对所获取数据文件中的压缩格式数据进行解析处理,该过程可进一步实现为:
64.1)在图形化开发平台调用动态链接库文件中的初始化函数初始化动态链接库文件包含的各函数中结构体类型的全局变量;
65.具体可使用labview调用zlibdll.dll中的函数inflateinitdll,该函数为无参数输入函数,通过调用并执行该函数直接初始化zlibdll.dll中各函数的结构体类型的全局变量。
66.2)在图形化开发平台调用动态链接库文件中的解压函数,解压函数基于初始化后的全局变量及传递的接口参数信息对压缩格式的数据块进行解压,并将解压结果作为解析后的报文数据;
67.在通过执行inflateinitdll函数完成初始化工作后,labview继续调用并执行inflatedll函数,该函数inflatedll接收传递的接口参数信息(即第一接口参数的信息),示例性的,接收的接口参数信息具体包括待解压的压缩数据(如can报文的压缩数据块)数组、大小、解压数据的缓冲数组、大小、状态(inflatedll在解压过程中根据解压进度对该状态参数进行赋值,如赋值为未完成解压、完成解压等状态值)五个参数。之后,inflatedll函数基于初始化后的全局变量及接收的接口参数信息,对对应的解压数据执行解压处理,并将解压后的数据如can报文数据存放至对应的缓冲数组,即inflatedll函数正常执行后接口参数信息所指示的缓冲区域内的数据就是解压后的数据。
68.3)完成解压后,在图形化开发平台调用动态链接库文件中的内存释放函数释放内存。
69.之后,在完成解压后,labview调用inflateenddll函数释放内存。
70.可选的,在完成解压后,调用inflateenddll函数释放内存之前,还可以进行解析结果的校验处理,具体的,inflatedll返回的状态值中包含对数据块的完整性的描述信息,相应可根据inflatedll返回的状态值中对数据块的完整性的描述信息,对解析后的报文数据进行校验,如果该完整性的描述信息表征数据块完整,则解析后的报文数据通过校验,否则,则未通过。
71.步骤104、在图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,对目标数据中的至少部分数据进行可视化显示处理。
72.可选的,可根据数据类型id(identity document,身份标识号),对由解析后的报文数据和非压缩格式数据构成的目标数据进行筛选、分类,得到包括不同类别数据的目标数据,并在图形化开发平台按目标数据中不同类别数据的不同可视化颜色显示要求分别对不同类别数据进行对应的显示处理。
73.除此之外,还可以对解压后的数据块识别码进行按需显示。
74.参见图2的示例,图2中,“41”、“56”分别表示不同的数据类型id,其中,“41”为文本描述报文的类型id,“56”为通信数据报文的类型id,其分别对应的报文数据如图2所示,图2中的“4c 4f 42 4a”则为解压数据后的数据块识别码,该示例中,分别对数据类型id、不同数据类型的报文数据及解压数据后的数据块识别码按所需颜色(图2中以不同灰度表征不同颜色)进行了区别化的可视化显示。
75.从上述技术方案可以看出,本技术实施例的方法,在预定的图形化开发平台获取报文数据的数据文件,并识别该数据文件中的压缩格式及非压缩格式数据,其中报文数据携带在压缩格式数据中,非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息;之后,在图形化开发平台利用基于预定编程语言封装的解析处理文件对压缩格式数据进行解析,得到解析后的报文数据,最终在图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,并对目标数据中的至少部分数据进行可视化显示处理,从而,本技术结合了图形化开发平台的快速、丰富的图形化界面处理功能及预定编程语言强大的数据处理能力(用于数据解析),可加快报文数据的数据解析过程及图形界面处理过程,提升了报文数据的数据解析与可视化显示效率,并丰富了图形界面处理功能。
76.在一实施例中,可将本技术结合采用的图形化开发平台和基于预定编程语言封装的解析处理文件的处理过程封装为视觉识别系统(visual identity,vi)文件,如将labview和基于c语言封装的包含结构体的dll文件的处理过程封装为vi文件。
77.该vi文件的输入为报文数据的blf文件的文件路径,输出为解压并分类后的类别数据及对各类别数据的可视化显示信息。参见图3的示例,为vi文件接受输入并执行处理时的一信息显示界面,其中,在向该vi文件输入一blf文件的文件路径后,该界面呈现一输入区域和输出区域,并分别在不同区域显示不同信息,其中,输入区域包括对该blf文件解析/解压前的blf文件大小及文件数据,如图3中的“输入数据大小”及“输入数据”,由于解析前blf文件数据不可读,相应在“输入数据”区域呈现为乱码信息;输出区域包括对该blf文件解析/解压后的blf文件大小及文件数据,如图3中的“输出数据大小”及“输出数据”。
78.在此基础上,可通过调用vi文件对报文数据(如,can报文)的单个blf文件或多个blf文件进行解析,并基于解析结果通过labview根据实际需求快速进行数据的图形可视化显示,如多个blf文件解析结果的图形化对比显示(电压、电流等特征性数据的图形化对比显示)等。
79.基于本实施例方案,可通过结合图形化开发平台的快速、丰富的图形化界面处理功能及预定编程语言强大的数据处理能力,加快报文数据的数据解析过程及图形化界面处理过程,提升数据解析与可视化显示效率,并丰富图形界面处理功能,无需导出数据进行二
次处理,即可按图形化方式完成多个blf文件的数据对比,如电流、电压等特征性数据的图形化对比等,且基于labview支持根据实际需求快速增添其他所需的数据处理、显示功能。
80.对应于上述的方法,本技术实施例还公开一种报文数据的解析处理装置,如图4所示,该装置包括:
81.获取模块401,用于在预定的图形化开发平台获取报文数据的数据文件;
82.识别模块402,用于在上述图形化开发平台识别所获取数据文件中的压缩格式数据及非压缩格式数据,其中,报文数据携带在压缩格式数据中,非压缩格式的数据信息包括数据文件及压缩格式的数据块的描述信息;
83.解析模块403,用于在上述图形化开发平台利用基于预定编程语言封装的解析处理文件对压缩格式数据进行解析处理,得到解析后的报文数据;
84.显示处理模块404,用于在上述图形化开发平台对解析后的报文数据和所述非压缩格式数据进行筛选、分类得到目标数据,对所述目标数据中的至少部分数据进行可视化显示处理。
85.在一实施方式中,获取模块401,具体用于:在上述图形化开发平台通过该平台的文件输入输出接口,以二进制流方式读取报文数据的二进制数据文件。
86.在一实施方式中,识别模块402,具体用于:将读取的二进制数据文件的二进制数据转化为字符数据;根据转化后所得的字符数据形式的数据文件中数据块的识别码确定压缩格式的数据块的数据格式,以识别出压缩格式的数据块和非压缩格式的数据信息;
87.其中,该压缩格式的数据块中携带上述报文数据。
88.在一实施方式中,解析模块403,具体用于:
89.在上述图形化开发平台调用具有解析处理功能的包含结构体的动态链接库文件,对压缩格式数据进行解析处理;
90.其中,上述动态链接库文件为通过利用预定编程语言对预定的压缩/解压算法库进行封装所构造的文件,在通过封装处理构造动态链接库文件时,保留压缩/解压算法库中的第一接口参数作为压缩/解压算法库中函数接口的传递参数,将压缩/解压算法库中的第二接口参数转化为结构体类型的全局变量。
91.在一实施方式中,上述动态链接库文件包括:初始化函数、解压函数和内存释放函数;
92.解析模块403通过在上述图形化开发平台调用具有解析处理功能的包含结构体的动态链接库文件,对压缩格式数据进行解析处理时,具体用于:
93.在上述图形化开发平台调用上述初始化函数初始化动态链接库文件包含的各函数中结构体类型的全局变量;
94.在上述图形化开发平台调用上述解压函数,该解压函数基于初始化后的全局变量及传递的接口参数信息对压缩格式的数据块进行解压,得到解析后的报文数据,并将解压后的数据存放至对应的缓冲数组;其中,所述接口参数信息包括压缩格式的数据块的数组、大小、解压数据的缓冲数组、大小、状态;
95.完成解压后,在上述图形化开发平台调用上述内存释放函数释放内存。
96.在一实施方式中,显示处理模块404,具体用于:对解析后的报文数据和所述非压缩格式数据进行筛选、分类处理,得到包括不同类别数据的目标数据;在图形化开发平台按
所述目标数据中不同类别数据的不同可视化颜色显示要求分别对不同类别数据进行对应的显示处理。
97.在一实施方式中,上述装置还包括:
98.校验模块,用于得到解析后的报文数据之后,对解析后的报文数据进行校验处理。
99.在一实施方式中,上述图形化开发平台为labview平台,上述预定编程语言为c语言或c++语言。
100.在一实施方式中,将上述图形化开发平台和基于预定编程语言封装的解析处理文件的处理过程封装为视觉识别系统文件,通过调用封装的视觉识别系统文件对一个或多个报文数据的数据文件进行解析及数据可视化显示处理。
101.对于本技术实施例公开的报文数据的解析处理装置而言,由于其与上文方法实施例公开的报文数据的解析处理方法相对应,所以描述的比较简单,相关相似之处请参见上文相应方法实施例的说明即可,此处不再详述。
102.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
103.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
104.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
105.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1