System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术主要涉及城市轨道交通设备的数据采集和数据解析领域,具体涉及一种基于配置模型实现报文数据自动解析的方法及系统。
技术介绍
1、近年来,中国城市轨道交通快速发展,城市轨道交通企业运用互联网、大数据、物联网、云计算、人工智能、故障预测与健康管理等技术,在城市轨道交通智能运维领域进行探索,智能运维逐渐成为行业焦点。数据的采集、解析是智能运维的基础,但由于城市轨道交通涉及车辆、信号、供电、通信、牵引等多个子系统,设备种类及厂家众多,各设备厂家接口协议不统一且协议变更频繁,给数据解析带来了困难。传统数据解析方式是针对每个报文协议,编码实现数据报文的解析,若报文协议发生变更需要修改解析软件,这种解析方式开发工作量较大,效率低下,维护复杂,不具有通用性和灵活性。因此,提出一种配置简单、维护简便、通用的数据报文自动解析方案很有必要。
技术实现思路
1、本专利技术要解决的技术问题就在于:针对现有技术存在的技术问题,本专利技术提供一种配置简单、维护简便、通用、灵活的基于配置模型实现报文数据自动解析的方法及系统,以解决在城轨设备报文协议众多且变更频繁情况下,传统数据解析方式工作量巨大且维护复杂的问题。
2、为解决上述技术问题,本专利技术提出的技术方案为:
3、一种基于配置模型实现报文数据自动解析的方法,包括步骤:
4、s1、根据报文数据的各种报文协议来创建相对应的配置文件;
5、s2、创建协议对象列表,读取配置文件中的配置信息并存储配置信息至协议对
6、s3、读取待解析的报文数据,根据协议对象列表中存储的配置信息确定该报文数据的解析方式,对该报文数据进行解析;
7、s4、报文数据解析完成后,将生成的数据进行输出或存储。
8、作为上述技术方案的进一步改进:
9、步骤s1中,所述配置文件为基于excel模板的配置文件;
10、所述配置文件的列包括解析项、二次解析项、所属二次解析项、起始字节、字节长度、起始位、位长度、解析方式、数据存储方式、数据类型、输出项key映射、输出项value映射、格式化方式、逻辑表达式、是否条件项、条件中的一个或多个;
11、所述配置文件的每一行对应报文协议中的一个项点。
12、步骤s2包括:
13、对于基于excel模板的配置文件中的每一行,创建与该行对应映射的协议对象,且协议对象中的每个成员与该行中的每个单元格一一对应;
14、读取所述配置文件中的每行信息,并写入协议对象列表;
15、对协议对象列表中的数据进行过滤,并按二次解析项名称进行分组。
16、步骤s2还包括:
17、判断报文协议是否含有码位信息,若该报文协议含有码位信息,则创建码位对象列表,读取码位信息中的码位数据并存储至所述码位对象列表中;
18、其中,码位对象列表中的每个码位对象的成员包括码位名称、码位序号、码位分类。
19、步骤s3中,对报文数据的解析包括步骤:
20、将报文数据已解析的长度初始化为0,并将协议对象列表对应的指针初始化为该协议对象列表的头部;
21、对于协议对象列表中的每一个协议对象,判断该协议对象的解析方式,并对报文数据中的一个项点进行提取和解析;每个协议对象解析完成后,将报文数据已解析的长度增加当前协议对象中的字节长度值,并将协议对象列表对应的指针加1;
22、重复执行上述对协议对象的操作步骤,直至判断到协议对象列表对应的指针到达该协议对象列表的尾部,此时报文数据解析完成;
23、其中,解析方式包括字节解码、位解码、格式化解码、二次解码。
24、协议对象的解析方式判断完成后,根据解析方式执行下列操作之一:
25、若判断到解析方式为字节解码,根据该协议对象中的起始字节、字节长度定位到待解析报文数据的具体位置,然后再根据数据存储方式、数据类型、数组步长信息实现报文数据的解析;
26、若判断到解析方式为位解码,根据该协议对象中的起始字节、起始位、位长度、数组步长定位到待解析报文数据的具体位置,实现报文数据的解析;
27、若判断到解析方式为格式化解码,根据该协议对象中的起始字节、字节长度定位到待解析报文数据的具体位置,根据步长对报文数据进行分步解析获取多个解析值后,再将获取的解析值按格式化表达式进行组合成一个格式化后的解析值,实现报文数据的解析;
28、若判断到解析方式为二次解码,则解析步骤如下:
29、根据二次解码起始字节、循环数据偏移量、字节长度截取待解析的变长部分报文数据作为递归调用待解析的报文数据;
30、在协议对象列表中查找所属二次解析项为当前协议对象中的二次解析项的记录,并存储为二次解析项,作为递归调用中报文数据对应的协议对象列表;
31、首次循环偏移量设置为0,每一轮循环结束后偏移量累加上本轮次循环解析的结构长度,循环递归调用的终止条件为循环数据偏移量不小于变长部分数据长度;
32、每一轮循环递归调用实现变长数据中一个结构体数据的解析,直至循环递归调用满足终止条件,实现报文数据的解析。
33、若判断到解析方式为二次解码,且变长部分报文数据的协议格式是映射为n层嵌套的结构体数组形式,则通过执行n次二次解码的递归调用,从结构的第n层开始解析,第n层解析完递归返回上一层解析,逐层返回并完成第一层解析后,完成变长协议映射结构体数组最外层的一个结构体成员的解析,以实现报文数据的解析。
34、步骤s4中,报文数据解析完成后,将报文数据中的所有解析项点及其解析后的提取值按键值对形式组合,并存储到数据库或者中间件。
35、本专利技术还提供一种基于配置模型实现报文数据自动解析的系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行上述基于配置模型实现报文数据自动解析的方法。
36、本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序用于被微处理器编程或配置以执行上述基于配置模型实现报文数据自动解析的方法。
37、与现有技术相比,本专利技术的优点在于:
38、本专利技术将各类格式的报文协议通过抽象、归纳后转换为统一格式的配置文件,通过调整配置信息即可实现不同报文协议格式的数据解析,配置简单、维护简便,具有通用性,提高了开发效率,降低了维护成本;
39、本专利技术支持定长协议、变长协议、多层嵌套且嵌套内部为变长的协议、含有码位信息的各类复杂协议格式的配置及自动解析,可作为通用数据解析平台,支持各应用领域的数据解析业务,具有较强的通用性、灵活性;
40、本专利技术可通过配置方式实现同时支持一种或任意几种报文协议的报文数据解析,可根据报文数据量大小、硬件资源情况实现数据解析的分布式部署应用,提高解析性能。
本文档来自技高网...【技术保护点】
1.一种基于配置模型实现报文数据自动解析的方法,其特征在于,包括步骤:
2.根据权利要求1所述的基于配置模型实现报文数据自动解析的方法,其特征在于:
3.根据权利要求1所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤S2包括:
4.根据权利要求3所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤S2还包括:
5.根据权利要求1~4任意一项所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤S3中,对报文数据的解析包括步骤:
6.根据权利要求5所述的基于配置模型实现报文数据自动解析的方法,其特征在于,协议对象的解析方式判断完成后,根据解析方式执行下列操作之一:
7.根据权利要求6所述的基于配置模型实现报文数据自动解析的方法,其特征在于:
8.根据权利要求1~4任意一项所述的基于配置模型实现报文数据自动解析的方法,其特征在于:
9.一种基于配置模型实现报文数据自动解析的系统,包括相互连接的微处理器和存储器,其特征在于,所述微处理器被编程或配置以执行权利要
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其特征在于,所述计算机程序用于被微处理器编程或配置以执行权利要求1~8中任意一项所述的基于配置模型实现报文数据自动解析的方法。
...【技术特征摘要】
1.一种基于配置模型实现报文数据自动解析的方法,其特征在于,包括步骤:
2.根据权利要求1所述的基于配置模型实现报文数据自动解析的方法,其特征在于:
3.根据权利要求1所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤s2包括:
4.根据权利要求3所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤s2还包括:
5.根据权利要求1~4任意一项所述的基于配置模型实现报文数据自动解析的方法,其特征在于,步骤s3中,对报文数据的解析包括步骤:
6.根据权利要求5所述的基于配置模型实现报文数据自动解析的方法,其特征在于,协议对象的解析方式判断完成后,根据解...
【专利技术属性】
技术研发人员:何见坤,阳亦斌,王业流,彭勤,杨将,邓永祁,曾垂周,邓国知,
申请(专利权)人:湖南中车时代通信信号有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。