CN104331278A - 一种用于arinc661规范的指令过滤方法和装置 - Google Patents
一种用于arinc661规范的指令过滤方法和装置 Download PDFInfo
- Publication number
- CN104331278A CN104331278A CN201410547233.3A CN201410547233A CN104331278A CN 104331278 A CN104331278 A CN 104331278A CN 201410547233 A CN201410547233 A CN 201410547233A CN 104331278 A CN104331278 A CN 104331278A
- Authority
- CN
- China
- Prior art keywords
- filtering
- expression
- node
- filter
- filtering rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种用于ARINC661规范的指令过滤方法和装置,该方法包括:设计过滤表达式;解释过滤表达式;执行过滤。本发明方法提取出了ARINC661指令块的特征属性,作为设计过滤规则的关键字,并设计了过滤表达式来组合过滤规则。在执行过滤的方法上,本发明方法设计了一种树形结构用于存储过滤规则,并基于它设计了计算过滤结果的方法,具有很好的执行效率。本发明实例提供的装置包括:过滤条件配置模块、过滤规则库模块、过滤表达式解释模块和过滤执行模块。其中,过滤条件配置模块用于辅助用户灵活地设计出过滤表达式;过滤规则库模块用于存储历史过滤表达式;过滤表达式解释模块和过滤执行模块用于执行本发明方法中的解释过滤表达式和执行过滤方法。
Description
技术领域
本发明涉及一种用于ARINC661规范的指令过滤方法和装置,特别涉及基于ARINC661规范的座舱显示系统中数据处理技术,属于航空领域的数据总线处理技术。
背景技术
随着综合航电系统的迅速发展,作为航电系统中重要组成部分的座舱显示系统也向着开放式构架发展,为适应这种发展趋势,ARINC661规范应运而生,并得到了迅速的发展。该规范将UA(User Applications,用户应用)的逻辑功能与CDS(Cockpit Display System,座舱显示系统)的画面生成功能相隔离,并为两者提供了标准化的接口。
CDS的画面显示内容是由DF(Definition File,定义文件)确定的,DF文件由UA定义,包含若干图层,而每个图层中又包含若干窗体部件,窗体部件是基本的显示图元。在运行阶段,CDS与UA之间的交互是通过一系列ARINC661协议规范的指令实现的。规范中共有五大类指令,其中,UA发往CDS的参数设置指令类,是最复杂的一类,本文的说明都是以它为例的。UA发往CDS的数据包是一种称之为“指令块”的数据,它打包了在同一个图层中的一些窗体部件的参数设置指令,而UA和CDS分别相当于指令块的源地址和目标地址。在UA和CDS进行指令交互时,一方面,需要对通信过程进行实时监控,这时往往需要针对来自某个UA(或者发往某个CDS)的指令进行监测,这就需要对总线中的指令进行过滤;另一方面,在事后的数据分析中,需要从指令数据库中针对性地搜索指令记录,为此需要对指令集进行过滤。因此,设计一种指令过滤的方法显得尤为重要,它能够筛选出符合条件的指令,例如在监控一号显示器时,只采集发往一号显示器的指令。
目前还没有针对基于ARINC661规范的指令过滤方法的专门研究,本发明从工程应用角度出发,设计了一种用于ARINC661规范的指令过滤方法和装置,既便于用户灵活地设计过滤表达式,又具有很高的执行效率。
发明内容
本发明所要解决的技术问题是提供一种用于ARINC661规范的指令过滤方法和装置,用于对基于ARINC661的座舱显示系统通信指令进行过滤和搜索。
本发明为解决上述技术问题采用以下技术方案:
一方面,本发明提供一种用于ARINC661规范的指令过滤方法,包括如下步骤:
步骤1,设计过滤表达式:提取ARINC661指令块的若干特征属性,将其作为过滤规则的关键字,并设计规范化的过滤表达式来描述过滤规则;
步骤2,解释过滤表达式:将步骤1中设计的过滤表达式解释成一种树形数据结构,过滤表达式中所有过滤规则均存储在树形数据结构的树结点中;
步骤3,执行过滤:根据ARINC661规范对待过滤指令块进行协议解析,读取待过滤指令块的特征属性值,并与步骤2中得到的树形数据结构中对应的过滤规则进行匹配,计算过滤表达式的值,即为过滤的结果。
作为本发明的进一步优化方案,步骤1中所述特征属性包括消息号、用户应用ID号、图层ID号、窗体部件ID号、指令类型号,并分别用字母M、U、L、W、P作为它们的变量。
作为本发明的进一步优化方案,步骤1中所述过滤表达式由至少一个基本过滤表达式构成,且符合如下自定义规范:
(1)定义关键字集合A={M、U、L、W、P},定义关键字的层次关系:M>U>L>W>P,表示关键字层次的高低;
(2)定义运算符集合B={“()”、“=”、“&”、“|”},定义运算符的优先级关系:“()”>“=”>“&”>“|”,表示运算符在表达式中相继出现时计算的优先级;
(3)定义“Var=Value”为基本过滤表达式,表示一条过滤规则,其中,Var为关键字集合A中任一元素;Value为Var的过滤值;运算符“=”用于比较已经赋值的Var和Value是否相等,其运算结果为表达式的布尔值;
(4)若过滤表达式由至少两个基本过滤表达式组合而成时,基本过滤表达式通过运算符“()、&、|”进行组合,其中:
a.运算符“&”用于计算两个表达式的布尔值的逻辑与;
b.运算符“|”用于计算两个表达式的布尔值的逻辑或;
c.运算符“()”用于改变运算优先级,“()”内的表达式具有最高优先级;
(5)定义“或运算交换律”,与四则运算中的交换律一致;定义“与运算分配律”,与与四则运算中的分配律一致;定义“与运算约束”,进行与运算的两个表达式,左侧表达式中关键字层次高于右侧的。
作为本发明的进一步优化方案,步骤2中过滤表达式解释成一种树形数据结构,具体为:树形数据结构的树结点具有层次性,每个树结点中存放一条过滤规则;树结点按照关键字的层次高低分布在树的各层,即关键字为M的过滤规则的结点在树的第一层,关键字为P的过滤规则的结点在第五层;树结点间的连接关系表示对应过滤规则在过滤表达式中的运算关系,其中,与运算表示父子关系,或运算表示兄弟关系。
作为本发明的进一步优化方案,当树形结构中缺少某个关键字的过滤规则的结点即缺项,并引起树形结构的层次性被破坏时,则通过以下方法来保持树形结构的层次性:
(1)、定义一种“代沟”结点,用于填补树形结构中的缺项,其本身不含有过滤规则,只具有和缺项相同层次;
(2)、用“代沟”结点补上缺项在树结构中的位置,以保证树的层次性。
作为本发明的进一步优化方案,计算过滤表达式的值的具体方法如下:
(a)、使用一个先进先出的辅助队列,用于存放待匹配规则的树结点,采用关键字为M的过滤规则初始化树第一层的结点入队,若树为空,转(f);
(b)、选取待过滤指令块的消息号作为待匹配的特征属性;
(c)、若队列为空,转(e);否则,队首结点出队,若结点中过滤规则的关键字不是待匹配特征属性,转(d);否则,将待匹配特征属性的值与结点中的过滤规则匹配,如果该结点是“代沟”结点,则匹配结果为true;否则,将特征属性值与过滤规则中的过滤值比较,若相等则匹配结果为true,否则匹配结果为false;如果匹配结果为true,将该结点的孩子结点都入队,若该结点没有孩子结点,转(f);当前过滤规则匹配结束,与队列中下一条过滤规则匹配,转(c);
(d)、按特征属性的层次高低,选取待过滤指令块的下一个特征属性作为待匹配的特征属性,转(c)。如果所有特征属性都匹配完成,转(e);
(e)、过滤表达式的值为false,结束;
(f)、过滤表达式的值为true,结束。
另一方面,本发明还提供一种用于ARINC661规范的指令过滤装置,包括过滤规则库模块、过滤规则配置模块、过滤表达式解释模块和过滤执行模块,其中,
所述过滤规则库模块,用于存储历史过滤表达式;
所述过滤规则配置模块,用于用户操作生成的过滤表达式,包括座舱显示器配置单元、用户应用配置单元、指令类型配置单元、过滤表达式编辑单元、过滤规则库连接单元;
座舱显示器配置单元,用于自动配置座舱显示系统显示器对应的消息号的过滤规则,提供给用户对座舱显示器的选择,并利用导入的配置文件,把选择的座舱显示器生成以消息号为关键字的过滤规则;
用户应用配置单元,用于自动配置用户应用ID号、图层ID号和窗体部件ID号的过滤规则,并利用XML格式DF文件导入生成的定义文件名称表,提供给用户对用户应用、图层、窗体部件三者名称的选择,再生成名称所对应的用户应用ID号、图层ID号、窗体部件ID号的过滤规则;
指令类型配置单元,用于自动配置作用于窗体部件的指令类型,提供给用户对指令类型名称的选择,再生成名称所对应的指令类型号的过滤规则;
过滤表达式编辑单元,用于用户根据过滤表达式规则自行编写过滤表达式,或者组合和编辑上述三个配置单元得到的过滤规则、过滤规则库中导入的过滤表达式,以得到新的过滤表达式;
过滤规则库连接单元,用于连接过滤规则库模块和过滤表达式编辑单元,将过滤表达式编辑单元生成的过滤表达式导入到过滤规则库中进行保存,或者将保存在过滤规则库中的过滤表达式导出到过滤表达式编辑单元;
所述过滤表达式解释模块,用于将过滤规则配置模块输出的过滤表达式解释成一种树形数据结构;
所述过滤执行模块,用于根据过滤表达式解释模块得到的树形数据结构,对待过滤指令块进行过滤,并输出过滤结果,包括:
数据解析单元,用于根据ARINC661规范对待过滤指令块进行协议解析,读取其中的特征属性值;
规则匹配单元,用于将读取的特征属性值与树形数据结构中的树结点中的规则匹配,并计算整个过滤表达式匹配结果。
作为本发明的进一步优化方案,所述过滤规则库连接单元中,导入导出过滤表达式采用SQL语句对过滤规则库进行读写。
本发明所采用的技术方案与现有技术相比,具有以下效果:
本发明设计了一种用于ARINC661规范的指令过滤方法和装置,通过提取出ARINC661指令块的特征属性作为设计过滤规则的关键字,并设计了过滤表达式来组合过滤规则。这种过滤表达式符合自定义的规范,能够表示各种针对特征属性的过滤功能,并能够被灵活地配置出来。在执行过滤的方法上,本发明方法设计了一种树形结构用于存储过滤表达式,并基于它设计了计算过滤结果的方法,具有很好的执行效率。
附图说明
图1为本发明提供的一种用于ARINC661规范的指令过滤方法的流程图。
图2为使用经典算术表达式的二叉树表示法表示本发明的过滤表达式的树形图示例。
图3为本发明设计的树形结构的创建示例,其中,(a)为M=1&U=1的创建示例;(b)为M=1|M=2的创建示例;(c)为M=1&U=1&L=1|M=2&U=2|M=3与W=2&P=2|W=3的创建示例。
图4为本发明设计的添加代沟结点的树形结构的创建示例,其中,(a)为M=1&U=1的创建示例;(b)为M=1|M=2的创建示例;(c)为M=1&U=1&L=1|M=2&U=2|M=3与W=2&P=2|W=3的创建示例。
图5为对树形结构结点进行编号示例。
图6为执行过滤时指令块与树形结构中过滤规则的匹配结果示例。
图7为执行过滤时另一指令块与树形结构中过滤规则的匹配结果示例。
图8为本发明设计的一种基于ARINC661规范的指令过滤装置的结构图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明涉及到的本领域常用技术术语,如下表所示;
技术术语 | 英文 | 中文 |
UA | User Applications | 用户应用 |
CDS | Cockpit Display System | 座舱显示系统 |
DF | Define File | 定义文件 |
本发明涉及到的所有英文术语可参考ARINC661规范中的定义。
本发明提供了一种用于ARINC661规范的指令过滤方法和装置,用于对基于ARINC661的座舱显示系统中通信指令进行过滤和搜索。
如图1所示,本发明设计一种用于ARINC661规范的指令过滤方法,包括如下步骤:
步骤1,设计过滤表达式:提取ARINC661指令块的若干特征属性,将其作为过滤规则的关键字,并设计规范化的过滤表达式来描述过滤规则;
步骤2,解释过滤表达式:将步骤1中设计的过滤表达式解释成一种树形数据结构,过滤表达式中所有过滤规则均存储在树形数据结构的树结点中;
步骤3,执行过滤:根据ARINC661规范对待过滤指令块进行协议解析,读取待过滤指令块的特征属性值,并与步骤2中得到的树形数据结构中对应的过滤规则进行匹配,计算过滤表达式的值,即为过滤的结果。
对于步骤1,在设计过滤表达式时,首先选择某个特征属性并设置它的过滤值,以配置一条过滤规则,也就是基本过滤表达式Var=Value,其中,Var为该特征属性对应的关键字,Value为Var的过滤值;然后,用运算符将多个过滤规则组合成一个复杂的过滤表达式。
下面结合具体例子说明:
基本过滤表达式代表一条过滤规则,如:M=1,表示“允许通过消息号为1的指令块”(消息号对应于指令送往的目的CDS,后面的叙述中用“发往1号显示器”代指“消息号为1”)。在执行过滤时,M被赋予待过滤指令块的消息号,并与过滤值“1”比较,如果相等,表达式值为true,否则为false。结合实际应用,过滤规则中只有“=”,没有“<、>”等关系运算符。
过滤表达式可以通过运算符进行连接得到新的过滤表达式,如:M=1&U=1&L=2&W=4&P=2,表示“允许通过的指令块中包含从1号UA发往1号显示器,作用于2号图层中的4号窗体部件,类型号为1的指令”。
上面的表达式中,各个过滤规则通过“与”关系运算符连接,根据过滤表达式规范,需要满足“与运算约束”,即高层次关键字出现在前面。
过滤表达式规范中的层次关系是根据关键字的意义确定的,它是一种包含关系。具体地说,一个CDS可以包含多个UA(的DF文件),一个UA可以包含多个图层,一个图层可以包含多个窗体部件,一个窗体部件具有多种可作用于它的指令类型。例如:U=1&L=2,表示“允许通过的指令块来自1号UA,作用于该UA中的2号图层”。如果颠倒它们的次序:L=2&U=1,是解释不通的,因而有“与运算约束”。
“与”运算符连接的过滤表达式中可以是层次不相邻的两个关键字,此时视为对中间所缺的关键字的匹配结果为布尔值true,即总是匹配通过,比如:M=1&L=2,缺少了关键字U,它表示“允许通过的指令块发往1号显示器,可以来自任何UA,只要指令块作用的是2号图层”。
过滤表达式可以用“或”关系运算符连接,它是一种“二者符合其一即可”的连接关系,如:M=1|M=2,表示“允许通过的指令块发往1号显示器,或者2号显示器”。“或”运算符连接的过滤表达式两边可以是两个复杂表达式。如:M=1&U=1|U=2&L=3,由于运算符“&”的优先级高于“|”,它表示“允许通过的指令块发往1号显示器来自1号UA,或者(发往任何显示器)来自2号UA且作用在3号图层”。
过滤表达式中可以使用括号运算符,以改变运算的优先。例如对上例的过滤表达式加括号:M=1&(U=1|U=2)&L=3,则它表示“允许通过的指令块发往1号显示器,来自1号或者2号UA,且作用在3号图层”。
过滤表达式规范规定了运算符的优先级:“()”>“=”>“&”>“|”,其中,“=”是基本过滤表达式的组成元素,其出现的位置是确定的,而其他运算符是用于连接过滤表达式的。因此,下面讨论的运算优先关系是表达式中各个子表达式的值之间的运算先后关系,即“()”>“&”>“|”。
上述运算优先关系满足“与运算分配率”,它类似于四则运算的分配律,将“&”看做乘法,“|”看成加法,即(Exp1|Exp2)&Exp3等价于(Exp1&Exp3|Exp2&Exp3)。
上述运算优先关系满足“或运算交换律”,但“与”运算不能交换,这是因为“与运算约束”的作用。
任何过滤表达式,通过“与运算分配率”脱去括号后,应该满足“与运算约束”。如:M=1&(U=1|U=2&L=3)&W=1,等价于M=1&U=1&W=1|M=1&U=2&L=3&W=1,满足“与运算约束”。
对于步骤2,所述解释过滤表达式,是为了将字符串形式的过滤表达式解释成一种树形数据结构,以便于过滤的执行。这种树形结构可以借鉴经典的算术表达式的二叉树表示法,本发明设计了另外一种树形结构,具有更高的过滤执行效率。
作为比较,下面首先介绍使用经典的算术表达式的二叉树表示法来表示本发明中的过滤表达式:
类似于经典算术表达式的二叉树表示法的递归定义,本发明中的过滤表达式的二叉树表示法的递归定义如下:
(1)、若表达式为基本过滤表达式“Var=Value”,则相应二叉树中仅有一个根节点,其数据域存放该表达式的信息;
(2)、若表达式=(第一操作数)(运算符)(第二操作数),则相应二叉树中以左子树表示第一操作数,右子树表示第二操作数;根节点数据域存放运算符。操作数本身又为表达式。
例如,过滤表达式(M=1|M=2&(U=1|U=2))|M=3&U=3的二叉树表示法如图2所示。
执行过滤时,首先待过滤指令块的所有特征属性依次与各个结点中的过滤规则“对比”,如果过滤规则是以此特征属性为关键字的,则进行匹配,以计算出各个结点的布尔值;然后,计算整个过滤表达式的值:后序遍历二叉树的序列为M1、M2、U1、U2、|、&、|、M3、U3、&、|(M1表示规则M=1的匹配结果的布尔值),设置一个数据栈,在遍历过程中操作数依次入栈,如果遇到操作符,则弹出两个操作数进行运算,将操作结果入栈,最后栈里唯一的数是表达式的值。
经典的二叉树表示法用在本文所设计的过滤表达式中,它缺陷体现在过滤执行中:
(1)查找结点效率低下。如果在匹配每一个字段都进行全树遍历的话,是非常低效的。一种解决方法是,考虑建立一个hash表来索引各个树结点。
(2)表达式值的累赘计算。在布尔运算中,存在“布尔短路”规律:一个或运算中只要有一个操作数为真,则表达式值为真;一个与运算中,只要有一个操作数为假,则表达式值为假。这就是说,如果计算过程中可以提前确定表达式的值,后面的计算可以忽略。例如,一个特征属性为“M=1,U=1,L=1”的指令块,在与上例的过滤表达式匹配和求值的过程中,第一步与“M=1”规则匹配时就已经确定表达式的值为真,而继续执行其他条件匹配的运算是累赘的。
本发明设计了一种改进树形结构,用于表示过滤表达式的树形结构,它的递归定义如下:
(1)若过滤表达式即为基本过滤表达式,则用一个树结点表示它的树形结构,该结点既是根结点又是叶子结点,其数据域存放该基本过滤表达式的信息;
(2)若过滤表达式由至少两个基本过滤表达式组合而成时,若运算符为“&”,则为运算符“&”左侧表达式的树形结构中每个叶子结点复制一份右侧表达式的树形结构,并使复制得到的树形结构的根结点作为左侧表达式树形结构中叶子结点的孩子;若运算符为“|”,则为运算符“&”左侧表达式的树形结构中每个叶子结点复制一份右侧表达式的树形结构,并使复制得到的树形结构的根结点作为左侧表达式树形结构中根结点的兄弟。
本发明设计的树形结构的特点在于:首先,考虑到表达式的运算只有“与、或”两种,因此,用结点间的连接关系(父子、兄弟关系)就可以表示它们,而不需要运算符结点;其次,树结构中的树结点具有层次性,包含这些过滤规则的树结点按关键字的层次高低分布在树的各层,即包含关键字M的结点在树的第一层,包含关键字P的结点在第五层。这样,具有父子关系的结点,它们包含的过滤规则关键字层次差为“1”,具有兄弟关系的结点,它们包含的过滤规则关键字层次差为“0”。本文以孩子兄弟表示法作为树的存储结构进行说明,但是本发明不局限于这种实现方法,诸如孩子双亲表示法等都是可以实现的。
树结点的数据结构定义如下:
树结点TreeNode中,用firstchild、nextsibling连接其孩子、兄弟结点,ExpInfo中保存了过滤规则的信息。
下面给出树形结构的创建示例,如图3所示,虚线箭头表示对应运算符的作用效果:
(1)、M=1&U=1,如图3中(a)所示,第一操作数为M1,第二操作数为U1,U1作为M1的孩子结点(M1表示M=1的树形结构的根结点)。
(2)、M=1|M=2,如图3中(b)所示,M2作为M1的兄弟结点。
(3)、M=1&U=1&L=1|M=2&U=2|M=3与W=2&P=2|W=3进行&操作(暂不考虑添加“代沟”结点),如图3中(c)所示,这个过程可能出现在某一表达式的树形结构创建过程中,运算式为(M=1&U=1&L=1|M=2&U=2|M=3)&(W=2&P=2|W=3),记W=2&P=2|W=3为X,根据“与运算分配率”,上面的运算式等价于:M=1&U=1&L=1&X|M=2&U=2&X|M=3&X,对应树的创建过程为:创建三份第二操作数X的副本作为第一操作数叶子结点的孩子结点,这些叶子结点是L=1、U=2、M=3对应的结点。
当过滤表达式中缺少某个关键字的规则而引起对应树结构的层次性被破坏时,可以通过填补所缺失关键字规则的树结点来保持树结构的层次性。具体方法是:
(1)、定义一种“代沟”结点,用于填补树中的缺项,其本身不含有过滤规则的信息,只具有和缺项相同层次;
(2)、用“代沟”结点补上缺项在树结构中的位置,以保证树的层次性。
下面给出使用“代沟”结点填补缺项的示例,如图4所示,“”表示“代沟”结点:
(1)、M=1&L=1,如图4中(a)所示,填补缺项“U”的“代沟”结点,则父子结点的层次差都为1。
(2)、M=1|U=2,如图4中(b)所示,填补“或”运算符右边表达式的缺项“M”的“代沟”结点,并成为左边表达式结点M1的兄弟结点,层次差为0。
(3)、M=1&U=1&L=1|M=2&U=2|M=3与W=2&P=2|W=3进行&操作,如图4中(c)所示,两个没有缺项的操作数在“与”运算后产生缺项:结点U2与W2成为父子结点,层次差为2;结点M3与W2成为父子结点,层次差为3。则对于前者,需要在W2上填补上关键字为L的“代沟”结点,新的树结构的根再作为U2的孩子结点;后者则需要填补上关键字为L、U的两个“代沟”结点。
本发明提供的解析字符串形式的过滤表达式的算法如下:
步骤201:使用两个先进后出的辅助工作栈,一个叫OPTR,用于寄存运算符;另一个叫OPND,用于寄存操作数和运算结果。置OPND为空,OPTR栈底为起止标识符‘#’。op1表示OPTR栈顶的运算符,op2表示读取表达式字符串时遇到的运算符。
步骤202:依次读入表达式中各个字符。若是操作数则创建一个树结点,将此结点根入OPND栈;若是运算符op2则和OPTR栈顶元素op1比较优先级后作相应操作:如果op1<op2,op2入OPTR栈;如果op1=op2,则它们是一对括号,脱去;如果op1>op2,op1出栈,从OPND出栈两个操作数执行op1操作,得到的结果入OPND栈,op2继续和栈顶元素比较优先级。
上述算法中,读表达式字符串的方法是:每个基本表达式被当做一个操作数,读到变量字符时,继续读下一个字符并判断是否‘=’运算符,如果否,则出错;如果是,继续读下一个字符并判断是否是数字,如果否,则出错。接着,依次读完所有数字,每次读一个数字都将前一个数值乘以10加上当前数字作为新的数值,最后得到过滤值。运算结果是两个操作数运算后新的树形结构,保存在OPND栈的是树的根。
上述算法中,运算符的优先级关系如下表所示,特别地,优先级相等表示左右括号相遇则脱去,起止符号相遇则运算结束。感叹号表示错误,不允许先后出现的情况。
上述算法中,从OPND栈中出栈两个操作数执行与、或操作的方法分别是:
(1)、A|B或运算操作:B的根结点成为A的根结点的兄弟。以A的根结点为起点走到它最后一个兄弟结点p,将B的根结点作为p的下一个兄弟结点。如果A与B的层次不相等,则存在缺项,需要添加“代沟”结点作为B的根结点的父结点,得到新的Bˊ,再执行或操作;
(2)、A&B与运算操作:A的所有叶子结点都把一个B的副本作为子树。以A的根结点为起点遍历A,用队列或者栈保存所有叶子结点Ai,然后,依次创建B的副本Bi作为Ai的第一个孩子结点。如果Ai与Bi的层次差不为1,则存在缺项,需要添加“代沟”结点作为Bi的根结点的父结点,得到新的Biˊ,再执行与操作。
上述创建B的副本的过程为:
(1)、拷贝根结点;
(2)、如果根下面的子树非空,则递归完成对子树创建副本;
(3)、如果根后面的兄弟结点非空,则对其用步骤(1)、(2)完成创建副本。
下面以过滤表达式M=123&(U=1|U=2)&L=1为例,介绍其树结构的创建过程如下(初始化时,OPND空,OPTR:#):
(1)、从左开始读表达式字符串的每个字符,首先,读到字符“M”,保存在继续读下一个字符是“=”,继续读下一个字符数字“1”,保存在变量Value,读完后面所有数字,并将上一个Value乘以10加上当前数字,作为新的Value,最后得到Value为123。至此,读完了一个操作数,创建一个树结点,保存过滤规则“M=123”,结点入OPND栈,OPND:M123;
(2)、读下一个字符,为运算符“&”,与OPTR栈顶元素比较,“#”<“&”,则“&”入栈,OPTR:#、&;
(3)、读下一个字符,为“(”,与OPTR栈顶元素比较,“&”<“(”,则“(”入栈,OPTR:#、&、(;
(4)、读下一个字符,是“U”,用(1)的方法读完“U=1”,创建结点并入栈,OPND:M123、U1;
(5)、读下一个字符,是“|”,与OPTR栈顶元素比较,“(”<“|”,则“|”入栈,OPTR:#、&、(、|;
(6)、读下一个字符,是“U”,用(1)的方法读完“U=2”,创建结点并入栈,OPND:M123、U1、U2;
(7)、读下一个字符,是“)”,与OPTR栈顶元素比较,“|”>“)”,栈顶运算符优先级高,则“|”出栈,从OPND出栈两个操作数U1、U2,并执行“|”运算,记结果为U1|U2,入OPND栈,OPND:M123、U1|U2,OPTR:#、&、(;
(8)、当前运算符“)”继续和栈顶元素比较,“(”=“)”,脱去括号。
(9)、读下一个字符,是“&”,与OPTR栈顶元素比较,“&”>“&”,栈顶运算符“&”优先级高,则“&”出栈,从OPND出栈两个操作数M123、U1|U2,并执行“&”运算,记结果为MU=M123&(U1|U2),入OPND栈,OPND:MU,OPTR:#;
(10)、当前运算“&”继续和栈顶元素比较,“#”<“&”,则“&”入栈,OPTR:#、&;
(11)、读下一个字符,是“L”,用(1)的方法读完“L=1”,创建结点并入栈,OPND:MU、L1;
(12)、读下一个字符,是结束符“#”,与OPTR栈顶元素比较,“&”>“#”,栈顶运算符优先级高,则“&”出栈,从OPND出栈两个操作数MU、L1,并执行“&”运算,记结果为MUL=MU&L1,入OPND栈,OPND:MUL,OPTR:#;
(13)、当前运算“#”继续和栈顶元素比较,“#”=“#”,运算过程结束,OPND中的唯一运算结果是最终的树结构。
上面的树创建过程中,U1与U2进行“|”运算得到U1|U2的具体过程是,U2结点作为U1结点的兄弟结点,得到新的以U1结点为根的树结构。如果参与“|”运算的是两个具有多个结点的树结构,则同样地使它们的根结点成为兄弟结点。
上面的结构树创建过程中,MU与L1进行“&”运算得到MUL的具体过程是,创建L1的两个副本L11ˊ,L12ˊ,分别作为MU的两个叶子结点U1、U2的孩子子结点。如果第二操作数是一个具有多个结点的树结构,则按照本发明方法提供的创建副本的递归方法,创建若干第二操作数的树结构副本,再使它们的根结点成为第一操作数叶子结点的孩子结点。
在树创建过程中,如果出现连接孩子结点而层次差不为1、连接兄弟结点而层次差不为0的情况时,则按本发明方法提供的添加“代沟”结点的方法进行操作。
在步骤3中,执行过滤的方法是通过计算过滤表达式的值来确定匹配的结果:
(a)、使用一个辅助队列,用于存放待匹配规则的树结点,初始化将树第一层的结点(关键字为M的过滤规则)入队,若树为空,转(f);
(b)、选取待过滤指令块的消息号作为待匹配的特征属性;
(c)、若队列为空,转(e);否则,队首结点出队,若结点中过滤规则的关键字不是待匹配特征属性,转(d);否则,将待匹配特征属性的值与结点中的过滤规则匹配,如果该结点是“代沟”结点,则匹配结果为true;否则,将特征属性值与过滤规则中的过滤值比较,若相等则匹配结果为true,否则匹配结果为false。如果匹配结果为true,将该结点的孩子结点都入队,若该结点没有孩子结点,转(f)。当前过滤规则匹配结束,与队列中下一条过滤规则匹配,转(c);
(d)、按特征属性的层次高低,选取待过滤指令块的下一个特征属性作为待匹配的特征属性,转(c)。如果所有特征属性都匹配完成,转(e);
(e)、过滤表达式的值为false,结束。
(f)、过滤表达式的值为true,结束。
下面仍以(M=1&U=1&L=1|M=2&U=2|M=3)&(W=2&P=2|W=3),进行过滤执行的示例说明,为了方便说明对树中结点进行了编号,如图5所示。
一个属性为“M=2,U=2,L=2,W=3,P=2”的指令块的匹配过程如下:
(1)1、2、3号结点入队;
(2)1号结点出队,其匹配结果为false,忽略它的子树的值;
(3)2号结点出队,其匹配结果为true,孩子结点入队,即5号结点入队;
(4)3号结点出队,其匹配结果为false,忽略它的子树的值;
(5)5号结点出队,结果为true,8号结点入队;
(6)8号结点出队,由于它是“代沟”节点,结果总为true,12、13号结点入队;
(7)12号结点出队,结果为false,忽略它的子树的值;
(8)13号结点出队,结果为true,且它是叶子结点,则整个过滤表达式值为true,匹配结果是通过,结束。
参与匹配的结点如图6所示,实心的编号代表该结点匹配结果为true。可以发现:当表达式值为true时,则存在一条纵向连接,在这条连接线上的结点,要么自身的匹配结果为true,要么它有兄弟结点匹配结果为true。在本例中,这条纵向连接为2-5-8-12,其中12号结点本身的匹配结果为false,但其兄弟结点13为true。过滤执行时,正是这样确定树的值,而避免了累赘的计算。
将上述指令的属性改为“M=2,U=2,L=2,W=2,P=3”,则整个匹配过程到最后都没有出现匹配结果为true的叶子结点,所以树的值为false,匹配结果为不通过。参与匹配的结点如图7所示,图中不能找到上述的纵向连接,所有的纵向连接都终止于匹配结果为false的结点,所以树的值为false。
上面的过滤执行方法解决了使用经典二叉树表达法时带来的执行效率低下的问题:
(1)无需查找结点,因为相同关键字的规则分布在树的同一层,且通过兄弟关系连接。
(2)表达式值的计算过程没有累赘计算。如果某结点的匹配结果为false,根据与运算的特点,不需要对它的子树进行匹配。如果某结点的匹配结果为true且是叶子结点,根据或运算的特点,已经确定表达式值为true,则计算结束。
本发明还提供了一种基于ARINC661规范的指令过滤装置,如图8所示,包括过滤规则配置模块、过滤规则库模块、过滤表达式解释模块和过滤执行模块。
所述过滤规则库模块,用于存储历史过滤表达式。它使用数据库来存储,数据表中的项除了表达式本身,还包括对它的描述、上次使用的使用的时间,它们在表达式导入时产生,并随着表达式一起导出,以便于用户记忆和使用历史过滤表达式;
所述过滤规则配置模块,用于用户操作生成的过滤表达式,包括:
CDS配置单元,用于自动配置CDS对应的消息号的过滤规则,提供给用户对CDS的选择,并利用导入的配置文件,生成以消息号为关键字的过滤规则。其中,配置文件用来描述CDS与消息号之间的对应关系,当用户需要过滤发往某个CDS的指令时,只需通过该配置单元选择目标CDS,就能得到对应的以消息号为关键字的过滤规则;
UA配置单元,用于自动配置用户应用ID号、图层ID号和窗体部件ID号的过滤规则,并利用XML格式DF文件导入生成的DF文件名称表,提供给用户对用户应用、图层、窗体部件三者名称的选择,再生成名称所对应的用户应用ID号、图层ID号、窗体部件ID号的过滤规则。其中,DF文件名称表保存了文件中用户应用ID号、图层ID号、窗体部件ID号与其名称的映射,通过导入XML格式的DF文件生成。配置单元按照DF文件的结构,用树形控件将名称表显示给用户,多个DF文件的名称表用标签控件组织树形控件。用户根据树形控件结点显示的名称进行选择,就能得到对应的以用户应用ID号、图层ID号、窗体部件ID号为关键字的过滤规则。相对于难以理解和记忆的用户应用ID号、图层ID号、窗体部件ID号,它们的名称更利于用户配置过滤规则;
指令类型配置单元,用于自动配置作用于窗体部件的指令类型,提供给用户对指令类型名称的选择,再生成名称所对应的指令类型号的过滤规则。它将ARINC661规范中一百多种指令类型的名称用列表控件提供给用户,并根据用户的选择生成对应的以指令类型号为关键字的过滤规则。相对于难以理解和记忆的指令类型号,它们的名称更利于用户配置过滤规则;
过滤表达式编辑单元,用于用户根据过滤表达式规则自行编写过滤表达式,或者使用该配置单元提供的表示“&、|、()”的按钮组合和编辑过滤表达式,以得到新的过滤表达式。过滤表达式可以是上述三个配置单元生成的过滤规则,或者从过滤规则库中导入的过滤表达式;
过滤规则库连接单元,用于连接过滤规则库模块和过滤表达式编辑单元,将过滤表达式编辑单元生成的过滤表达式导入到过滤规则库中进行保存,或者将保存在过滤规则库中的过滤表达式导出到过滤表达式编辑单元。其中,导入导出过滤表达式的方法是,用SQL语句对过滤规则库进行读写;
所述过滤表达式解释模块,用于将过滤规则配置模块输出的过滤表达式解释成一种树形数据结构;
所述过滤执行模块,用于根据过滤表达式解释模块得到的树形数据结构,对待过滤指令块进行过滤,并输出过滤结果,包括:
数据解析单元,用于根据ARINC661规范对待过滤指令块进行协议解析,读取其中的特征属性值;
规则匹配单元,用于将读取的特征属性值与树形数据结构中的树结点中的规则匹配,并计算整个过滤表达式的值,作为匹配结果。
下面通过具体实施例,对本发明设计的装置进行具体说明:
CDS配置单元,用于自动配置目的CDS显示器的过滤规则,即关键字为“M”的过滤规则。由于ARINC661规范没有规定UA与CDS的通信方式,所有指令块结构本身不包含“CDS号”这类目的地信息,而由具体的通信实现方式来确定指令块发送的目的地。本文以光纤通信为例,使用消息号来表示指令的目的地,对于其他通信方式,只需修改M代表的内容为对应通信方式中表示目的地的概念。配置表用于描述每个CDS对应的目的地址,本例中光纤通信配置表描述了每个CDS对应的消息号。此配置单元的作用就是,当用户需要配置“指令块的目的地为某台座舱显示器”的过滤规则时,用户只需选择此配置单元提供的具有各个显示器名称的按键,而此配置单元利用导入的配置表,自动生成以消息号M为关键字的过滤规则。例如,当用户选择“平视显示器”,配置单元会生成“M=1”的过滤规则,假设“1”是配置表中平视显示器对应的消息号。
UA配置单元,用于自动配置用户应用ID号、图层ID号和窗体部件ID号的过滤规则,即关键字为“U、L、W”的过滤规则。此配置单元利用了XML格式的DF文件,将它导入、解释得到DF文件名称表,DF文件名称表保存了文件中用户应用ID号、图层ID号、窗体部件ID号与其名称的映射。配置单元按照DF文件的结构,用树形控件将名称表显示给用户,多个DF文件的名称表用标签控件组织树形控件。用户根据树形控件结点显示的名称进行选择,就能得到对应的以用户应用ID号、图层ID号、窗体部件ID号为关键字的过滤规则。例如,当用户依次在控件上选择“油箱UA、油箱指示图层、油量标签”,配置单元会生成“U=1&L=1&W=1”的过滤规则。相对于难以理解和记忆的用户应用ID号、图层ID号、窗体部件ID号,它们的名称更利于用户配置过滤规则。
指令类型配置单元,用于自动配置作用于窗体部件的指令类型,即关键字为“P”的过滤规则。ARINC661规范共有一百多种指令类型,每种指令类型都有一个名称和类型号,例如设置可见性的指令名称为“A661_VISIBLE”,它的类型号十进制值为46384。配置单元提供给用户所有指令类型名称的列表,这样用户只需选择列表中项,配置单元自动生成类似“P=46384”的过滤规则。相对于提供难以理解和记忆的类型号值选择,配置单元利用指令类型名称列表更便于用户使用。
过滤表达式编辑单元,用于操作人员根据过滤表达式规则自己编写过滤表达式,或者使用该配置单元提供的表示“&、|、()”的按钮,组合和编辑上述自动配置单元得到的过滤规则、过滤规则库中导入的过滤表达式,以得到新的过滤表达式。例如,用户先通过CDS配置单元得到过滤规则“M=1”,然后点击“&”按钮,再通过UA配置单元得到过滤规则“L=2&W=3”,最终将得到过滤表达式“M=1&L=2&W=3”。在使用按钮进行组合功能时,除了使用自动配置单元,还可以将导入的历史过滤表达式组合进来。
过滤规则库连接单元,用于连接过滤规则库模块,将已经配置好的过滤表达式导入到过滤规则库中进行保存,或者将保存在过滤规则库中的过滤表达式导出到过滤表达式编辑单元。导入导出的方法是用SQL读写过滤规则库。
所述过滤规则库模块,使用数据库来存储历史过滤表达式,数据表中的项除了表达式本身,还包括对它的使用描述、上次使用的使用时间,它们在表达式导入时产生,并随着表达式一起导出,以便于用户记忆和使用历史过滤表达式。例如,过滤表达式“U=1&L=1&W=1”的使用描述可能为“油箱标签显示不正确,进行指令检查”。
所述过滤表达式解释模块,用于执行本发明方法中的解释过滤表达式的方法。
所述过滤执行模块,用于执行本发明方法中的执行过滤的方法,包括:
数据解析单元,用于对待过滤的指令块进行协议解析,读取其中的特征属性值;
规则匹配单元,用于将读取的特征属性值与树结点中的规则匹配,并计算整个过滤表达式匹配结果。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (8)
1.一种用于ARINC661规范的指令过滤方法,其特征在于,包括如下步骤:
步骤1,设计过滤表达式:提取ARINC661指令块的若干特征属性,将其作为过滤规则的关键字,并设计规范化的过滤表达式来描述过滤规则;
步骤2,解释过滤表达式:将步骤1中设计的过滤表达式解释成一种树形数据结构,过滤表达式中所有过滤规则均存储在树形数据结构的树结点中;
步骤3,执行过滤:根据ARINC661规范对待过滤指令块进行协议解析,读取待过滤指令块的特征属性值,并与步骤2中得到的树形数据结构中对应的过滤规则进行匹配,计算过滤表达式的值,即为过滤的结果。
2.根据权利要求1所述的一种用于ARINC661规范的指令过滤方法,其特征在于,步骤1中所述特征属性包括消息号、用户应用ID号、图层ID号、窗体部件ID号、指令类型号,并分别用字母M、U、L、W、P作为它们的变量。
3.根据权利要求2所述的一种用于ARINC661规范的指令过滤方法,其特征在于,步骤1中所述过滤表达式由至少一个基本过滤表达式构成,且符合如下自定义规范:
(1)定义关键字集合A={M、U、L、W、P},定义关键字的层次关系:M>U>L>W>P,表示关键字层次的高低;
(2)定义运算符集合B={“()”、“=”、“&”、“|” },定义运算符的优先级关系:“()”>“=”>“&”>“|”,表示运算符在表达式中相继出现时计算的优先级;
(3)定义“Var=Value”为基本过滤表达式,表示一条过滤规则,其中,Var为关键字集合A中任一元素;Value为Var的过滤值;运算符“=”用于比较已经赋值的Var和Value是否相等,其运算结果为表达式的布尔值;
(4)若过滤表达式由至少两个基本过滤表达式组合而成时,基本过滤表达式通过运算符“()、&、|”进行组合,其中:
a.运算符“&”用于计算两个表达式的布尔值的逻辑与;
b.运算符“|”用于计算两个表达式的布尔值的逻辑或;
c.运算符“()”用于改变运算优先级,“( )”内的表达式具有最高优先级;
(5)定义“或运算交换律”,与四则运算中的交换律一致;定义 “与运算分配律”,与四则运算中的分配律一致;定义“与运算约束”,进行与运算的两个表达式,左侧表达式中关键字层次高于右侧的。
4.根据权利要求1所述的一种用于ARINC661规范的指令过滤方法,其特征在于,步骤2中过滤表达式解释成一种树形数据结构,具体为:
树形数据结构的树结点具有层次性,每个树结点中存放一条过滤规则;树结点按照关键字的层次高低分布在树的各层,即关键字为M的过滤规则的结点在树的第一层,关键字为P的过滤规则的结点在第五层;树结点间的连接关系表示对应过滤规则在过滤表达式中的运算关系,其中,与运算表示父子关系,或运算表示兄弟关系。
5.根据权利要求4所述的一种用于ARINC661规范的指令过滤方法,其特征在于,当树形结构中缺少某个关键字的过滤规则的结点即缺项,并引起树形结构的层次性被破坏时,则通过以下方法来保持树形结构的层次性:
(1)、定义一种“代沟”结点,用于填补树形结构中的缺项,其本身不含有过滤规则,只具有和缺项相同层次;
(2)、用“代沟”结点补上缺项在树结构中的位置,以保证树的层次性。
6.根据权利要求1所述的一种用于ARINC661规范的指令过滤方法,其特征在于,计算过滤表达式的值的具体方法如下:
(a)、使用一个先进先出的辅助队列,用于存放待匹配规则的树结点,采用关键字为M的过滤规则初始化树第一层的结点入队,若树为空,转(f);
(b)、选取待过滤指令块的消息号作为待匹配的特征属性;
(c)、若队列为空,转(e);否则,队首结点出队,若结点中过滤规则的关键字不是待匹配特征属性,转(d);否则,将待匹配特征属性的值与结点中的过滤规则匹配,如果该结点是代沟结点,则匹配结果为true;否则,将特征属性值与过滤规则中的过滤值比较,若相等则匹配结果为true,否则匹配结果为false;如果匹配结果为true,将该结点的孩子结点都入队,若该结点没有孩子结点,转(f);当前过滤规则匹配结束,与队列中下一条过滤规则匹配,转(c);
(d)、按特征属性的层次高低,选取待过滤指令块的下一个特征属性作为待匹配的特征属性,转(c);如果所有特征属性都匹配完成,转(e);
(e)、过滤表达式的值为false,结束;
(f)、过滤表达式的值为true,结束。
7.一种用于ARINC661规范的指令过滤装置,其特征在于,包括过滤规则库模块、过滤规则配置模块、过滤表达式解释模块和过滤执行模块,其中,
所述过滤规则库模块,用于存储历史过滤表达式;
所述过滤规则配置模块,用于用户操作生成的过滤表达式,包括座舱显示器配置单元、用户应用配置单元、指令类型配置单元、过滤表达式编辑单元、过滤规则库连接单元;
座舱显示器配置单元,用于配置座舱显示系统显示器对应的消息号的过滤规则,提供给用户对座舱显示器进行选择,并利用导入的配置文件,把选择的座舱显示器生成以消息号为关键字的过滤规则;
用户应用配置单元,用于配置用户应用ID号、图层ID号和窗体部件ID号的过滤规则,并利用XML格式DF文件导入生成的定义文件名称表,提供给用户对用户应用、图层、窗体部件三者名称进行选择,再生成名称所对应的用户应用ID号、图层ID号、窗体部件ID号的过滤规则;
指令类型配置单元,用于配置作用于窗体部件的指令类型,提供给用户对指令类型名称进行选择,再生成名称所对应的指令类型号的过滤规则;
过滤表达式编辑单元,用于用户根据过滤表达式规则自行编写过滤表达式,或者组合和编辑上述三个配置单元得到的过滤规则、过滤规则库中导入的过滤表达式,以得到新的过滤表达式;
过滤规则库连接单元,用于连接过滤规则库模块和过滤表达式编辑单元,将过滤表达式编辑单元生成的过滤表达式导入到过滤规则库中进行保存,或者将保存在过滤规则库中的过滤表达式导出到过滤表达式编辑单元;
所述过滤表达式解释模块,用于将过滤规则配置模块输出的过滤表达式解释成一种树形数据结构;
所述过滤执行模块,用于根据过滤表达式解释模块得到的树形数据结构,对待过滤指令块进行过滤,并输出过滤结果,包括:
数据解析单元,用于根据ARINC661规范对待过滤指令块进行协议解析,读取其中的特征属性值;
规则匹配单元,用于将读取的特征属性值与树形数据结构中的树结点中的规则匹配,并计算整个过滤表达式匹配结果。
8.根据权利要求7所述的一种用于ARINC661规范的指令过滤装置,其特征在于,所述过滤规则库连接单元中,导入导出过滤表达式采用SQL语句对过滤规则库进行读写。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410547233.3A CN104331278B (zh) | 2014-10-15 | 2014-10-15 | 一种用于arinc661规范的指令过滤方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410547233.3A CN104331278B (zh) | 2014-10-15 | 2014-10-15 | 一种用于arinc661规范的指令过滤方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331278A true CN104331278A (zh) | 2015-02-04 |
CN104331278B CN104331278B (zh) | 2017-08-25 |
Family
ID=52406012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410547233.3A Active CN104331278B (zh) | 2014-10-15 | 2014-10-15 | 一种用于arinc661规范的指令过滤方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331278B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656961A (zh) * | 2016-09-29 | 2017-05-10 | 海航航空技术有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN107038161A (zh) * | 2015-07-13 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种用于过滤数据的设备及方法 |
CN107391691A (zh) * | 2017-07-26 | 2017-11-24 | 成都科来软件有限公司 | 一种网络分析中数据的过滤方法 |
CN107719698A (zh) * | 2017-09-24 | 2018-02-23 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于arinc661标准的座舱显示系统测试方法 |
CN108920532A (zh) * | 2018-06-06 | 2018-11-30 | 成都深思科技有限公司 | 一种图形化过滤表达式生成方法、设备及存储介质 |
CN109542442A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于arinc661标准的显示界面编辑方法 |
CN110287174A (zh) * | 2019-05-09 | 2019-09-27 | 北京善义善美科技有限公司 | 一种数据过滤引擎及系统和过滤方法 |
CN110909149A (zh) * | 2018-09-17 | 2020-03-24 | 北京国双科技有限公司 | 数据过滤方法及装置 |
CN110990655A (zh) * | 2019-12-23 | 2020-04-10 | 国网黑龙江省电力有限公司 | 一种电力系统电网告警数据的过滤方法 |
CN115047835A (zh) * | 2022-06-27 | 2022-09-13 | 中国核动力研究设计院 | 基于dcs系统定期试验数据获取方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140645A1 (en) * | 2006-11-24 | 2008-06-12 | Canon Kabushiki Kaisha | Method and Device for Filtering Elements of a Structured Document on the Basis of an Expression |
CN101246486A (zh) * | 2007-02-13 | 2008-08-20 | 国际商业机器公司 | 用于改进的表达式处理的方法和装置 |
CN102594625A (zh) * | 2012-03-07 | 2012-07-18 | 北京启明星辰信息技术股份有限公司 | 一种apt智能检测分析平台中的白数据过滤方法及系统 |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
-
2014
- 2014-10-15 CN CN201410547233.3A patent/CN104331278B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080140645A1 (en) * | 2006-11-24 | 2008-06-12 | Canon Kabushiki Kaisha | Method and Device for Filtering Elements of a Structured Document on the Basis of an Expression |
CN101246486A (zh) * | 2007-02-13 | 2008-08-20 | 国际商业机器公司 | 用于改进的表达式处理的方法和装置 |
CN102594625A (zh) * | 2012-03-07 | 2012-07-18 | 北京启明星辰信息技术股份有限公司 | 一种apt智能检测分析平台中的白数据过滤方法及系统 |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
Non-Patent Citations (2)
Title |
---|
徐金哲 等: "函数分析优化Snort数据包过滤", 《信息安全与通信保密》 * |
李春艳 等: "利用决策树实现包过滤的关键技术", 《计算机工程》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107038161A (zh) * | 2015-07-13 | 2017-08-11 | 阿里巴巴集团控股有限公司 | 一种用于过滤数据的设备及方法 |
CN106656961B (zh) * | 2016-09-29 | 2019-08-13 | 海航航空技术股份有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN106656961A (zh) * | 2016-09-29 | 2017-05-10 | 海航航空技术有限公司 | 基于arinc767规范的飞行数据译码分析方法 |
CN107391691A (zh) * | 2017-07-26 | 2017-11-24 | 成都科来软件有限公司 | 一种网络分析中数据的过滤方法 |
CN107719698A (zh) * | 2017-09-24 | 2018-02-23 | 中国航空工业集团公司洛阳电光设备研究所 | 一种基于arinc661标准的座舱显示系统测试方法 |
CN108920532A (zh) * | 2018-06-06 | 2018-11-30 | 成都深思科技有限公司 | 一种图形化过滤表达式生成方法、设备及存储介质 |
CN110909149A (zh) * | 2018-09-17 | 2020-03-24 | 北京国双科技有限公司 | 数据过滤方法及装置 |
CN110909149B (zh) * | 2018-09-17 | 2022-06-03 | 北京国双科技有限公司 | 数据过滤方法及装置 |
CN109542442A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于arinc661标准的显示界面编辑方法 |
CN110287174A (zh) * | 2019-05-09 | 2019-09-27 | 北京善义善美科技有限公司 | 一种数据过滤引擎及系统和过滤方法 |
CN110990655A (zh) * | 2019-12-23 | 2020-04-10 | 国网黑龙江省电力有限公司 | 一种电力系统电网告警数据的过滤方法 |
CN115047835A (zh) * | 2022-06-27 | 2022-09-13 | 中国核动力研究设计院 | 基于dcs系统定期试验数据获取方法、装置、设备及介质 |
CN115047835B (zh) * | 2022-06-27 | 2024-06-04 | 中国核动力研究设计院 | 基于dcs系统定期试验数据获取方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104331278B (zh) | 2017-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104331278A (zh) | 一种用于arinc661规范的指令过滤方法和装置 | |
CN105549982B (zh) | 一种基于模型配置的自动化开发平台 | |
CN104216894B (zh) | 用于数据查询的方法和系统 | |
CN104020997B (zh) | 可扩展图形化规则应用系统 | |
CN104239073B (zh) | 一种数据维护系统快速原型开发系统及方法 | |
CN114510611B (zh) | 一种构建元数据血缘图谱的方法、装置及相关设备 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN108363545A (zh) | 一种数据配置方法及数据配置装置 | |
CN101369234A (zh) | 按照iec 61131-3标准的将梯形图语言编译成指令表语言的方法 | |
CN108845942A (zh) | 产品特征管理方法、装置、系统及存储介质 | |
CN108446327A (zh) | 业务系统动态生成方法、装置、计算机设备及存储介质 | |
CN106095961B (zh) | 表显示处理方法和装置 | |
CN103677811B (zh) | 一种航天器研制流程设计系统及方法 | |
CN106096159B (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
CN114372174A (zh) | 一种xml文档分布式查询方法及系统 | |
CN104281604B (zh) | 生成Targetlink数据字典分层树的方法和系统 | |
CN108536834A (zh) | 更新列表的方法、装置和终端 | |
CN102736552A (zh) | 一种应用于plc开发的梯形图转换为语句表的方法 | |
CN106776275A (zh) | 一种基于分组复用的测试流程自动生成方法 | |
US10922278B2 (en) | Systems and methods for database compression and evaluation | |
CN105930584A (zh) | 一种计算机组成与系统结构的虚拟实验平台及其实现方法 | |
CN110232063A (zh) | 层级数据查询方法、装置、计算机设备和存储介质 | |
Tompa | A practical example of the specification of abstract data types | |
CN105354311B (zh) | 一种基于嵌入式设备文件系统的数据键值对存储方法 | |
JP2017072959A (ja) | 情報処理装置、情報処理方法およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20150204 Assignee: CHANGSHA JINGJIA MICROELECTRONICS Co.,Ltd. Assignor: Nanjing University of Aeronautics and Astronautics Contract record no.: X2022980024223 Denomination of invention: An Instruction Filtering Method and Device for ARINC661 Specification Granted publication date: 20170825 License type: Common License Record date: 20221212 |