CN102063470B - 一种适用于无线传感器网络的节点实时数据解析方法 - Google Patents
一种适用于无线传感器网络的节点实时数据解析方法 Download PDFInfo
- Publication number
- CN102063470B CN102063470B CN201010587286XA CN201010587286A CN102063470B CN 102063470 B CN102063470 B CN 102063470B CN 201010587286X A CN201010587286X A CN 201010587286XA CN 201010587286 A CN201010587286 A CN 201010587286A CN 102063470 B CN102063470 B CN 102063470B
- Authority
- CN
- China
- Prior art keywords
- data
- script
- sensor network
- wireless sensor
- user
- 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.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种适用于无线传感器网络的节点实时数据解析方法,即通过部署收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块,形成解析平台,对用户数据进行分析。平台提供脚本输入模块,在平台中可以预设场景,用户可以通过选择场景指定解析语句,分析器模块根据语法规则对解析语句进行分析,生成解释器实例,平台把采集到的数据或数据库中读取的数据传递到解释器,解释器对符合过滤条件的数据进行数据解析,提取数据返回,以表格方式显示所有数据或以图形方式显示最新数据,使用户在无线传感器网络的数据收集工具下,通过输入数据解析规则,实时对复杂数据进行处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。
Description
技术领域
本发明涉及无线传感器网络领域,尤其涉及对无线传感器网络中节点数据的实时分析、提取、处理和显示的实现方法。
背景技术
无线传感器网络(Wireless Sensor Networks,WSN)就是由多个传感器节点通过无线通信方式组成的网络系统。开发者需要针对具体的应用为不同功能的节点编写不同的程序,但由于传感器节点缺乏人机界面,难以验证程序的运行效果,所以,开发者往往通过传感器网络数据收集系统来收集网络节点数据,再对所收集的数据进行后台处理,离线分析相关程序及算法的性能。
由于传感器节点收发的数据包包含协议数据与用户数据两部分,协议数据是节点通信中各层协议需要的数据,参照相应的协议栈可解释出各字段的意义;用户数据是研究人员需要利用传感器节点来传输的信息,数据内容不受协议限制,具体的数据结构及长度由相关工作人员所决定。。由于数据位置,类型,长度都不可预料,现有的测试平台都缺乏对用户数据部分的解析功能。
发明内容
有鉴于此,本发明提供一种通用的适用于无线传感器网络的实时数据解析方法,使用户在无线传感器网络的数据收集工具下,可以输入数据解析规则,从而实时对数据进行复杂处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。
所述的适于用无线传感器网络实时数据解析方法包括:收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块。以上模块搭建起节点数据分析平台,其中,
所述的收集接口用于直接从传感器网络中收集数据,或者从其它无线传感器网络数据收集工具中收集数据。
所述的解析脚本定义了丰富的数据解析规则,用户可以根据解析规则,自定义解析脚本,对收集的数据进行过滤、提取、聚类、模式匹配等复杂处理及分析,解析脚本易修改、保存及重用,每条解析脚本可以用于多次数据解析,每次数据解析也可运行多条解析脚本。
解析规则指在自定义字段中,用户需要指明这个字段对应的数据类型,在用户数据部分的开始位置,数据长度,数据类型。也可以不指明位置与长度,分析器将按顺序计算开始位置和采用该类型的默认长度来进行数据转换,对于某些长度确定的类型,长度的输入将被忽略,例如int16将固定采用2个字节长度,而int默认为4字节长度,但允许指定1,2,4或者8位长度,string类型则可以输入任意长度数值。
解析规则的数据过滤条件,可以但不限定以where关键字表示开始,支持同时指定多个清楚条件,条件之间支持逻辑运算。每个条件以字段值直接或经过数学运算后匹配进行过滤。
所述的解析脚本编辑环境提供的关键字列表功能,通过智能感知用户正在输入的文字,提示关键字列表,方便用户进行快捷的输入,同时对已经输入的语句进行关键字匹配,不同类型的关键字显示不同的颜色。
所述的脚本编译器可以检测脚本是否符合解析规则,如果输入脚本不符合解析规则,将提示出错位置与相关信息方便用户改正,如果语法正确,将调用buildtable方法,获得一个table对象,解释器根据收集的数据与table对象判断数据是否符合过滤条件,如果不符合,将忽略处理,如果符合,将提取数据,并填充到table对象中,依次按照用户定义的解析规则进行处理分析,最后分析处理完的结果和table对象传给应用情景模块。
所述的应用情景模块根据脚本解析器传来的table对象中关于应用情景的定义,动态生成应用情景显示区。显示区可以线性图、柱状图、等图表显示。
本发明的有益效果:
简单易用:只需要脚本语句,不需要复杂操作。
容易理解:语法类似T-SQL语言,语法简单,规则严谨。
数据解析:真正实现了节点数据中的用户数据解析功能。
直观观察:开发人员可以直观的观察节点的数据包内容。
数据排版:可以随意指定需要字段,顺序,别名,清晰明了。
数据捕捉:通过指定严格的过滤条件,可以实现数据捕捉功能。
数据搜索:利用本发明,可以对历史数据实现强大的搜索功能。
适应性强:当节点程序变动时,可以通过修改语句快速适应新规则。
方便比较:对同一个节点同时使用几个脚本,可以查看不同情况下的数据差别。
附图说明
附图为自定义分析流程
实施方式
为了使上述目的、技术方案、以及优点更加清楚,下面结合具体实施例进行详细描述。
本发明实施例提供一系统用于自定义解析及显示无线传感器网络数据的方法,包括用于收集传感器网络数据收集接口、自定义解析语句的解析脚本,辅助编写解析脚本语言的脚本编辑环境,生成解析程序对象的脚本编译器和丰富的应用情景显示模块。
收集接口分别提供直接用于收集传感器网络的串口接口,和接受来自第三方的采集工具的TCP/IP接口。通过将所有的传感器节点设备连接到具有服务器终端,收集接口可以直接收集传感器节点的数据。收集接口也可以连接到指定的TCP/IP端口与第三收集工具进行通信,收集第三方工具传送过来的传感器数据。
解析脚本主要包括过滤语句、分析语句及显示语句:过滤语句主要负责节点数据的筛选过滤,分析语句包含了数据处理、分析的算法及模式,通过运算分析语句生成的结果和显示语句的定义,可以动态的生成信息显示区。所有的解析脚本生成后都会加载到同一个内存表中,用户可以在使用的过程中随时进行切换。
以下结合例子进一步说明脚本的组成:
select sourceid, int16 as “湿度”, int(3,1)+uxint16 as “温度”, time as “采集时间” where (int16+5)>30 or issend=true
上述的例子中,指定了过滤条件中,用户数据中,第一个数据类型int16, 它的值加上5后如果大于30,或者这个数据包是个发送的数据包,则符合过滤条件,将进行数据提取,否则将忽略处理。
上述例子中,指定以默认的字段名提取数据包的来源节点id作为第一个字段,第二个提取字段是自定义字段用户数据中第一个数据类型为int16, 以“湿度”作为字段名提取,第三个字段是个复合的自定义字段,从用户数据第3个字节开始,取一个字节的int类型,加上接下来的uxint类型作为“温度”返回,最后一个字段为平台附加上的采集时间信息。
脚本编译器主要有语句分析,数据过滤、处理及调用应用情景模块显示结果的功能。
所述的脚本编译器对脚本的语句分析功能,包括对语句进行词法分析,提取关键字、运算符、数字以及字符串,并通过读取xml文件中指定的记号与记号类的对应关系,转换为相应的记号对象,保存到链表中,每个记号对象都继承自一个token对象,token对象具有tokenvalue属性作为运算结果,token对象可以有多个子对象,当调用execute方法时,将对每个子对象进行递归调用,使得最终返回结果,每个token对象具有优先级属性,不同的类型的token对象优先等级不同,脚本编译器将根据优先级来生产语法树。
脚本编译器对链表中每个记号对象进行分析,先以第一个select记号作为语法树的根,对后面的记号对象根据优先级不同进行处理,按照“高进低处”的原则把优先级高的压入堆栈,优先级低的对象弹出作为当前对象的子,最终形成一棵语法树。
对于某些特殊对象,将进行额外的处理,例如as记号对象,将把其后的字符串对象赋值给最近的字段对象的一个属性以用作返回,对于自定义字段对象,将进行后面对象的查找,以匹配自定义对象的解析规则,对于where对象,将作为select对象的最后一个叶子。
记号与记号对象对应关系,以xml文档的格式进行规定,例如:
<TokenRecord>
<TokenKeyword>
<Token Word="and" Class="TokenAnd" />
<Token Word="false" Class="TokenBool"/>
……
</TokenKeyword>
<TokenSymbol>
<Token Word="(" Class="TokenLeftBracket" Example="2*(5-3) = 4" />
<Token Word="+" Class="TokenPlus" Example="2+3 = 5 或 'abc' + 'def' = 'abcdef'" />
……
</TokenSymbol>
<TokenField>
<Token Word="issend" Class="TokenIsSendField" />
<Token Word="localid" Class="TokenLocalIdField" />
<Token Word="sourceid" Class="TokenSourceIdField" />
……
</TokenField>
<TokenSQL>
<Token Word="select" Class="TokenSelect" Example="select *" />
<Token Word="where" Class="TokenWhere" Example="where *" />
<Token Word="as" Class="TokenAs" Example="where *" />
</TokenSQL>
<TokenCustomField>
<Token Word="int" Class="TokenIntCustomField" />
<Token Word="single" Class="TokenSingleCustomField" />
……
</TokenCustomField>
</TokenRecord>。
所述脚本编译器的执行脚本语句中的数据过滤、处理及调用应用情景模块显示结果功能包括以下步骤。
脚本编译器调用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引擎为例:
select Engine(”MatLab”,EngineArray(nxuint16(7,2),Path as "温度" nxuint16(9,2) as "湿度" nxuint16(11,2) as "光照" where datatype ="S" and sendtype=75
第一个参数调用的引擎的名称,第二个参数是需要传入的数据,第三个参数是保存计算过程的XML文件的路径,这样便可以将EngineArray里的参数传入到MatLab的引擎函数, MatLab引擎便会调用Path里保存的计算方法进行计算并返回计算结果,然后把每个字段的结果填充到table对象中,以事件方式通知应用情景模块显示。应用情景模块根据table对象中的信息,生成需要显示的内容如温度、温度、光照和其对应的结果。
Claims (1)
1.一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:通过部署收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块,搭建平台对用户数据进行分析;在平台中提供脚本输入模块,用户以脚本形式输入自定义的解析语句,或者在平台中预设场景,用户通过选择场景指定解析语句,分析器模块根据语法规则对解析语句进行分析,生成解释器实例,平台把采集到的数据或数据库中读取的数据传递到解释器,解释器对符合过滤条件的数据进行数据解析,提取数据返回,以表格方式显示所有数据或以图形方式显示最新数据,使用户在无线传感器网络的数据收集工具下,通过输入数据解析规则,从而实时对复杂数据进行处理、分析及显示,辅助研究人员验证相关算法及程序的有效性。
2. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:提供一个数据分析平台,对无线传感器网络中的包括用户数据部分在内的传感器节点收发的数据包进行解析。
3. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:通过增加收集接口、解析脚本、脚本编辑环境、脚本编译器及应用情景模块可以解析的无线传感器网络实时数据即是传感器网络节点收发的数据包的原始数据,包含通信过程中各层封装的协议数据与用户数据两部分。
4. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:每个节点同时打开多个输入模块,输入不同的语句实现不同的解析规则,或者针对所有节点打开输入模块,对所有节点使用同样的解析规则,每一个解析语句将会生成一个解释器,而每个解释器是独立运作,不影响其他解释器的运行。
5. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:收集接口用于直接从传感器网络中收集数据,或者从其它无线传感器网络数据收集工具中收集数据,收集接口分别提供直接用于收集传感器网络数据的串口接口,和接收来自第三方的采集工具数据的TCP/IP接口;通过将所有的传感器节点设备连接到具有收集接口的服务器终端,收集接口可以直接收集传感器节点的数据。
6. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:用户根据解析规则,自定义解析脚本,对收集的数据进行复杂处理及分析,包括过滤、提取、聚类、模式匹配,解析脚本易修改、保存及重用,每条解析脚本可以用于多次数据解析,每次数据解析也可运行多条解析脚本。
7. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:脚本编译器主要实现语句分析、数据过滤、处理及调用应用情景模块显示结果。
8. 根据权利要求1所述的一种适用于无线传感器网络的节点实时数据解析方法,其特征在于:解析脚本编辑环境提供的关键字列表功能,通过智能感知用户正在输入的文字,提示关键字列表,方便用户进行快捷的输入,同时对已经输入的语句进行关键字匹配,不同类型的关键字显示不同的颜色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010587286XA CN102063470B (zh) | 2010-12-14 | 2010-12-14 | 一种适用于无线传感器网络的节点实时数据解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010587286XA CN102063470B (zh) | 2010-12-14 | 2010-12-14 | 一种适用于无线传感器网络的节点实时数据解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102063470A CN102063470A (zh) | 2011-05-18 |
CN102063470B true CN102063470B (zh) | 2012-11-21 |
Family
ID=43998746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010587286XA Active CN102063470B (zh) | 2010-12-14 | 2010-12-14 | 一种适用于无线传感器网络的节点实时数据解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102063470B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102665296B (zh) * | 2012-05-10 | 2016-03-30 | 中国科学院计算技术研究所 | 一种无线传感器网络数据收集和发布装置及方法 |
CN103001971B (zh) * | 2012-12-25 | 2015-08-12 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
CN106570064A (zh) * | 2016-10-10 | 2017-04-19 | 上海瀚之友信息技术服务有限公司 | 一种通用结构化数据的实时计算系统及方法 |
CN109814870A (zh) * | 2018-12-26 | 2019-05-28 | 东软集团股份有限公司 | 数据解析方法、装置、存储介质及电子设备 |
CN110933095A (zh) * | 2019-12-04 | 2020-03-27 | 锐捷网络股份有限公司 | 一种报文解析方法及装置 |
CN115086961A (zh) * | 2022-05-16 | 2022-09-20 | 芯原微电子(上海)股份有限公司 | 基于用户自定义过滤的无线抓包方法、系统、设备和介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006344017A (ja) * | 2005-06-09 | 2006-12-21 | Hitachi Ltd | センサネットワークシステム及びセンサネットワークのデータ処理方法 |
CN100499504C (zh) * | 2006-12-04 | 2009-06-10 | 中国科学院计算技术研究所 | 一种实现无线传感器网络可视化的方法 |
US8009437B2 (en) * | 2007-05-02 | 2011-08-30 | Synapse Wireless, Inc. | Wireless communication modules |
CN101808353A (zh) * | 2010-03-08 | 2010-08-18 | 南昌航空大学 | 一种监视与分析无线传感器网络自身健康状态的方法 |
-
2010
- 2010-12-14 CN CN201010587286XA patent/CN102063470B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102063470A (zh) | 2011-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102063470B (zh) | 一种适用于无线传感器网络的节点实时数据解析方法 | |
CN103631882B (zh) | 基于图挖掘技术的语义化业务生成系统和方法 | |
CN102880468B (zh) | 一种用于ecu程序开发的代码智能提示方法及其系统 | |
CN104050281A (zh) | 一种基于http协议的网页信息提取方法及装置 | |
CN101441629A (zh) | 一种非结构化网页信息的自动采集方法 | |
CN106951228A (zh) | 版本迭代中差异的处理方法和装置 | |
US8682935B2 (en) | System and method for application navigation | |
CN103902269B (zh) | 一种通过xml文件生成mib文件的系统及方法 | |
CN103970845A (zh) | 基于程序切片技术的网页过滤方法 | |
CN113467771B (zh) | 一种基于模型的工业边云协同系统和方法 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN109116828A (zh) | 一种控制器中模型代码配置方法和装置 | |
CN115016793A (zh) | 基于语法树的代码生成方法和装置、电子设备、存储介质 | |
CN104182347A (zh) | 一种基于自动化测试平台的测试需求自动分析方法 | |
CN105335516A (zh) | 一种通用采集系统的构建方法 | |
CN113742368A (zh) | 一种数据血缘关系分析方法 | |
CN111508562A (zh) | 流程描述性语言的可视化显示方法、装置、设备和介质 | |
CN103235757B (zh) | 基于自动化造数对输入域测试对象进行测试的装置和方法 | |
CN117194501B (zh) | Dcs趋势测点跳转逻辑组态的方法、系统、设备及介质 | |
CN103902651B (zh) | 一种基于MongoDB的云端代码查询方法与装置 | |
CN104899042A (zh) | 一种嵌入式机器视觉检测程序开发方法及系统 | |
CN111259039A (zh) | 数据库操作方法、装置、设备和计算机可读存储介质 | |
CN102929626A (zh) | 基于安卓系统的功能查询模块实现方法、系统及手机 | |
CN115562993A (zh) | 测试脚本录制方法和装置、电子设备及存储介质 | |
KR101482668B1 (ko) | 변전소 구성 언어 기반의 데이터베이스 생성 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |