掌桥专利:专业的专利平台
掌桥专利
首页

一种基于缓冲流的飞参数据预处理方法

文献发布时间:2024-04-18 20:02:40


一种基于缓冲流的飞参数据预处理方法

技术领域

本发明涉及一种基于缓冲流的飞参数据预处理方法,属于飞参数据处理技术领域。

背景技术

飞参数据文件来源于数十个飞参数据采集器,每个采集器会采集数十个至数千个参数,每个采集器中的所有参数存储在一段设定的数据区间,形成一个飞参数据包,每个参数在数据包中定义了占位长度和偏移量。由于每个采集器采集数据的频率有差异,采集时间也各不相同,所有的通道的数据包以到达时间为序写入到飞参数据文件。因此,飞参数据文件中的数据包是所有采集器数据的混乱集合,并没按采集器分类和排列,查询一个参数数据需要遍历整个飞参文件,效率极低,导致用户分析飞参数据时间开销极大。

随着飞机系统复杂性增加,飞参数据文件记录的参数量呈指数增长;同时飞行持续时间变长,飞参数据文件体量扩张,进一步降低了参数查询效率。因此,必须对飞参数据文件中的数据包按采集器分类处理,每个采集器的数据单独形成一个数据文件(即通道文件),此过程可以称为飞参文件预处理。完成飞参预处理后,查找一个参数只需要遍历所属通道文件,效率大幅提升。

同时,由于预处理涉及磁盘文件的读取和写入,磁盘I/O成为数据解析的瓶颈。需要提出一种随机访问文件缓冲流,用于读取飞参数据文件和写入通道文件,大幅提高预处理的速度。

发明内容

本发明的目的:本发明提出一种基于缓冲流的飞参数据预处理方法,通过飞参数据二次存储的方式,将一个飞参数据文件按照采集器分成多个通道文件,提高了飞参数据绘图分析、飞行数据统计、故障代码解析、飞行员操作评估等数据分析效率,减少数据分析时间开销,满足部队快速放飞的需求。

本发明的技术方案:

一种基于缓冲流的飞参数据预处理方法,包括以下步骤:

步骤1:上传飞参数据文件,生成飞参随机访问文件流;

步骤2:解析飞参数据文件头部信息;

步骤3:为每个参数采集器建立一个通道文件;

步骤4:为每个通道文件建立一个飞参数据包缓冲区;

步骤5:解析一个飞参文件数据包,识别其所属通道标识;

步骤6:将该飞参文件数据包写入到对应的缓冲区,如缓冲区已满,将缓冲区数据写入到对应的通道文件,并清空该缓冲区;

步骤7:判断飞参数据文件是否处理到文件尾部;

步骤8:如果未到尾部,重复第5-7步;

步骤9:如果已到尾部,将所有缓冲区的数据写入到对应的通道文件,清空所有缓冲区;

步骤10:解析获取飞参数据文件结束时间,生成飞参头部文件;

步骤11:关闭飞参随机访问文件流,结束飞参文件预处理流程。

进一步,步骤1中,通过随机文件接口将飞参数据文件读入内存,形成文件流。

进一步,步骤2中,根据飞参配置文件定义,解析飞参文件头部信息,包括机型、飞机号、文件时间、发动机编号、任务编码、飞行科目以及任务开始时间点。

进一步,步骤3包括飞参配置文件定义,确定飞参数据文件包含多少个采集器的数据,为每个参数采集器建立一个通道文件,通道文件命名为“通道ID#通道名称”。

进一步,步骤4中,为每个通道文件建立一个缓冲区,缓冲区属性包括通道解析模式,通道ID,通道名称,缓冲区指针;缓冲区通过通道ID和通道名称与通道文件一一对应。

进一步,步骤5中,从飞参文件流中提取一个飞参数据文件数据包,解析数据包头内容,获取此数据包所属参数采集器通道编号。

进一步,步骤6中,将该数据包写入缓冲区时,如果该通道的缓冲区未满,将该数据包写入缓冲区;如果该通道的缓冲区已满,将该缓冲区中的所有数据写入对应的通道文件,清空缓冲区,再将数据包写入到缓冲区。

进一步,步骤9和10是根据飞参数据文件指针与飞参数据文件总长度对比,判断飞参数据文件是否解析结束。

进一步,步骤8中,如果指针值小于总长度,表示飞参数据文件未处理到尾部,继续处理一下包数据,重复第5-7步。

进一步,步骤9中,如果飞参数据文件指针值大于等于飞参数据文件总长度,表示飞参数据文件已处理到尾部,将所有缓冲区的数据写入到对应的通道文件,清空所有缓冲区;步骤10中,获取最后一个飞参数据包的时刻,作为飞参数据文件的结束时间,写入到步骤2中头部文件;步骤11中,关闭飞参随机访问文件流,释放相关资源,结束飞参数据文件预处理流程。

本发明的有益效果:

本发明提出的基于缓冲流的飞参数据预处理方法已应用于CB飞机自主保障信息系统的健康管理模块的研制,并交付到部队外场进行使用。

通过飞参数据二次存储的方式,将一个飞参数据文件按照采集器分成多个通道文件,提高了飞参数据绘图分析、飞行数据统计、故障代码解析、飞行员操作评估等数据分析效率,减少数据分析时间开销。

同时采用的文件缓冲流的方式读取飞参源文件和写入通道文件,加快了预处理的速度,进一步节省了飞参数据分析的时间,满足部队快速放飞的需求。

附图说明

图1为飞参数据预处理流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的一个实施例是:

一种基于缓冲流的飞参数据预处理方法,包括以下步骤:

步骤1:上传飞参数据文件,生成飞参随机访问文件流;

步骤2:解析飞参数据文件头部信息;

步骤3:为每个参数采集器建立一个通道文件;

步骤4:为每个通道文件建立一个飞参数据包缓冲区;

步骤5:解析一个飞参文件数据包,识别其所属通道标识;

步骤6:将该飞参文件数据包写入到对应的缓冲区,如缓冲区已满,将缓冲区数据写入到对应的通道文件,并清空该缓冲区;

步骤7:判断飞参数据文件是否处理到文件尾部;

步骤8:如果未到尾部,重复第5-7步;

步骤9:如果已到尾部,将所有缓冲区的数据写入到对应的通道文件,清空所有缓冲区;

步骤10:解析获取飞参数据文件结束时间,生成飞参头部文件;

步骤11:关闭飞参随机访问文件流,结束飞参文件预处理流程。

在本实施例中,步骤1中,通过随机文件接口将飞参数据文件读入内存,形成文件流。

在本实施例中,步骤2中,根据飞参配置文件定义,解析飞参文件头部信息,包括机型、飞机号、文件时间、发动机编号、任务编码、飞行科目以及任务开始时间点。

在本实施例中,步骤3包括飞参配置文件定义,确定飞参数据文件包含多少个采集器的数据,为每个参数采集器建立一个通道文件,通道文件命名为“通道ID#通道名称”。

在本实施例中,步骤4中,为每个通道文件建立一个缓冲区,缓冲区属性包括通道解析模式,通道ID,通道名称,缓冲区指针;缓冲区通过通道ID和通道名称与通道文件一一对应。

在本实施例中,步骤5中,从飞参文件流中提取一个飞参数据文件数据包,解析数据包头内容,获取此数据包所属参数采集器通道编号。

在本实施例中,步骤6中,将该数据包写入缓冲区时,如果该通道的缓冲区未满,将该数据包写入缓冲区;如果该通道的缓冲区已满,将该缓冲区中的所有数据写入对应的通道文件,清空缓冲区,再将数据包写入到缓冲区。

在本实施例中,步骤9和10是根据飞参数据文件指针与飞参数据文件总长度对比,判断飞参数据文件是否解析结束。

在本实施例中,步骤8中,如果指针值小于总长度,表示飞参数据文件未处理到尾部,继续处理一下包数据,重复第5-7步。

在本实施例中,步骤9中,如果飞参数据文件指针值大于等于飞参数据文件总长度,表示飞参数据文件已处理到尾部,将所有缓冲区的数据写入到对应的通道文件,清空所有缓冲区;步骤10中,获取最后一个飞参数据包的时刻,作为飞参数据文件的结束时间,写入到步骤2中头部文件;步骤11中,关闭飞参随机访问文件流,释放相关资源,结束飞参数据文件预处理流程。

本发明的第二个实施例是:

本发明在程序中具体实现步骤如下:

步骤1中,首先上传飞参数据文件到MDC数据接口模块,然后通过继承自定义的BufferedRendomAccessFile随机访问文件类将飞参数据文件读入内存中,生成飞参随机访问文件流。

步骤2中,根据飞参文件头部定义,通过自定义的二进制转化为字符的bytesToString方法,将二制度格式的飞参文件头部信息提取出来,并保存到飞参文件头部MaintFileHeadInfo类中,飞参文件头部类包括机型、飞机号、飞参文件版本号、文件开始时间、发动机编号、任务编码、飞行科目以及文件结束时间等。

步骤3中,根据步骤2飞参文件头部信息中的飞参文件版本号,从数据库MDC参数配置表TR_TBMDCPARAM中查询该飞参文件版本包含的所有飞参数据采集器(通道)的通道标识和通道名称,为每个参数采集器建立一个通道文件,文件命名为“通道标识#通道名称”。

步骤4中,为步骤3中的每个通道文件创建一个飞参数据包缓冲区WriteStream,缓冲区包括通道解析模式channelMode、通道标识channelId、通道名称channelName、通道数据包长度channelLength、缓冲区总长度streamLength、缓冲区下标dataIndex、写入标识writeFlag以及缓存数据writeBuff等。缓冲区通过通道标识、通道名称与通道文件映射。

步骤5中,通过自设计的数据分析方法AnysicDataPack从步骤1中飞参随机访问文件流中读取一个飞参文件数据包,通过二进制转化为十六进制字符串方法bytes2HexString解析该数据包的包头信息,获取该数据包所属通道标识channelId,映射到通道文件。

步骤6中,根据缓冲区下标dataIndex与定义的缓冲区总长度streamLength对比,检查该通道文件对应的缓冲区是否已经存满。如果该通道的缓冲区未满,将该数据包写入缓冲区;如果该通道的缓冲区已满,将该缓冲区中的所有数据写入对应的通道文件,清空缓冲区,再将该数据包写入到缓冲区。

步骤7中,根据飞参随机访问文件流指针值rafPoint与飞参文件总长度rafLen对比,判断飞参文件是否结束。判断飞参数据文件是否解析结束。

步骤8中,如果指针值小于总长度,飞参文件未处理到文件尾部,继续处理一下包数据,重复第5-7步。

步骤9中,如果飞参随机访问文件流指针值rafPoint大于等于飞参数据文件总长度rafLen,表示飞参文件已处理到文件尾部,将所有通道缓冲区的数据写入到对应的通道文件中,清空所有缓冲区。

步骤10中,解析出最后一个飞参数据包中的包头时间,作为飞参数据文件的结束时间,保存到飞参文件头部MaintFileHeadInfo类中,并生成飞参头部文件dstConfigFile。

步骤11中,关闭飞参随机访问文件流,释放相关计算机资源,结束飞参数据文件预处理流程。

本发明第三个实施例是:

本发明实现过程示例:

步骤1中,上传飞参数据文件MAINT_255_20210112_151726.dat到MDC数据接口模块,生成飞参随机访问文件流braf。

步骤2中,根据飞参文件头部定义,将二制度格式的飞参文件头部信息提取出来,并保存到飞参文件头部MaintFileHeadInfo类中,飞参文件头部类信息中,机型为CB、飞机号255、飞参文件版本号CB*****215、文件开始时间2021-1-12 15:17:26、飞行科目为科研试飞。

步骤3中,根据步骤2中的飞参文件版本号CB*****215,从数据库表TR_TBMDCPARAM中查询到该飞参文件版本包含了43个参数采集器(通道),为每个参数采集器建立一个通道文件,文件命名为“通道标识#通道名称”,比如0X04A8#BFCC-SIM。

步骤4中,为步骤3中的每个通道文件创建一个飞参数据包缓冲区WriteStream,比如0X04A8#BFCC-SIM通道文件对应的缓冲区的通道解析模式为2、通道标识为0X04A8、通道名称为BFCC-SIM、通道数据包长度528、缓冲区总长度5,242,880。

步骤5中,通过自设计的数据分析方法从步骤1中飞参随机访问文件流中读取一个飞参文件数据包,通过二进制转化为十六进制字符串方法解析该数据包的包头信息,获取该数据包所属通道标识,假设为0X04A8,映射到0X04A8#BFCC-SIM通道文件。

步骤6中,检查该通道文件对应的缓冲区是否已经存满,假设未满,将该数据包写入到第4步创建的0X04A8缓冲区中。

步骤7中,根据飞参随机访问文件流指针值与飞参文件总长度对比,判断飞参文件是否结束。

步骤8中,假设该包数据的指针值为49,536,582,小于文件总长度2,382,340,458,说明飞参文件未处理到文件尾部,继续处理一下包数据,重复第5-7步。。

步骤9中,假设该包数据的指针值为2,382,340,458,等于飞参数据文件总长度,说明飞参文件已处理到文件尾部,将所有通道缓冲区的数据写入到对应的通道文件中,清空所有缓冲区。

步骤10中,解析出最后一个飞参数据包中的包头时间2021-1-1216:39:41,作为飞参数据文件的结束时间,保存到飞参文件头部类中,并生成飞参头部文件config.dat。

步骤11中,关闭飞参随机访问文件流braf,释放相关计算机资源,结束飞参数据文件预处理流程。

以上所述,仅为本发明的具体实施例,对本发明进行详细描述,未详尽部分为常规技术。但本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 一种基于野值剔除和特征提取的飞参数据预处理方法
  • 一种基于野值剔除和特征提取的飞参数据预处理方法
技术分类

06120116586612