测量仪器的数据交互处理方法及系统与流程

文档序号:14897442发布日期:2018-07-08 09:00阅读:453来源:国知局

本发明涉及测量技术领域,尤其涉及的是一种测量仪器的数据交互处理方法及系统。



背景技术:

在测量领域,测量仪器都会涉及到数据采样、分发、处理、显示等。能否正确、灵活、高效地处理测量仪器的测量数据直接关系到整个仪器的性能和市场竞争力。因此,高质量的测量仪器必须具备高效的数据获取处理方式。

随着计算机技术、网络技术以及电力系统的大力发展,对测量仪器数据处理能力提出了更高要求。为了能够满足客户复杂、快速、精确的测量需求,研究一种测量仪器的稳定高效的测量数据获取及处理方法及系统架构尤为重要。目前的测量仪器数据处理方法一般是:应用程序通过arm通信接口或者fpga(field-programmablegatearray,现场可编程门阵列)自带的sdk(软件开发工具包)访问fpga地址,直接获取测量数据进行处理。由于fpga具有高速采样速率和数据处理能力,而应用程序对数据转发及处理较慢,再加上一些复杂的数据计算、界面数据刷新以及数据存储等功能,使得应用程序无法满足测量仪器高采样率的性能要求。



技术实现要素:

本发明所要解决的技术问题是提供一种测量仪器的数据交互处理方法及系统,解决应用程序数据获取及处理效率低,而与测量仪器的数据采集速度不匹配的问题。

为解决上述问题,本发明提出一种测量仪器的数据交互处理方法,在测量仪器的测量板卡与应用程序所属模块之间设置dsp模块及数据处理进程,该方法包括以下步骤:

s1:应用程序主进程读取本地配置文件进行初始化,至少初始化共享内存管理模块,所述共享内存管理模块管理有共享内存数据表和共享内存配置表,根据配置文件初始化所述共享内存配置表;

s2:通过数据处理进程读取配置信息并将配置信息下发至测量仪器的测量板卡及dsp模块,监听消息,一旦监听到socket消息,便根据判断将dsp模块处理的数据包同步转移至所述共享内存数据表内并发出数据更新消息;

s3:测量仪器的测量板卡根据配置信息采集数据,并将采集数据转发至所述dsp模块,所述dsp模块根据配置信息对数据进行处理后触发生成一socket消息;

s4:通过应用程序数据更新线程监听消息,一旦监听到所述数据更新消息,便读取共享内存数据表内数据并将数据写入应用程序缓存区,并发送相应的写入信号给应用程序主进程;

s5:所述应用程序主进程根据所述写入信号调用相应的数据更新接口,以从应用程序缓存区获取数据。

根据本发明的一个实施例,所述步骤s2中,所述数据处理进程包括数据包缓存模块、数据处理更新线程、消息处理线程;

所述数据包缓存模块,一方面用以缓存dsp模块发送的数据包并进行同步,另一方面具有处理接口,用以根据判断将dsp模块处理的数据包转移至所述共享内存数据表内;

所述数据处理更新线程进行数据监听,一旦监听到socket消息便主动调取所述数据包缓存模块中的处理接口进行处理;还用以提供参数配置、获取的配置接口,以实现参数配置及获取;

所述消息处理线程用以接收应用程序主进程发送的消息队列,判断消息类型,一旦监听到应用程序主进程发送的配置改变类消息,调用所述数据处理更新线程参数的配置接口实现参数配置。

根据本发明的一个实施例,所述根据判断将dsp模块处理的数据包转移至所述共享内存数据表内包括:

判断数据包缓存模块内缓存的各个测量板卡对应的dsp模块处理的数据包是否具有相同的标识号,若具有相同的标识号则将全部数据包拷贝至所述共享内存数据表内,发出所述数据更新消息并清空所述数据包缓存模块的数据包缓存区,否则直接清空所述数据包缓存模块的数据包缓存区;

其中,所述dsp模块还对获取的测量仪器的测量板卡的数据包进行对应的标识号标识。

根据本发明的一个实施例,所述数据处理更新线程还用以监听应用程序下发的配置消息,根据消息类型从共享内存配置表中读取对应的配置信息下发至所述测量仪器的测量板卡及dsp模块。

根据本发明的一个实施例,应用程序改变配置时,将配置改变信息写入到共享内存配置表中并下发更新配置消息,及将更新配置信息保存在本地配置文件中。

根据本发明的一个实施例,所述测量仪器的测量板卡及dsp模块收到更新配置信息后分别重新采集、处理数据,dsp模块将socket消息发送至数据处理进程进行数据获取。

根据本发明的一个实施例,所述应用程序中具有至少一个测量模块;所述步骤s1中,还创建各个测量模块的数据管理模块,以对各个测量模块进行配置参数管理及界面初始化;所述步骤s5中,数据更新接口从应用程序缓存区获取数据后,将数据推送至相应的测量模块。

根据本发明的一个实施例,所述步骤s3中,所述dsp模块根据配置信息选定数据处理算法,并对数据进行处理后触发生成一socket消息。

根据本发明的一个实施例,所述测量仪器的测量板卡包括主板卡和各个子板卡,测量板卡通过fpga实现数据采集及处理。

本发明还提供一种测量仪器的数据交互处理系统,包括硬件部分及软件部分;所述硬件部分包括测量仪器的测量板卡、应用程序所属模块及设置在所述测量仪器的测量板卡与应用程序所属模块之间的dsp模块;所述测量仪器的测量板卡用以根据配置信息采集数据,并将采集数据转发至所述dsp模块;所述dsp模块用以根据配置信息对数据进行处理后触发生成一socket消息;所述软件部分在所述应用程序所属模块运行时,包括以下的步骤:

应用程序主进程读取本地配置文件进行初始化,至少初始化共享内存管理模块,所述共享内存管理模块管理有共享内存数据表和共享内存配置表,根据配置文件初始化所述共享内存配置表;

通过数据处理进程读取配置信息并将配置信息下发至测量仪器的测量板卡及dsp模块,监听消息,一旦监听到socket消息,便根据判断将dsp模块处理的数据包同步转移至所述共享内存数据表内并发出数据更新消息;

通过应用程序数据更新线程监听消息,一旦监听到所述数据更新消息,便读取共享内存数据表内数据并将数据写入应用程序缓存区,并发送相应的写入信号给应用程序主进程;

所述应用程序主进程根据所述写入信号调用相应的数据更新接口,以从应用程序缓存区获取数据。

采用上述技术方案后,本发明相比现有技术具有以下有益效果:

1)在测量板卡与应用程序之间加入dsp模块进行数据处理,使得测量数据处理更加高效,极大地减轻了应用程序数据处理的压力;

2)创建独立的数据处理进程实现数据获取及同步,使整个系统设计更加灵活、复用性强;使应用层和数据层分离,实现应用与数据的解耦;应用程序与数据处理进程间采用共享内存数据表机制进行数据交互,降低了模块间耦合度,提高了数据转发效率,由数据处理进程主动发消息给应用程序进而获取数据,避免了应用程序主动查获dsp模块中的数据而导致的资源消耗;

3)应用程序与数据处理进程通过消息队列相互通信,在有配置或数据变化时才发送消息,不需要实时监测对方状态,极大地节省了处理器的占用时间,提高了整个系统的效率。

附图说明

图1为本发明一实施例的测量仪器的数据交互处理方法的流程示意图;

图2为本发明一实施例的测量仪器的数据交互处理系统的框架示意图;

图3为本发明一实施例的测量仪器的数据交互处理方法的时序示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

参看图1,在一个实施例中,在测量仪器的测量板卡与应用程序所属模块之间设置dsp(digitalsignalprocessing,数字信号处理)模块及数据处理进程,测量仪器的数据交互处理方法包括以下步骤:

s1:应用程序主进程读取本地配置文件进行初始化,至少初始化共享内存管理模块,所述共享内存管理模块管理有共享内存数据表和共享内存配置表,根据配置文件初始化所述共享内存配置表;

s2:通过数据处理进程读取配置信息并将配置信息下发至测量仪器的测量板卡及dsp模块,监听消息,一旦监听到socket消息,便根据判断将dsp模块处理的数据包同步转移至所述共享内存数据表内并发出数据更新消息;

s3:测量仪器的测量板卡根据配置信息采集数据,并将采集数据转发至所述dsp模块,所述dsp模块根据配置信息对数据进行处理后触发生成一socket消息;

s4:通过应用程序数据更新线程监听消息,一旦监听到所述数据更新消息,便读取共享内存数据表内数据并将数据写入应用程序缓存区,并发送相应的写入信号给应用程序主进程;

s5:所述应用程序主进程根据所述写入信号调用相应的数据更新接口,以从应用程序缓存区获取数据。

本发明实施例的测量仪器的数据交互处理方法的步骤先后顺序不做限制,工作过程中各个部分之间存在较多的交互关系,上述顺序的编号仅是为了更便于表述,例如步骤s2和s3之间,数据处理进程首先处于监听消息状态,在dsp模块生成socket消息之后,才能监听到相应消息并进行相应的处理。

下面结合图1-3对本发明实施例的测量仪器的数据交互处理方法进行更具体的描述,但不应以此为限。

应用程序所属模块是应用程序存储运行的硬件部分,它可以是一个独立的设备,例如计算机设备、移动终端设备等,或者也可以附属设置在测量仪器上,具体不限。在电性连接关系上,dsp模块与应用程序所属模块连接,测量仪器的测量板卡与dsp模块连接。该应用程序所属模块可以包括存储应用程序及相关信息的存储单元及运行该应用程序的处理器,当然不限于此。

可选的,所述测量仪器的测量板卡包括主板卡和各个子板卡,例如是功率分析仪主板卡和各个功能子板卡,当然也可以是测量仪器,这些主板卡和各个子板卡通过fpga实现数据采集及处理,进行测量数据的采集,而后发送给dsp模块。下面实施例内容中出现的fpga均可以用来指代所述测量仪器的测量板卡。

在步骤s1中,启动应用程序后,应用程序主进程可以读取本地配置文件进行初始化。应用程序例如可以是poweranalyzer应用程序,具体不限。本地配置文件是指存储在应用程序所属模块中的配置文件,应用程序可以调取该配置文件。

初始化过程中,对共享内存管理模块进行初始化,所述共享内存管理模块管理有共享内存数据表和共享内存配置表,根据配置文件初始化所述共享内存配置表,可以将配置文件读取到共享内存配置表中。共享内存数据表模块负责各个测量模块的数据管理,共享内存配置表负责各个测量模块的配置信息管理。共享内存数据表和共享内存配置表也可以是在此初始化过程中创建的,且创建在内存中,提升数据读写的速率。

应用程序中具有至少一个测量模块,这些测量模块可以是在启动应用程序之后创建的,也可以是已经预设在应用程序中。不同的测量模块可以实现不同的功能,可以根据测量数据的不同及用户的需求等而定,具体不限。

当然步骤s1的初始化过程还可以包括其他的内容,例如:创建各个测量模块的数据管理模块,各个数据管理模块负责对各个测量模块配置参数管理、界面初始化;获取板卡信息,根据该板卡信息创建并初始化板卡及帮助信息,及初始化测量仪器管理抽象模块;创建应用程序数据更新线程,用来监听后续数据处理进程发送的消息,并根据消息类型发送相应的信号给应用程序主程序等等。

步骤s2中,应用程序初始化之后,启动数据处理进程。所述数据处理进程读取配置信息并将配置信息下发至测量仪器的测量板卡及dsp模块,然后监听消息,一旦监听到socket消息,便根据判断将dsp模块处理的数据包同步转移至所述共享内存数据表内并发出数据更新消息。

该数据处理进程可以负责应用程序与dsp模块、驱动接口等之间的交互,包括应用程序的配置信息、操作指令的下发以及dsp模块、fpga上传数据的同步、转发等功能。数据处理进程启动后,首先从共享内存配置表中读取配置信息,并将配置信息下发给dsp模块或者(fpga)驱动接口。

优选的,所述步骤s2中,所述数据处理进程包括数据包缓存模块、数据处理更新线程、消息处理线程,这几者都可以在应用程序初始化之后进行创建并启动。

所述数据包缓存模块,一方面用以缓存dsp模块发送的数据包并进行同步,另一方面具有处理接口,用以根据判断将dsp模块处理的数据包转移至所述共享内存数据表内。处理接口可以由数据处理更新线程调用来执行相应的操作。

所述数据处理更新线程一旦监听到socket消息便触发数据读取接口,并调取所述数据包缓存模块中的处理接口进行处理;还用以提供参数配置、获取的配置接口,以实现参数配置及获取。数据处理更新线程调用处理接口对设备数据包的读取,并同步数据到共享内存数据表。数据处理更新线程是数据处理进程中数据包处理类,功能例如可以包括:第一:实现对设备(功率卡、电机卡、主板卡、dsp模块等)进行监控,并通过调用数据包缓冲模块的处理接口将数据进行帧同步;第二:根据板卡类型,负责对设备不同板卡的参数配置及配置同步;第三:监控设备状态,通过读取有效驱动文件,识别设备主板卡、有效子板卡的状态,当应用程序配置发送改变时,将配置下发给有效板卡。

所述消息处理线程用以接收消息队列,判断消息类型,一旦监听到应用程序配置改变类消息便触发所述数据处理更新线程,并调用数据处理更新线程的配置接口实现配置参数下发。消息队列可以是共用的,其中可以存储各种消息,只要对其消息类型进行判断即可发现需要的消息。

优选的,所述根据判断将dsp模块处理的数据包转移至所述共享内存数据表内包括:

判断数据包缓存模块内缓存的各个测量板卡对应的dsp模块处理的数据包是否具有相同的标识号,若具有相同的标识号则将全部数据包拷贝至所述共享内存数据表内,发出所述数据更新消息并清空所述数据包缓存模块的数据包缓存区,否则直接清空所述数据包缓存模块的数据包缓存区,等待下次数据同步。避免残留的数据包影响后续数据包的处理及准确性。

其中,所述dsp模块还对获取的测量仪器的测量板卡的数据包进行对应的标识号标识。dsp模块对接收到的测量板卡的数据包进行标识,对于同一台测量仪器的测量板卡所测量采集的数据以相同的标识号标记,可以避免出现错误的数据包(未经过dsp模块处理的数据包或处理后发生错误)或其他测量仪器的数据包进入到后续处理流程中。

在一个实施例中,所述数据处理更新线程还用以监听应用程序下发的配置消息,根据消息类型从共享内存配置表中读取对应的配置信息下发至所述测量仪器的测量板卡及dsp模块。本实施例适合于初始化的配置过程,也适合于当配置发生改变时的配置过程。

在步骤s3中,数据处理进程已经处于监听消息的状态,测量仪器的测量板卡根据配置信息采集数据(用户可以在配置信息中配置所需要的测试数据信息,从而使测量板卡可以按照此信息来执行),测量仪器的测量板卡将采集数据转发至所述dsp模块,所述dsp模块根据配置信息对数据进行处理后触发生成一socket消息。将现有方式中应用程序所执行的数据获取处理操作转移到dsp模块中处理,处理效率更高,能够与测量板卡的采集速率匹配起来。

优选的,所述步骤s3中,所述dsp模块根据配置信息选定数据处理算法,并对数据进行处理,数据处理结束后会触发生成一socket消息。

该socket消息例如是socketnotifier消息。数据处理进程监听到socketnotifier消息后,就会主动读取dsp模块处理后的数据,并对每个功率子板卡、电机子板卡及主板卡等的数据包进行同步,然后将同步成功的数据拷贝到共享内存数据表中,并发出数据更新消息。

步骤s4中,通过应用程序数据更新线程监听消息,同样可以接收消息队列,实时检测消息队列中是否有需要的消息。一旦监听到所述数据更新消息,便说明共享内存数据表内已经有需要的数据了,读取共享内存数据表内数据并将数据写入应用程序缓存区,并发送相应的写入信号给应用程序主进程。数据处理进程在数据转移至共享内存数据表之后,主动通知给应用程序数据更新线程,由其来将数据调入到应用程序缓存区中,避免由应用程序主动去dsp模块中查找需要的数据,处理效率更高。该应用程序数据更新线程可以是在应用程序初始化时创建并启动的。

应用程序数据更新线程监测由所述数据处理进程发送的消息,消息例如可以用来告知以下信息:数据更新同步、设备配置请求超时、通道(自动量程模式)量程切换、设备配置完成应答、原始采样数据更新等。

在步骤s5中,所述应用程序主进程根据应用程序数据更新线程发出的所述写入信号,调用相应的数据更新接口,以从应用程序缓存区获取数据。所述步骤s5中,数据更新接口从应用程序缓存区获取数据后,可以将数据推送至相应的测量模块,例如可以显示在相应的界面上。

在一个实施例中,应用程序改变配置时,将配置改变信息写入到共享内存配置表中并下发更新配置消息,及将更新配置信息保存在本地配置文件中(可以是仅改变的部分,也可以是改变后的完整配置信息)。所述数据处理更新线程监听到应用程序下发的配置消息后,根据消息类型识别出该配置信息,从共享内存配置表中读取对应的配置信息下发至所述测量仪器的测量板卡及dsp模块。

进一步的,所述测量仪器的测量板卡及dsp模块收到更新配置信息后分别重新采集、处理数据,处理方式可以与前述实施例相同,dsp模块会生成相应的socket消息,将socket消息发送至数据处理进程进行数据获取,后续处理流程与前述实施例中相同。

参看图3,关于数据处理进程、应用程序数据更新线程等进程或线程,共享内存管理模块、数据管理模块等模块及共享内存配置表、共享内存数据表等存储区,可以在设备的软硬件启动过程中来进行创建及启动,软硬件启动的对象可以是启动仪器及启动应用程序。

完成软硬件启动工作之后,设备处于正常工作状态。当应用程序改变测量参数、测量模式及其他配置时,将配置保存到本地配置文件中的同时,会主动调用应用程序同步配置到设备的接口将配置写入共享内存配置表中,并给步骤2创建的数据处理进程下发配置改变消息。步骤2判断下发配置的类型,从共享内存配置表中读取配置并下发给步骤3所述的dsp模块或者fpga。步骤3对测量数据的处理后,发送socket消息到步骤2所述的数据处理进程,步骤2对数据进行处理后发出数据更新消息,步骤4应用程序数据更新线程监测到该数据更新消息后进行数据更新,并根据消息类型发出相应的信号,触发步骤5所述应用程序主进程中与该信号连接的接口,实现对应用程序主进程相应测量模块的数据推送。

结合图2,以功率分析仪为例,进一步阐述测量仪器的数据交互处理方法,具体步骤如下:

1、功率分析仪处于工作状态,功率、电机等子板卡安装就位;

2、选择一台信号发生器作为测量对象,输出一个设定模拟电压电流的模拟数据,保证仪器数据采集模块功能正常;

3、启动功率分析仪,仪器会自动运行功率分析仪应用程序,应用程序在启动时启动数据处理进程,并判断数据处理进程是否启动成功,如果数据处理进程启动失败,则退出应用程序并提示错误信息;如果数据处理进程启动成功,则初始化ui界面、启动应用程序数据更新线程;

4、应用程序和数据处理进程在启动后使用相同的数据结构创建一份共享内存配置表和共享内存数据表;

5、应用程序改变配置(例如:改变量程)时,会将配置写到共享内存配置表中,并给数据处理进程下发配置消息,同时也将配置保存到本地配置文件中;

6、dsp模块或者fpga收到新的配置后,重新获取计算测量值并发送socket消息到数据处理进程,数据处理进程主动获取新的测量数据;数据处理进程获取到新的数据包后,首先对主板卡及功率、电机等子板卡数据包的标志号进行同步,同步成功后将测量数据保存到共享内存数据表中,并发送消息给应用程序;应用程序根据消息类型到共享内存中读取测量数据。

本发明还提供一种测量仪器的数据交互处理系统,包括硬件部分及软件部分;所述硬件部分包括测量仪器的测量板卡、应用程序所属模块及设置在所述测量仪器的测量板卡与应用程序所属模块之间的dsp模块;所述测量仪器的测量板卡用以根据配置信息采集数据,并将采集数据转发至所述dsp模块;所述dsp模块用以根据配置信息对数据进行处理后触发生成一socket消息;所述软件部分在所述应用程序所属模块运行时,包括以下的步骤:

应用程序主进程读取本地配置文件进行初始化,至少初始化共享内存管理模块,所述共享内存管理模块管理有共享内存数据表和共享内存配置表,根据配置文件初始化所述共享内存配置表;

通过数据处理进程读取配置信息并将配置信息下发至测量仪器的测量板卡及dsp模块,监听消息,一旦监听到socket消息,便根据判断将dsp模块处理的数据包同步转移至所述共享内存数据表内并发出数据更新消息;

通过应用程序数据更新线程监听消息,一旦监听到所述数据更新消息,便读取共享内存数据表内数据并将数据写入应用程序缓存区,并发送相应的写入信号给应用程序主进程;

所述应用程序主进程根据所述写入信号调用相应的数据更新接口,以从应用程序缓存区获取数据。

关于本发明的测量仪器的数据交互处理系统的具体内容可以参看前述实施例中关于测量仪器的数据交互处理方法部分的描述内容,在此不再赘述。

本发明虽然以较佳实施例公开如上,但其并不是用来限定权利要求,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1