一种基于XML的UDP数据报文自动转换方法与流程


一种基于xml的udp数据报文自动转换方法
技术领域
1.本发明属于软件基础技术领域,尤其是一种基于xml的udp数据报文自动转换方法。


背景技术:



2.现有udp转换技术中,一种udp报文往往对应一种专用解析函数,若系统中存在数百条udp报文时,则需要在软件中编写数百个相对应的专用解析函数,因此原有技术软件开发成本较高、维护成本高、软件源代码较为臃肿、出现问题概率大且不易排查。


技术实现要素:



3.本发明的目的在于克服现有技术的不足,提出一种基于xml的udp数据报文自动转换方法,通过将报文解析所需要的全部信息严格按照规则事先写入xml配置文件,软件将实时接收到的网络报文逐一与xml配置文件中的信息进行匹配,并调用通用解析函数实现解析工作,实现网络报文的转化工作,提供给用户使用。
4.本发明解决其技术问题是采取以下技术方案实现的:
5.一种基于xml的udp数据报文自动转换方法,包括以下步骤
6.步骤1、设置udp报文xml配置文件结构;
7.步骤2、根据xml配置文件结构,根据qt软件设计变量,存储配置文件中的信息;
8.步骤3、根据xml配置文件结构,构建通用解析函数;
9.步骤4、根据设计的变量识别udp报文,将配置文件存储至allxml变量中;
10.步骤5、接收udp报文,计算接收到的udp报文的源地址与报文标识,判断udp报文信息与allxml变量中存储的信息是否匹配,若匹配则按照allxml变量中信息对udp报文进行使用通用解析函数解析并输出变量value存储信息量的实时数值,否则识别下一个udp报文。
11.而且,所述步骤1中xml配置文件结构包括报文头部的通用部分和包含具体信息的专用部分,其中通用部分包括报文长度、报文源地址、报文目的地址和报文标识;专用部分中每个专用内容包括6种子信息:信息量名称、信息量在文件中所占的字节长度、信息量的初始值、信息量的量纲、信息量有符号标识和信息量整形标识。
12.而且,所述步骤2包括以下步骤:
13.步骤2.1、构建interfaceseg类存储单个信息量信息;
14.步骤2.2、定义interfacesegvector向量,存储单条udp报文xml配置文件中存储的所有子信息;
15.步骤2.3、设计接口interfacemodel类读取全部配置文件;
16.步骤2.4、定义allxml变量存储全部的配置文件信息,其中allxml变量中的allxml[i]存储对应单条配置文件中所有的信息,allxml变量中的allxml[i]-》interfacesegvector[i]存储对应单条配置文件中单个自信息的全部信息。
[0017]
而且,所述步骤2.1的具体实现方法为:在interfaceseg类中定义qstring型变量name存储信息量名称、int型变量length存储信息量所占的字节长度、qvariant型变量value存储信息量实时数值、double型变量dimesion存储信息解析时需要的量纲、int型变量bsigned表示是否为有符号标识、int型变量bint表示是否为整形标识。
[0018]
而且,所述步骤3中通用函数包括:有符号整形标识解析函数、无符号整形标识解析函数、有符号浮点型整形标识解析函数和无符号浮点型整形标识解析函数;
[0019]
其中,有符号整形标识解析函数判断整形标识最高比特位是否为1,若为1则该整形标识表示负数,则按照补码规则将对缺少的高位信息全部填1;若为0则表示正数,则按照补码规则将对缺少的高位信息全部填0;
[0020]
无符号整形标识解析函数按照补码规则将对缺少的高位信息全部填0;
[0021]
有符号浮点型整形标识解析函数按照有符号整形标识解析函数进行处理,得到一个有符号整数,随后将整数与定义的量纲做除法运算得到有符号浮点数,有符号浮点数字段定义的量纲大于1;
[0022]
无符号浮点型整形标识解析函数按照无符号整形标识解析函数进行处理,得到一个无符号整数,随后该整数与定义的量纲做除法运算得到无符号浮点数,无符号浮点数字段定义的量纲大于1。
[0023]
而且,所述步骤5包括以下步骤:
[0024]
步骤5.1、获取allxml变量的长度n,长度n表示共有n条配置文件,令allxml[i]中i=1;
[0025]
步骤5.2、接收udp报文的源地址和报文标识信息;
[0026]
步骤5.3、判断udp报文中的源地址和报文标识与allxml[i]中存储的单条配置文件的全部信息是否相匹配,若匹配则该条udp报文为有效报文,使用通用解析函数解析并输出变量value存储信息量的实时数值,获取下一条udp报文并返回步骤5.2;否则进行步骤5.4;
[0027]
步骤5.4、判断是否i》=n,若i》=n则该条udp报文为无效报文,丢弃,获取下一条udp报文并返回步骤5.2;否则使i=i+1,并返回步骤5.3。
[0028]
本发明的优点和积极效果是:
[0029]
本发明通过将报文解析所需要的全部信息严格按照规则事先写入xml配置文件,软件将实时接收到的网络报文逐一与xml文件中的信息进行匹配,并调用通用解析函数实现解析工作,实现网络报文的转化工作,提供给用户使用。本发明弥补了过往需要编写专用解析函数的不足,只需在qt软件中设计通用解析函数并调用xml文件即可实现udp报文自动转化工作。本发明可降低代码复杂程度、提高软件代码的可维护性、提升软件开发人员开发效率。
附图说明
[0030]
图1为本发明的流程图;
[0031]
图2为本发明配置文件在软件中的存储结构图;
[0032]
图3为本发明识别udp报文流程图;
[0033]
图4为本发明调用解析函数解析流程图。
具体实施方式
[0034]
以下结合附图对本发明做进一步详述。
[0035]
一种基于xml的udp数据报文自动转换方法,如图1所示,包括以下步骤:
[0036]
步骤1、设置udp报文xml配置文件结构。
[0037]
xml配置文件结构包括报文头部的通用部分和包含具体信息的专用部分,其中不同报文通用部分包括报文长度、报文源地址、报文目的地址和报文标识,通用部分所占字节的位置和大小都是固定的;专用部分是根据每条udp报文的用途而专门设计的,用于表示经纬度等特定信息。
[0038]
本发明中定义的单条报文信息量定义如表1所示,其中报文长度、报文源地址、报文目的地址、报文标识是通用部分,通用部分之后是每条报文的专用部分。
[0039]
表1
[0040]
序号信息量含义信息量长度1报文长度2字节2报文源地址4字节3报文目的地址4字节4报文标识2字节5报文专用内容1,如经度n字节6报文专用内容2,如纬度n字节7报文专用内容mn字节
[0041]
不同类型信息量在配置文件中的设计过程是相同的,以经度为例其相关配置文件内容:
[0042][0043]
《datanode》表示经度信息量的开始标记,《/datanode》表示经度信息量结束标记,中间为经度信息量中的子信息,共设计有6种子信息,自信息具体内容如表2所示。
[0044]
表2配置文件中单个信息量子信息解释
[0045][0046][0047]
步骤2、根据xml配置文件结构,根据qt软件设计变量,存储配置文件中的信息。如图2所示为配置文件存储结构示意图,共存在n+1条配置文件,allxml[i]中存储单条配置文件的全部信息,allxml[i]-》interfacesegvector[i]中存储单条配置文件中单个信息量的全部信息。本步骤包括以下步骤:
[0048]
步骤2.1、构建interfaceseg类存储单个信息量信息。在interfaceseg类中定义qstring型变量name存储信息量名称、int型变量length存储信息量所占的字节长度、qvariant型变量value存储信息量实时数值、double型变量dimesion存储信息解析时需要的量纲、int型变量bsigned表示是否为有符号标识、int型变量bint表示是否为整形标识。
[0049]
步骤2.2、定义interfacesegvector向量,如qvector《interfaceseg*》interfacesegvector,qvector是一个提供动态数组的模板类,适用于本发明中信息量个数不定的情况,存储单条udp报文xml配置文件中存储的所有子信息。
[0050]
步骤2.3、设计接口interfacemodel类读取全部配置文件,向量interfacesegvector是该类成员变量之一。
[0051]
步骤2.4、定义allxml变量存储全部的配置文件信息,其中allxml变量中的allxml[i]存储对应单条配置文件中所有的信息,allxml变量中的allxml[i]-》interfacesegvector[i]存储对应单条配置文件中单个自信息的全部信息。
[0052]
步骤3、根据xml配置文件结构,构建通用解析函数。
[0053]
字段可分为整形和浮点型两类、又可分为有符号数与无符号数两类,针对上述分类需要设计4种通用解析函数,整形数据默认最低比特位权值为1。
[0054]
其中,有符号整形标识解析函数判断整形标识最高比特位是否为1,若为1则该整形标识表示负数,则按照补码规则将对缺少的高位信息全部填1;若为0则表示正数,则按照补码规则将对缺少的高位信息全部填0;
[0055]
无符号整形标识解析函数按照补码规则将对缺少的高位信息全部填0;
[0056]
有符号浮点型整形标识解析函数按照有符号整形标识解析函数进行处理,得到一个有符号整数,随后将整数与定义的量纲做除法运算得到有符号浮点数,有符号浮点数字段定义的量纲大于1;
[0057]
无符号浮点型整形标识解析函数按照无符号整形标识解析函数进行处理,得到一个无符号整数,随后该整数与定义的量纲做除法运算得到无符号浮点数,无符号浮点数字段定义的量纲大于1。
[0058]
步骤4、根据设计的变量识别udp报文,将配置文件存储至allxml变量中。
[0059]
步骤5、接收udp报文,计算接收到的udp报文的源地址与报文标识,判断udp报文信息与allxml变量中存储的信息是否匹配,若匹配则按照allxml变量中信息对udp报文进行使用通用解析函数解析并输出变量value存储信息量的实时数值,否则识别下一个udp报文。如图3所示,本步骤包括以下步骤:
[0060]
步骤5.1、获取allxml变量的长度n,长度n表示共有n条配置文件,令allxml[i]中i=1;
[0061]
步骤5.2、接收udp报文的源地址和报文标识信息;
[0062]
步骤5.3、判断udp报文中的源地址和报文标识与allxml[i]中存储的单条配置文件的全部信息是否相匹配,若匹配则该条udp报文为有效报文,使用通用解析函数解析并输出变量value存储信息量的实时数值,获取下一条udp报文并返回步骤5.2;否则进行步骤5.4;
[0063]
步骤5.4、判断是否i》=n,若i》=n则该条udp报文为无效报文,丢弃,获取下一条udp报文并返回步骤5.2;否则使i=i+1,并返回步骤5.3。
[0064]
如图4所示调用解析函数解析包括以下步骤:
[0065]
步骤5.3.1、判断是否信息量整形标识bint=0,若信息量整形标识bint=0,则该字段为整形进行步骤5.3.2,否则进行步骤5.3.3;
[0066]
步骤5.3.2、判断是否信息量有符号标识bsigned=1,若信息量有符号标识bsigned=1,则该字段为有符号数,按照有符号整形标识解析函数进行解析并结束,否则按照无符号整形标识解析函数进行解析并结束;
[0067]
步骤5.3.3、判断是否信息量有符号标识bsigned=1,若信息量有符号标识bsigned=1,则该字段为有符号数,按照有符号浮点型整形标识解析函数进行解析并结束,否则按照无符号浮点型整形标识解析函数进行解析并结束。
[0068]
需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

技术特征:


1.一种基于xml的udp数据报文自动转换方法,其特征在于:包括以下步骤:步骤1、设置udp报文xml配置文件结构;步骤2、根据xml配置文件结构,根据qt软件设计变量,存储配置文件中的信息;步骤3、根据xml配置文件结构,构建通用解析函数;步骤4、根据设计的变量识别udp报文,将配置文件存储至allxml变量中;步骤5、接收udp报文,计算接收到的udp报文的源地址与报文标识,判断udp报文信息与allxml变量中存储的信息是否匹配,若匹配则按照allxml变量中信息对udp报文进行使用通用解析函数解析并输出变量value存储信息量的实时数值,否则识别下一个udp报文。2.根据权利要求1所述的一种基于xml的udp数据报文自动转换方法,其特征在于:所述步骤1中xml配置文件结构包括报文头部的通用部分和包含具体信息的专用部分,其中通用部分包括报文长度、报文源地址、报文目的地址和报文标识;专用部分中每个专用内容包括6种子信息:信息量名称、信息量在文件中所占的字节长度、信息量的初始值、信息量的量纲、信息量有符号标识和信息量整形标识。3.根据权利要求2所述的一种基于xml的udp数据报文自动转换方法,其特征在于:所述步骤2包括以下步骤:步骤2.1、构建interfaceseg类存储单个信息量信息;步骤2.2、定义interfacesegvector向量,存储单条udp报文xml配置文件中存储的所有子信息;步骤2.3、设计接口interfacemodel类读取全部配置文件;步骤2.4、定义allxml变量存储全部的配置文件信息,其中allxml变量中的allxml[i]存储对应单条配置文件中所有的信息,allxml变量中的allxml[i]->interfacesegvector[i]存储对应单条配置文件中单个自信息的全部信息。4.根据权利要求3所述的一种基于xml的udp数据报文自动转换方法,其特征在于:所述步骤2.1的具体实现方法为:在interfaceseg类中定义qstring型变量name存储信息量名称、int型变量length存储信息量所占的字节长度、qvariant型变量value存储信息量实时数值、double型变量dimesion存储信息解析时需要的量纲、int型变量bsigned表示是否为有符号标识、int型变量bint表示是否为整形标识。5.根据权利要求1所述的一种基于xml的udp数据报文自动转换方法,其特征在于:所述步骤3中通用解析函数包括:有符号整形标识解析函数、无符号整形标识解析函数、有符号浮点型整形标识解析函数和无符号浮点型整形标识解析函数;其中,有符号整形标识解析函数判断整形标识最高比特位是否为1,若为1则该整形标识表示负数,则按照补码规则将对缺少的高位信息全部填1;若为0则表示正数,则按照补码规则将对缺少的高位信息全部填0;无符号整形标识解析函数按照补码规则将对缺少的高位信息全部填0;有符号浮点型整形标识解析函数按照有符号整形标识解析函数进行处理,得到一个有符号整数,随后将整数与定义的量纲做除法运算得到有符号浮点数,有符号浮点数字段定义的量纲大于1;无符号浮点型整形标识解析函数按照无符号整形标识解析函数进行处理,得到一个无符号整数,随后该整数与定义的量纲做除法运算得到无符号浮点数,无符号浮点数字段定
义的量纲大于1。6.根据权利要求1所述的一种基于xml的udp数据报文自动转换方法,其特征在于:所述步骤5包括以下步骤:步骤5.1、获取allxml变量的长度n,长度n表示共有n条配置文件,令allxml[i]中i=1;步骤5.2、接收udp报文的源地址和报文标识信息;步骤5.3、判断udp报文中的源地址和报文标识与allxml[i]中存储的单条配置文件的全部信息是否相匹配,若匹配则该条udp报文为有效报文,使用通用解析函数解析并输出变量value存储信息量的实时数值,获取下一条udp报文并返回步骤5.2;否则进行步骤5.4;步骤5.4、判断是否i>=n,若i>=n则该条udp报文为无效报文,丢弃,获取下一条udp报文并返回步骤5.2;否则使i=i+1,并返回步骤5.3。

技术总结


本发明涉及一种基于XML的UDP数据报文自动转换方法,通过将报文解析所需要的全部信息严格按照规则事先写入XML配置文件,软件将实时接收到的网络报文逐一与XML文件中的信息进行匹配,并调用通用解析函数实现解析工作,实现网络报文的转化工作,提供给用户使用。本发明弥补了过往需要编写专用解析函数的不足,只需在Qt软件中设计通用解析函数并调用XML文件即可实现UDP报文自动转化工作。本发明可降低代码复杂程度、提高软件代码的可维护性、提升软件开发人员开发效率。软件开发人员开发效率。软件开发人员开发效率。


技术研发人员:

李秀财 周智楠 王欢

受保护的技术使用者:

中国船舶重工集团公司第七0七研究所

技术研发日:

2022.08.26

技术公布日:

2022/12/22

本文发布于:2024-09-21 05:46:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/45075.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:报文   步骤   标识   信息量
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议