一种网络数据包解析及分发方法

文档序号:9711275阅读:1091来源:国知局
一种网络数据包解析及分发方法
【技术领域】
[0001] 本发明属于直升机综合试验测试通信技术领域,具体涉及一种网络数据包解析及 分发方法。
【背景技术】
[0002] 直升机综合试验是直升机研制过程中的一个重要阶段,目前综合试验包括旋翼系 统试验、地面联合试验、风洞试验、防除冰试验等。综合试验测试的特点及难点包括:测试参 数类型多、测试通道多、数据采样率范围宽、数据处理要求多样等。该方法是基于地面联合 试验测试需求开发的,设计目标是设计一套基于网络的分布式通用测试系统。要实现该目 标,不仅需要在硬件选型及集成等方面充分考虑系统的特点及难点,在软件设计方面同样 如此。网络数据包格式定义、解析及分发是测试系统软件开发的重要内容,也是其核心技术 之一。
[0003] 现有技术中,地面联合试验台根据测试参数类型的不同,采用不同的数据采集设 备,各系统工作原理及方式各异,且各自独立,这种技术可能引起的问题有:
[0004] (1)之前采用各个硬件供应商提供的各自专用的网络数据包格式,导致不同类型 参数的网络数据包格式各不相同,增加了网络数据解析的难度及工作量,解析效率也较低;
[0005] (2)传统的网络数据包解析方法采用将多个通道的数据缓存为多维数组的形式, 不适用于包含多种采样率的数据包;
[0006] (3)传统的数据解析、分发模块设计未充分考虑模块的通用性,难于直接将模块移 植到其它试验台测试软件。

【发明内容】

[0007] 为了解决上述问题,本发明提供了一种网络数据包解析及分发方法,并据此,对网 络数据包进行了格式上的设计,所述网络数据包解析及分发方法主要包括以下步骤:
[0008] Sl、接收数据采集服务器发来的数据包;
[0009] S2、判断接收的数据包是否有帧头及帧尾,如果没有帧头和帧尾,则需将接收的数 据拼接为完整的帧,所述完整的帧还包括通道标识及对应通道内的数据;
[0010] S3、将步骤S2中的完整的帧内包含的通道标识生成一维数组A;
[0011] S4、根据步骤S3中生成的一维数组A内的通道标识判断步骤S2中的完整的帧内是 否有客户端需要的数据,如果有,则将客户端需要的数据对应的通道标识生成一维数组B;
[0012] S5、根据一维数组B内的通道标识,获取完整帧内通道标识对应的数据,并将每一 通道标识所对应的数据转换为单精度浮点型数据,将所述单精度浮点型数据结合对应的通 道标识生成单通道一维数组Cl~Cn,其中,η为一维数组B内的数据个数;
[0013] S6、将所述η个单通道一维数组放入队列,同时,在出队列时,根据采样点数对所述 任一单通道一维数组内的数据进行拼接;
[0014] S7、将由步骤S6处理后的单通道一维数组从队列中导出,通过客户端进行处理及 显不O
[0015] 优选的是,在所述步骤SI中,所述接收数据采集服务器发来的数据包由客户端通 信层接收,并传送给所述客户端的处理层。
[0016] 在上述方案中优选的是,在所述步骤S2中,所述客户端设置有判断模块,预置有帧 头和帧尾,当所述判断模块读取所述数据包的数据时,调用所述预置的帧头和帧尾对所述 数据包的数据进行比对判断。
[0017] 在上述方案中优选的是,在所述步骤S4中,所述客户端设置有通道划分模块,通道 划分模块内存储有设备所需的通道数据,当所述通道划分模块读取所述一维数组A时,调用 所述存储的所需的通道数据,来生成一维数组B。
[0018] 在上述方案中优选的是,在所述步骤S5中,所述客户端设置有数据转换单元,所述 数据转换单元的输入端为预置的多种数据类型,所述数据转换单元的输出端为单精度浮点 型数据类型。
[0019] 在上述方案中优选的是,在所述步骤S7中,所述将单通道的一维数组进行输出显 示时,包括以下步骤:
[0020] 计算通道所需数据点数,所述通道所需数据点数是指当通道内数据需要输出时所 需要的数据点数;
[0021 ]多个数据与通道标识所在的一维数组出序列;
[0022]将上述多个一维数组拼接,直至拼接后的一维数组的点数达到通道所需数据点 数,其中,每一个数据包内的各通道的点数为采样率/采样时间内发送的数据包个数,所述 采样率为数据包内通道数据进行输出显示时所需要的数据量;
[0023]将拼接后的一维数组发送到客户端显示界面。
[0024]本发明的关键点在于:
[0025] 将不同类型参数的网络数据包格式统一设置;
[0026] 将多个通道的数据缓存为一维数组,采用队列缓存数据,克服了包含多种采样率 的数据包无法同时解析的问题;
[0027] 该数据解析、分发模块的设计充分考虑了模块的通用性,可以直接将该模块移植 到其它试验台测试软件中,避免重复开发。
[0028] 本发明的有益效果:通过上述改进,有效地解决了多种测试参数类型、多测试通 道、宽数据采样率范围以及数据处理要求多样等不能同时解析的问题,实现了统一解析、统 一分发,实现了系统的通用性要求,降低了试验成本。
【附图说明】
[0029]图1为本发明的一优选实施例的网络数据接收、解析及入队列流程图。
[0030] 图2为本发明的一优选实施例的数据出队列、拼接、通知流程图。
【具体实施方式】
[0031] 为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中 的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类 似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明 一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用 于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人 员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下 面结合附图对本发明的实施例进行详细说明。
[0032] 在本发明的描述中,需要理解的是,术语"中心"、"纵向"、"横向"、"前"、"后"、 "左"、"右"、"竖直"、"水平"、"顶"、"底" "内"、"外"等指示的方位或位置关系为基于附图所 示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装 置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护 范围的限制。
[0033] 下面通过实施例对本发明做进一步详细说明。本发明提供了一种网络数据包解析 及分发方法,其目的在与:
[0034] (1)根据综合试验测试的特点,定义一种专用的网络数据包格式,该格式适用于目 前综合试验不同试验台试验测试,又具备一定的功能扩展性;
[0035] (2)开发网络数据解析及分发模块,该模块适用于不同数据类型、不同数据采样 率、不同数据处理要求。不需对模块作任何改动,该模块可直接移植到综合试验其它试验台 试验测试软件。
[0036] 本实施例中,网络数据包解析及分发方法主要包括以下步骤,如图1所示:
[0037] Sl、接收数据采集服务器发来的数据包。
[0038] S2、判断接收的数据包是否有帧头及帧尾,如果没有帧头和帧尾,则需将接收的数 据拼接为完整的帧。
[0039]需要说明的是,这里的完整的帧,即为完整的数据包,所述完整的数据包除了包含 帧头和帧尾以外,还包括帧头和帧尾之间的多个通道标识及对应通道的数据。例如,表1。 [0040]表1完整数据包所包含的内容
[0043] 如上表所示,所述的完整的数据包包括帧头(55AAAA55)和帧尾(AA5555AA)、位于 两者之间的数据包帧长度(288)、多个通道ID(通道4、通道5、通道6)以及每一个通道ID内的 多个数据。
[0044] S3、将步骤S2中的完整的帧内包含的通道标识生成一维数组A。
[0045] 比如,将表1中的通道4、通道5以及通道6三个通道的ID组合成一维数组A,A = {4, 5,6}〇
[0046] S4、根据步骤S3中生成的一维数组A内的通道标识判断步骤S2中的完整的帧内
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1