System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于数据链信息处理,特别涉及一种基于python的数据链消息报文解析方法及装置。
技术介绍
1、不同计算机系统存在大端模式和小端模式的区别,例如在大端模式数据按高地址到低地址定义为0x12,0x34,0x56,0x78(0x表示十六进制),若小端模式计算机系统不作转换直接读取该数据,会解析为0x56,0x78,0x12,0x34,显然不是需要的结果,对于位域定义的数据则更加复杂,所以需要一种转换方式。
2、对按比特位域定义的数据链报文信息进行解析操作时,传统的做法是采用c语言通过位域移位操作,再进行截断或拼接,最后再乘以分辨率得到解析结果。但是由于c语言进行进制和类型转换时存在长度限制,不能直接进行大数转换,而且不同计算机系统存在大端模式和小端模式的区别,因此c语言在处理跨字节定义的数据报文信息时要进行复杂的特殊处理。由于数据链报文种类多且数据量大,传统采用c语言开发,对开发编程能力要求高,开发环境复杂,开发效率低,易出错。
技术实现思路
1、为了解决上述问题,本申请提供了一种基于python的数据链消息报文解析方法及装置,适用于各种数据链协议的快速分析和解析,该方法及装置利用python计算机语言切片特性和超大数进制转换和类型转换方便没有长度限制特性,实现对数据链报文固定位置提取后直接解析。
2、本申请第一方面提供了一种基于python的数据链消息报文解析方法,主要包括:
3、步骤s1、将报文中读取的数据拼接成长字符串;
4、
5、步骤s3、将所述二进制数转换为字符型数据;
6、步骤s4、根据比特定义从所述字符型数据的指定位置处读取数据;
7、步骤s5、将读取的字符型数据转换成二进制码;
8、步骤s6、确定转换成二进制码的数据所对应的消息。
9、优选的是,步骤s1进一步包括:
10、步骤s11、将报文中读取的每一个位域数据通过str函数转换成字符型数据;
11、步骤s12、将各位域的字符型数据按原报文的数据包顺序拼接成一个长字符串。
12、优选的是,步骤s2进一步包括:
13、步骤s21、将所述长字符串通过int函数转换为一个长十六进制数;
14、步骤s22、将所述长十六进制数通过bin函数转换为二进制数。
15、优选的是,步骤s6进一步包括:
16、步骤s61、将转换成二进制码的数据还原为十进制;
17、步骤s62、根据消息格式对数据的定义将十进制数据转换为对应的消息。
18、本申请第二方面提供了一种基于python的数据链消息报文解析装置,主要包括:
19、字符串转换拼接模块,用于将报文中读取的数据拼接成长字符串;
20、二进制转换模块,用于将所述长字符串转换为一个二进制数;
21、字符型数据转换模块,用于将所述二进制数转换为字符型数据;
22、数据读取模块,用于根据比特定义从所述字符型数据的指定位置处读取数据;
23、二进制二次转换模块,用于将读取的字符型数据转换成二进制码;
24、消息识别模块,用于确定转换成二进制码的数据所对应的消息。
25、优选的是,所述字符串转换拼接模块包括:
26、数据转换单元,用于将报文中读取的每一个位域数据通过str函数转换成字符型数据;
27、数据拼接单元,用于将各位域的字符型数据按原报文的数据包顺序拼接成一个长字符串。
28、优选的是,所述二进制转换模块包括:
29、十六进制数据转换单元,用于将所述长字符串通过int函数转换为一个长十六进制数;
30、二进制数据转换单元,用于将所述长十六进制数通过bin函数转换为二进制数。
31、优选的是,所述消息识别模块包括:
32、十进制转换单元,用于将转换成二进制码的数据还原为十进制;
33、消息解析单元,用于根据消息格式对数据的定义将十进制数据转换为对应的消息。
34、本申请能够大大降低了数据链协议报文解析的处理难度,对开发人员能力要求低,编程简单直观,开发高效。
本文档来自技高网...【技术保护点】
1.一种基于python的数据链消息报文解析方法,其特征在于,包括:
2.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤S1进一步包括:
3.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤S2进一步包括:
4.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤S6进一步包括:
5.一种基于python的数据链消息报文解析装置,其特征在于,包括:
6.如权利要求5所述的基于python的数据链消息报文解析装置,其特征在于,所述字符串转换拼接模块包括:
7.如权利要求5所述的基于python的数据链消息报文解析装置,其特征在于,所述二进制转换模块包括:
8.如权利要求5所述的基于python的数据链消息报文解析装置,其特征在于,所述消息识别模块包括:
【技术特征摘要】
1.一种基于python的数据链消息报文解析方法,其特征在于,包括:
2.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤s1进一步包括:
3.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤s2进一步包括:
4.如权利要求1所述的基于python的数据链消息报文解析方法,其特征在于,步骤s6进一步包括:
...
【专利技术属性】
技术研发人员:夏宁,于霄鲁,刘志男,
申请(专利权)人:中国航空工业集团公司沈阳飞机设计研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。