一种适用于无线传感器网络的节点实时数据解析方法

文档序号:7768673阅读:188来源:国知局

专利名称::一种适用于无线传感器网络的节点实时数据解析方法
技术领域
:本发明涉及无线传感器网络领域,尤其涉及对无线传感器网络中节点数据的实时分析、提取、处理和显示的实现方法。
背景技术
:无线传感器网络(WirelessSensorNetworks,WSN)就是由多个传感器节点通过无线通信方式组成的网络系统。开发者需要针对具体的应用为不同功能的节点编写不同的程序,但由于传感器节点缺乏人机界面,难以验证程序的运行效果,所以,开发者往往通过传感器网络数据收集系统来收集网络节点数据,再对所收集的数据进行后台处理,离线分析相关程序及算法的性能。由于传感器节点收发的数据包包含协议数据与用户数据两部分,协议数据是节点通信中各层协议需要的数据,参照相应的协议栈可解释出各字段的意义;用户数据是研究人员需要利用传感器节点来传输的信息,数据内容不受协议限制,具体的数据结构及长度由相关工作人员所决定。。由于数据位置,类型,长度都不可预料,现有的测试平台都缺乏对用户数据部分的解析功能。
发明内容有鉴于此,本发明提供一种通用的适用于无线传感器网络的实时数据解析方法,使用户在无线传感器网络的数据收集工具下,可以输入数据解析规则,从而实时对数据进行复杂处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。所述的适于用无线传感器网络实时数据解析方法包括收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块。以上模块搭建起节点数据分析平台,其中,所述的收集接口用于直接从传感器网络中收集数据,或者从其它无线传感器网络数据收集工具中收集数据。所述的解析脚本定义了丰富的数据解析规则,用户可以根据解析规则,自定义解析脚本,对收集的数据进行过滤、提取、聚类、模式匹配等复杂处理及分析,解析脚本易修改、保存及重用,每条解析脚本可以用于多次数据解析,每次数据解析也可运行多条解析脚本。解析规则指在自定义字段中,用户需要指明这个字段对应的数据类型,在用户数据部分的开始位置,数据长度,数据类型。也可以不指明位置与长度,分析器将按顺序计算开始位置和采用该类型的默认长度来进行数据转换,对于某些长度确定的类型,长度的输入将被忽略,例如intl6将固定采用2个字节长度,而int默认为4字节长度,但允许指定1,2,4或者8位长度,string类型则可以输入任意长度数值。解析规则的数据过滤条件,可以但不限定以where关键字表示开始,支持同时指定多个清楚条件,条件之间支持逻辑运算。每个条件以字段值直接或经过数学运算后匹配进行过滤。3所述的解析脚本编辑环境提供的关键字列表功能,通过智能感知用户正在输入的文字,提示关键字列表,方便用户进行快捷的输入,同时对已经输入的语句进行关键字匹配,不同类型的关键字显示不同的颜色。所述的脚本编译器可以检测脚本是否符合解析规则,如果输入脚本不符合解析规则,将提示出错位置与相关信息方便用户改正,如果语法正确,将调用buildtable方法,获得一个table对象,解释器根据收集的数据与table对象判断数据是否符合过滤条件,如果不符合,将忽略处理,如果符合,将提取数据,并填充到table对象中,依次按照用户定义的解析规则进行处理分析,最后分析处理完的结果和table对象传给应用情景模块。所述的应用情景模块根据脚本解析器传来的table对象中关于应用情景的定义,动态生成应用情景显示区。显示区可以线性图、柱状图、等图表显示。本发明的有益效果简单易用只需要脚本语句,不需要复杂操作。容易理解语法类似T-SQL语言,语法简单,规则严谨。数据解析真正实现了节点数据中的用户数据解析功能。直观观察开发人员可以直观的观察节点的数据包内容。数据排版可以随意指定需要字段,顺序,别名,清晰明了。数据捕捉通过指定严格的过滤条件,可以实现数据捕捉功能。数据搜索利用本发明,可以对历史数据实现强大的搜索功能。适应性强当节点程序变动时,可以通过修改语句快速适应新规则。方便比较对同一个节点同时使用几个脚本,可以查看不同情况下的数据差别。附图为自定义分析流程实施方式为了使上述目的、技术方案、以及优点更加清楚,下面结合具体实施例进行详细描述。本发明实施例提供一系统用于自定义解析及显示无线传感器网络数据的方法,包括用于收集传感器网络数据收集接口、自定义解析语句的解析脚本,辅助编写解析脚本语言的脚本编辑环境,生成解析程序对象的脚本编译器和丰富的应用情景显示模块。收集接口分别提供直接用于收集传感器网络的串口接口,和接受来自第三方的采集工具的TCP/IP接口。通过将所有的传感器节点设备连接到具有服务器终端,收集接口可以直接收集传感器节点的数据。收集接口也可以连接到指定的TCP/IP端口与第三收集工具进行通信,收集第三方工具传送过来的传感器数据。解析脚本主要包括过滤语句、分析语句及显示语句过滤语句主要负责节点数据的筛选过滤,分析语句包含了数据处理、分析的算法及模式,通过运算分析语句生成的结果和显示语句的定义,可以动态的生成信息显示区。所有的解析脚本生成后都会加载到同一个内存表中,用户可以在使用的过程中随时进行切换。以下结合例子进一步说明脚本的组成selectsourceid,intl6as"MS",int(3,l)+uxintl6astimeas集时间,,where(intl6+5)>30orissend=true上述的例子中,指定了过滤条件中,用户数据中,第一个数据类型intl6,它的值加上5后如果大于30,或者这个数据包是个发送的数据包,则符合过滤条件,将进行数据提取,否则将忽略处理。上述例子中,指定以默认的字段名提取数据包的来源节点id作为第一个字段,第二个提取字段是自定义字段用户数据中第一个数据类型为intl6,以“湿度”作为字段名提取,第三个字段是个复合的自定义字段,从用户数据第3个字节开始,取一个字节的int类型,加上接下来的uxint类型作为“温度”返回,最后一个字段为平台附加上的采集时间信肩、ο脚本编译器主要有语句分析,数据过滤、处理及调用应用情景模块显示结果的功能。所述的脚本编译器对脚本的语句分析功能,包括对语句进行词法分析,提取关键字、运算符、数字以及字符串,并通过读取xml文件中指定的记号与记号类的对应关系,转换为相应的记号对象,保存到链表中,每个记号对象都继承自一个token对象,token对象具有tokenvalue属性作为运算结果,token对象可以有多个子对象,当调用execute方法时,将对每个子对象进行递归调用,使得最终返回结果,每个token对象具有优先级属性,不同的类型的token对象优先等级不同,脚本编译器将根据优先级来生产语法树。脚本编译器对链表中每个记号对象进行分析,先以第一个select记号作为语法树的根,对后面的记号对象根据优先级不同进行处理,按照“高进低处”的原则把优先级高的压入堆栈,优先级低的对象弹出作为当前对象的子,最终形成一棵语法树。对于某些特殊对象,将进行额外的处理,例如as记号对象,将把其后的字符串对象赋值给最近的字段对象的一个属性以用作返回,对于自定义字段对象,将进行后面对象的查找,以匹配自定义对象的解析规则,对于where对象,将作为select对象的最后一个叶子。记号与记号对象对应关系,以xml文档的格式进行规定,例如<TokenRecord><TokenKeyword>〈TokenWord="and"Class="TokenAnd"/>〈TokenWord=〃false〃Class=〃TokenBool〃/></TokenKeyword><TokenSymbol>〈TokenWord=〃(〃Class=〃TokenLeftBracket〃Example=〃2氺(5—3)=4〃/>〈TokenWord=〃+〃Class=〃TokenPlus〃Example=//2+3=5或,abcJ+'def,=,abcdef,〃/></TokenSymbol><TokenField>〈TokenWord=〃issend〃Class=〃TokenIsSendField〃/>〈TokenWord="localid"Class="TokenLocalIdField"/>5〈TokenWord=〃sourceid〃Class=〃TokenSourceIdField〃/></TokenField><TokenSQL>〈TokenWord=〃select〃Class=〃TokenSelect〃Example=〃select氺〃/>〈TokenWord=〃where〃Class=〃TokenWhere〃Example=〃where*〃/>〈TokenWord=〃as〃Class=〃TokenAs〃Example=〃where*〃/></TokenSQL><TokenCustomField>〈TokenWord=〃int〃Class=〃TokenIntCustomField〃/>〈TokenWord=〃single〃Class=〃TokenSingleCustomField〃/></TokenCustomField></TokenRecord>0所述脚本编译器的执行脚本语句中的数据过滤、处理及调用应用情景模块显示结果功能包括以下步骤。脚本编译器调用buildtable方法获得一个table对象,该对象包含有要解析的字段类型,字段名等信息。收到收集接口的数据后,脚本编译器开始判断table对象是否有过滤语言对象where,如果有,则调用where对象的execute方法,并判断运行结果,如果为真,将进行数据提取,填充到table中,否则忽略数据。where对象的execute方法,将对where下面的子对象进行递归调用。以上述例子为例,where对象下的子将是or对象,or对象第一个子为“〉”对象,第二个子为“=”对象。Or对象将分别调用这两个对象的execute方法后,对两者的值进行or比较,得到的值赋给tokenvalue属性供上面的where对象作为最终过滤条件判断。上述例子中,“=”对象的第一个对象为固定字段issend,第二个对象为数值true,“=”记号对象将调用issend字段的execute方法,得到的值与true进行相等判断,得到的结果赋值给tokenvalue属性以供上层的or对象使用。issend对象将对传入的数据进行数据提取,取得的数值赋给tokenvalue属性,以供层的”=”对象使用。true作为数值类型的对象,execute方法不进行任何操作,上层对象直接对其tokenvalue值进行使用。脚本编译器执行数据处理发生在执行完数据过滤操作后。数据处理既可是简单的加减乘除运行,也可以是调用其它引擎进行聚类、模式匹配等数据处理。简单的运算如上述例子,脚本编译器直接可以计算出结果。对于复杂的数据处理,用户可以根据需要选择相关处理引擎来辅助分析处理。以采用Matlab引擎为例selectEngine(,,MatLab,,,EngineArray(nxuintl6(7,2),Pathas〃温度〃nxuintl6(9,2)as〃iS度〃nxuintl6(11,2)as〃光照〃wheredatatype=〃S〃andsendtype=75第一个参数调用的引擎的名称,第二个参数是需要传入的数据,第三个参数是保存计算过程的XML文件的路径,这样便可以将EngineArray里的参数传入到MatLab的引擎函数,MatLab引擎便会调用I^ath里保存的计算方法进行计算并返回计算结果,然后把每个字段的结果填充到table对象中,以事件方式通知应用情景模块显示。应用情景模块根据table对象中的信息,生成需要显示的内容如温度、温度、光照和其对应的结果。权利要求1.一种适用于无线传感器网络的节点实时数据解析方法,其特征在于通用的适用于无线传感器网络的实时数据解析方法,通过部署收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块,搭建平台对用户数据进行分析;在平台中提供脚本输入模块,用户以脚本形式输入自定义的解析语句,在平台中可以预设场景,用户可以通过选择场景指定解析语句,分析器模块根据语法规则对解析语句进行分析,生成解释器实例,平台把采集到的数据或数据库中读取的数据传递到解释器,解释器对符合过滤条件的数据进行数据解析,提取数据返回,以表格方式显示所有数据或以图形方式显示最新数据,使用户在无线传感器网络的数据收集工具下,通过输入数据解析规则,从而实时对复杂数据进行处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。2.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于提供一个数据分析平台,对无线传感器网络中的包括用户数据部分在内的传感器节点收发的数据包进行解析。3.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于通过增加收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块实现对于一般无线传感器网络的实时数据进行解析。4.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于每个节点可以同时打开多个输入模块,输入不同的语句实现不同的解析规则,也可以针对所有节点打开输入模块,对所有节点使用同样的解析规则,每一个解析语句将会生成一个解释器,而每个解释器是独立运作,不影响其他解释器的运行。5.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于收集接口用于直接从传感器网络中收集数据,或者从其它无线传感器网络数据收集工具中收集数据,收集接口分别提供直接用于收集传感器网络的串口接口,和接受来自第三方的采集工具的TCP/IP接口;通过将所有的传感器节点设备连接到具有服务器终端,收集接口可以直接收集传感器节点的数据。6.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于用户可以根据解析规则,自定义解析脚本,对收集的数据进行过滤、提取、聚类、模式匹配等复杂处理及分析,解析脚本易修改、保存及重用,每条解析脚本可以用于多次数据解析,每次数据解析也可运行多条解析脚本。7.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于脚本编译器主要实现语句分析,数据过滤、处理及调用应用情景模块显示结果。8.根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于解析脚本编辑环境提供的关键字列表功能,通过智能感知用户正在输入的文字,提示关键字列表,方便用户进行快捷的输入,同时对已经输入的语句进行关键字匹配,不同类型的关键字显示不同的颜色。全文摘要本发明公开了一种适用于无线传感器网络的节点实时数据解析方法,即通过部署收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块,形成解析平台,对用户数据进行分析。平台提供脚本输入模块,在平台中可以预设场景,用户可以通过选择场景指定解析语句,分析器模块根据语法规则对解析语句进行分析,生成解释器实例,平台把采集到的数据或数据库中读取的数据传递到解释器,解释器对符合过滤条件的数据进行数据解析,提取数据返回,以表格方式显示所有数据或以图形方式显示最新数据,使用户在无线传感器网络的数据收集工具下,通过输入数据解析规则,实时对复杂数据进行处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。文档编号H04W84/18GK102063470SQ20101058728公开日2011年5月18日申请日期2010年12月14日优先权日2010年12月14日发明者刘云淮,赵云,陈振宇,高民,黄才炎申请人:广州市香港科大霍英东研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1