一种面向多星并行的遥测数据判读引擎和判读方法与流程

文档序号:12824569阅读:174来源:国知局
一种面向多星并行的遥测数据判读引擎和判读方法与流程

本发明属于航天技术领域,尤其涉及一种面向多星并行的遥测数据判读引擎和判读方法。



背景技术:

卫星在综合测试过程中,会产生大量的遥测数据,对遥测数据判读是卫星研制过程中的一项重要工作,通过遥测数据判读可以发现遥测数据中的异常现象,暴露卫星在设计、研制过程中存在的缺陷,从而提高卫星的可靠性,保障卫星在轨稳定运行。

随着计算技术的发展,卫星遥测数据判读技术从纯人工判读发展到了以计算机自动判读为主,人工判读为辅的阶段。通常,一个自动化的遥测数据判读系统包括判读引擎、判读客户端、判读规则库、判读结论库等几个组成部分。判读引擎是遥测数据判读系统的核心组成部分,它的运行效率决定了数据判读系统的运行效率。并且,随着航天任务的增长,对卫星并行测试需求越来越迫切,如何实现对多颗卫星遥测数据的并行判读,并且保证数据判读效率是本领域技术人员亟需解决的问题。



技术实现要素:

本发明的技术解决问题:克服现有技术的不足,提供一种面向多星并行的遥测数据判读引擎和判读方法,实现了多颗卫星遥测数据的并行判读,提高了判读效率。

为了解决上述技术问题,本发明公开了一种面向多星并行的遥测数据判读引擎,包括:

规则加载模块,用于从判读规则库中加载判读规则到判读引擎中;

消息队列建立模块,用于建立二级消息队列;其中,所述二级消息队列包括:第一级队列和第二级队列;所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数;

索引建立模块,用于建立环形索引区;其中,所述环形索引区包括:用于存储遥测参数的参数列表和用于存储判读规则的规则列表;所述参数列表中存储的遥测参数与所述规则列表中存储的判读规则通过遥测参数标识和判读规则标识建立映射关系;

数据接收模块,用于实时接收来自各卫星的遥测数据,将接收到的遥测数据写入所述第一级队列;

解析分发模块,用于从所述第一级队列中读取已写入的遥测数据,并对读取的遥测数据进行解析,得到遥测参数;将解析得到的遥测参数按照对应的卫星标识,写入第二级队列的不同工作线程;

数据更新模块,用于从所述第二级队列的工作线程中读取待判读遥测参数,根据待判读遥测参数对环形索引区进行更新;

规则执行模块,用于从更新后的环形索引区中读取判读规则,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论。

在上述一种面向多星并行的遥测数据判读引擎中,还包括:

结论打包模块,用于将所述判读结论打包;

数据分发模块,用于将打包后的判读结论分发到各判读客户端。

在上述一种面向多星并行的遥测数据判读引擎中,所述数据更新模块,用于:从所述第二级队列的工作线程中读取待判读遥测参数;将所述待判读遥测参数更新至对应的参数列表中,并对所述规则列表中包含所述待判读遥测参数的所有判读规则进行更新。

在上述一种面向多星并行的遥测数据判读引擎中,所述规则执行模块,用于:从更新后的环形索引区中读取判读规则;判断所述读取的判读规则中是否唯一包含所述待判读遥测参数,若是,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论。

在上述一种面向多星并行的遥测数据判读引擎中,还包括:词法分析模块,用于对判读规则进行词法分析。

在上述一种面向多星并行的遥测数据判读引擎中,还包括:语法检查模块,用于对判读规则进行语法检查。

本发明还公开了一种面向多星并行的遥测数据判读方法,包括:

从判读规则库中加载判读规则到判读引擎中;

建立二级消息队列;其中,所述二级消息队列包括:第一级队列和第二级队列;所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数;

实时接收来自各卫星的遥测数据,将接收到的遥测数据写入所述第一级队列;

从所述第一级队列中读取已写入的遥测数据,并对读取的遥测数据进行解析,得到遥测参数;将解析得到的遥测参数按照对应的卫星标识,写入第二级队列的不同工作线程;

从所述第二级队列的工作线程中读取待判读遥测参数,根据待判读遥测参数对环形索引区进行更新;

从更新后的环形索引区中读取判读规则,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论;

将所述判读结论打包,并将打包后的判读结论分发到各判读客户端。

本发明具有以下优点:

本发明公开的面向多星并行的遥测数据判读引擎由规则加载模块、消息队列建立模块、索引建立模块、数据接收模块、解析分发模块、数据更新模块和规则执行模块组成。其中,所述二级消息队列包括:第一级队列和第二级队列;所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数;通过所述二级消息队列实现了对多颗卫星遥测数据的并行判读,判读引擎能够有效支持多颗卫星遥测数据并行判读工作。

其次,环形索引区包括一个参数列表和一个规则列表,参数列表中的每个参数指向一个包含该参数的规则列表,规则列表中的每个规则指向一个该规则包含的参数列表,形成一个环状的索引结构。通过所述环形索引区,可以快速完成判读规则的初始化和判读规则的状态检查以及执行工作,从而提高判读引擎运行效率。

附图说明

图1是本发明实施例中一种面向多星并行的遥测数据判读引擎的结构示意图;

图2是本发明实施例中一种二级消息队列的架构图;

图3是本发明实施例中一种环形索引区的结构示意图;

图4是本发明实施例中一种面向多星并行的遥测数据判读方法的步骤流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公共的实施方式作进一步详细描述。

参照图1,示出了本发明实施例中一种面向多星并行的遥测数据判读引擎的结构示意图。在本实施例中,所述面向多星并行的遥测数据判读引擎,包括:

规则加载模块101,用于从判读规则库中加载判读规则到判读引擎中。

消息队列建立模块102,用于建立二级消息队列。

在本实施例中,参照图2,示出了本发明实施例中一种二级消息队列的架构图。如图2,优选的,所述二级消息队列可以包括:第一级队列和第二级队列。所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数。也即,第一级队列用于缓存从不同卫星接收的遥测数据,第二级队列用于缓存同一颗卫星的遥测参数。优选的,每一颗卫星可以对应第二级队列下的一个工作线程。

索引建立模块103,用于建立环形索引区。

参照图3,示出了本发明实施例中一种环形索引区的结构示意图。如图3,所述环形索引区包括:用于存储遥测参数的参数列表和用于存储判读规则的规则列表;所述参数列表中存储的遥测参数与所述规则列表中存储的判读规则通过遥测参数标识和判读规则标识建立映射关系。也即,所述环形索引区包括一个参数列表和一个规则列表,参数列表中的每个参数指向一个包含该参数的规则列表,规则列表中的每个规则指向一个该规则包含的参数列表,形成一个环状的索引结构。其中,需要说明的是,图3中最左侧的参数列表和最右侧的规则列表中分别存储的是遥测参数的具体参数值和判读规则的具体内容。图3中虚线框中存储的是遥测参数的标识以及判读规则的标识。

数据接收模块104,用于实时接收来自各卫星的遥测数据,将接收到的遥测数据写入所述第一级队列。

如图2,数据接收模块104可以实时接收航天器a、b和n发送的遥测数据,并将接收的遥测数据(数据1、数据2、···数据n)依次写入第一级队列。

解析分发模块105,用于从所述第一级队列中读取已写入的遥测数据,并对读取的遥测数据进行解析,得到遥测参数;将解析得到的遥测参数按照对应的卫星标识,写入第二级队列的不同工作线程。

如图2,a001、a002、b001、b002、n001、n002等均是解析得到的遥测参数。其中,a001、a002对应的卫星标识所指示的卫星为航天器a,b001、b002对应的卫星标识所指示的卫星为航天器b,n001、n002对应的卫星标识所指示的卫星为航天器n,则在存储遥测参数时,可以将a001、a002等航天器a对应的遥测参数存储在工作线程a中,将b001、b002等航天器b对应的遥测参数存储在工作线程b中,将n001、n002等航天器a对应的遥测参数存储在工作线程n中。也即,在本实施例中,一个工作线程可以对应存储一个卫星的遥测参数。

其中,需要说明的是各个卫星对应的卫星标识可以采用任意一种适当的方式定义。例如,可以以8位字符作为各个卫星的卫星标识,由大写英文字母a-z和数字0-9组成,如abcd0001。

数据更新模块106,用于从所述第二级队列的工作线程中读取待判读遥测参数,根据待判读遥测参数对环形索引区进行更新。

在本实施例中,所述规则加载模块101从判读规则库中加载判读规则到判读引擎中具体可以是指,将判读规则加载到所述环形索引区的规则列表中。所述数据更新模块106对环形索引区的更新具体可以是指:从所述第二级队列的工作线程中读取待判读遥测参数;将所述待判读遥测参数更新至对应的参数列表中,并对所述规则列表中包含所述待判读遥测参数的所有判读规则进行更新。

规则执行模块107,用于从更新后的环形索引区中读取判读规则,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论。

在本实施例中,规则执行模块107可以从更新后的环形索引区中读取判读规则;判断所述读取的判读规则中是否唯一包含所述待判读遥测参数,若是,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论。具体的,规则执行模块107可以从环形索引区读取使用lua脚本编写的判读规则,调用开源的lua解释器执行判读规则,获得判读结论。

结论打包模块108,用于将所述判读结论打包。

数据分发模块109,用于将打包后的判读结论分发到各判读客户端。

在本发明的一优选实施例中,所述面向多星并行的遥测数据判读引擎还可以包括:

词法分析模块110,用于对判读规则进行词法分析。

在本实施例中,词法分析模块110在进行词法分析时具体可以包括:以空白字符(如,空格、换行字符等)为分隔符,将判读规则分割成单词;检查单词是否符合lua脚本词法,若不符合,则报错;若符合,则判断单词是否为遥测参数,若是,则将遥测参数加入环形索引区的参数列表中。

在本实施例中,遥测参数的组成规则可以为:8位卫星标识+4位参数类型编号+4位参数序号。其中,如前所述,卫星标识可以是由大写英文字母a-z和数字0-9组成8位字符;参数类型编号则可以是由四位大写英文字母组成;参数序号可以从0001开始编号,最大为9999。例如,参数abc00001dahe0020是一个正确的参数编号,卫星编号为abc00001,数据类型编号为dahe,0020是参数序号。

语法检查模块111,用于对判读规则进行语法检查。

在本实施例中,词法分析模块110在对判读规则进行语法检查时具体可以包括:调用lua语法检查器;将判读规则作为参数传递至lua语法检查器,获得检查结果;如果检查结果为错误,则报错;如果检查结果正确,则继续执行判读。

基于上述面向多星并行的遥测数据判读引擎的描述,在本实施例中,所述面向多星并行的遥测数据判读引擎的具体工作流程可以如下:

s1、判读引擎启动后,从判读规则库中加载判读规则到判读引擎中。

s2、对判读规则进行词法分析。

s3、对判读规则运行语法检查。

s4、在判读引擎内建立环形索引区。

s5、在判读引擎内建立二级消息队列。

s6、从不同卫星接收实时遥测数据并将遥测数据写入二级消息队列。

s7、从二级消息队列读取遥测数据,并将其对环形索引区的数据进行更新。

s8、从环形索引区中读取已经初始化完毕的判读规则,调用lua引擎执行判读规则,输出判读结论。

s9、将判读结论打包。

s10、将打包后的结论分发至各判读客户端。

综上所述,本发明公开的面向多星并行的遥测数据判读引擎由规则加载模块、消息队列建立模块、索引建立模块、数据接收模块、解析分发模块、数据更新模块和规则执行模块组成。其中,所述二级消息队列包括:第一级队列和第二级队列;所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数;通过所述二级消息队列实现了对多颗卫星遥测数据的并行判读,判读引擎能够有效支持多颗卫星遥测数据并行判读工作。

其次,环形索引区包括一个参数列表和一个规则列表,参数列表中的每个参数指向一个包含该参数的规则列表,规则列表中的每个规则指向一个该规则包含的参数列表,形成一个环状的索引结构。通过所述环形索引区,可以快速完成判读规则的初始化和判读规则的状态检查以及执行工作,从而提高判读引擎运行效率。

在上述装置实施例的基础上,本发明还公开了一种面向多星并行的遥测数据判读方法。参照图4,示出了本发明实施例中一种面向多星并行的遥测数据判读方法的步骤流程图。在本实施例中,所述面向多星并行的遥测数据判读方法,包括:

步骤401,从判读规则库中加载判读规则到判读引擎中。

步骤402,建立二级消息队列。

在本实施例中,所述消息二级队列包括:第一级队列和第二级队列;所述第二级队列包括一个或多个工作线程;不同的工作线程用于存储不同卫星的遥测参数。

步骤403,实时接收来自各卫星的遥测数据,将接收到的遥测数据写入所述第一级队列。

步骤404,从所述第一级队列中读取已写入的遥测数据,并对读取的遥测数据进行解析,得到遥测参数;将解析得到的遥测参数按照对应的卫星标识,写入第二级队列的不同工作线程。

步骤405,从所述第二级队列的工作线程中读取待判读遥测参数,根据待判读遥测参数对环形索引区进行更新。

步骤406,从更新后的环形索引区中读取判读规则,调用解释器执行读取的判读规则对所述待判读遥测参数进行判读,得到判读结论。

步骤407,将所述判读结论打包,并将打包后的判读结论分发到各判读客户端。

对于方法实施例而言,由于其与方法实施例相对应,所以描述的比较简单,相关之处参见装置实施例部分的说明即可。

本说明中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

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