CN102262542B - Wsn中基于事件驱动的重编程方法及系统 - Google Patents

Wsn中基于事件驱动的重编程方法及系统 Download PDF

Info

Publication number
CN102262542B
CN102262542B CN 201110235268 CN201110235268A CN102262542B CN 102262542 B CN102262542 B CN 102262542B CN 201110235268 CN201110235268 CN 201110235268 CN 201110235268 A CN201110235268 A CN 201110235268A CN 102262542 B CN102262542 B CN 102262542B
Authority
CN
China
Prior art keywords
event
program
reprogrammed
processing module
execution
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
Application number
CN 201110235268
Other languages
English (en)
Other versions
CN102262542A (zh
Inventor
任丰原
程鹏
何滔
扈煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN 201110235268 priority Critical patent/CN102262542B/zh
Publication of CN102262542A publication Critical patent/CN102262542A/zh
Application granted granted Critical
Publication of CN102262542B publication Critical patent/CN102262542B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种WSN中基于事件驱动的重编程方法及系统,涉及WSN(无线传感器网络)领域。所述方法包括步骤:将代码包发送给重编程节点;重编程节点接收代码包,判断事件信息是否存在,如果存在,执行步骤E,否则,执行步骤D;D:根据事件信息判断事件类型是否是应用程序事件,如果是,增加事件信息后执行步骤E,否则,结束流程;E:存储重编程程序以及重编程程序和事件信息的关联信息;事件触发事件处理模块,事件处理模块根据事件信息和关联信息查找重编程程序,执行引擎执行重编程程序。所述方法通过不同的事件触发不同的重编程程序的执行,有效提高了WSN重编程的灵活性。

Description

WSN中基于事件驱动的重编程方法及系统
技术领域
本发明涉及WSN(无线传感器网络)技术领域,特别涉及一种WSN中基于事件驱动的重编程方法及系统。
背景技术
WSN(无线传感器网络)是由大量的随机分布的功能和性能不尽相同的传感器节点组成,节点间通过自组织的方式构成网络。图1是现有的无线传感器网络结构示意图,如图1所示,节点自组织形成网络通过多跳中继的方式将数据传到汇聚节点(或称终端节点),再通过汇聚节点发到终端PC,再由终端PC传给更远的网络。无线传感器网络一般具有节点多、网络覆盖范围大、不易回收、节点能量有限等特点。
随着无线传感器网络的发展,无线传感器的可重编程能力引起了越来越多的人的关注,但是由于部署节点多且不易回收的特点,将部署的节点重新搜集起来进行离线重编程非常困难,基本不可行。因此,PC端进行script高层语言的编译生成二进制代码、通过无线电发送编译生成的二进制代码包到特定节点、节点执行代码实现特定功能的在线编程模式成为了现在研究的热点。传统的无线传感器编程模型大多采用直接执行二进制代码包的方式来实现可重编程的能力,使得传感器节点按照程序要求实现新的功能。但是由于无线传感器的能量限制,往往实现的常驻功能不是一直执行的,而是由事件驱动的,但是传统的直接执行二进制代码包的方式无法满足由特定事件触发执行的需求。此外,在传统的底层操作系统中往往将事件驱动的编程方式作为主要的编程模型,但是其定义的事件往往是由硬件事件所触发的,而由于上层的虚拟机操作触发的事件(例如二进制代码的执行)往往不能捕捉,因此在虚拟机上的基于事件驱动的可编程模型是十分必要的,可以大大增加可重编程的灵活性。
综上,现有的可重编程模型无法满足由事件触发的需求,其重编程的灵活性较低。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种WSN中基于事件驱动的重编程方法及系统,以提高WSN重编程的灵活性。
(二)技术方案
为解决上述技术问题,本发明提供一种WSN中基于事件驱动的重编程方法,其包括步骤:
B:将代码包发送给重编程节点,所述代码包包括事件信息和事件触发后的重编程程序;
C:所述重编程节点接收所述代码包,判断所述事件信息是否存在,如果存在,执行步骤E,否则,执行步骤D;
D:根据所述事件信息判断事件类型是否是应用程序事件,如果是,增加所述事件信息后执行步骤E,否则,结束流程;
E:存储所述重编程程序以及所述重编程程序和所述事件信息的关联信息;
F:事件触发事件处理模块,所述事件处理模块根据所述事件信息和所述关联信息查找所述重编程程序,执行引擎执行所述重编程程序。
优选地,在所述步骤B之前,还包括步骤A:PC终端对Script级代码进行编译,组装后生成二进制的所述代码包。
优选地,在所述步骤F之后,还包括步骤G:执行引擎执行所述重编程程序后,通知所述事件处理模块,所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,根据事件类型相应地返回执行结果。
优选地,所述步骤G具体包括步骤:
G1:执行引擎执行所述重编程程序后,通知所述事件处理模块;
G2:所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,判断事件类型是否是底层操作系统事件,如果是,将执行结果通知底层操作系统;否则,执行步骤G3;
G3:判断事件类型是否是驱动执行器事件,如果是,将执行结果通知包处理流程器,否则执行步骤G4;
G4:将执行结果通知虚拟机,所述执行引擎继续执行事件触发所述事件处理模块前被中断的操作。
优选地,所述步骤E具体包括步骤:
E1:所述事件处理模块向程序管理模块申请空间,并将所述重编程程序存储至所述空间;
E2:所述事件处理模块存储所述重编程程序和所述事件信息的关联信息。
本发明还提供一种WSN中基于事件驱动的重编程系统,其包括节点;所述节点包括驱动执行器,所述驱动执行器,用于维护报文在节点中的处理流程和重编程程序的执行;所述报文中包含所述重编程程序。
优选地,所述重编程系统还包括PC端编译器;所述PC端编译器用于对Script级代码进行编译,并将组装后生成二进制代码包发送给需要重编程的节点。
优选地,所述节点还包括底层操作系统和应用程序;所述底层操作系统用于维护所述节点的一般性操作;所述应用程序包括已有的程序和重编程所产生的应用程序。
优选地,所述驱动执行器包括虚拟机和包处理流程器;
所述虚拟机用于实现传统的重编程功能,并且所述虚拟机还包括事件处理模块;所述事件处理模块用于处理重编程程序的添加和删除、维护事件信息和重编程程序的关联信息以及事件触发时触发相应的重编程程序;
所述包处理流程器包括流程管理模块和流程控制模块;所述流程管理模块用于在处理报文的整个过程中,触发相应的驱动执行器事件;所述流程控制模块用于在报文进入所述驱动执行器后,维护报文处理的整个流程。
优选地,所述虚拟机还包括:上下文管理模块、程序管理模块、代码解释器、执行引擎、报文收发模块和错误处理模块;
所述上下文管理模块用于实现多个二进制代码程序的并发执行;所述二进制代码程序包括所述重编程程序;
所述程序管理模块用于存储所述二进制代码程序;
所述代码解释器用于解释所述二进制代码程序,并实现所述二进制代码程序的功能;
所述执行引擎用于执行所述二进制代码程序;
所述报文收发模块用于接收和发送报文,所述报文包括所述二进制代码程序;
所述错误处理模块用于对所述驱动执行器运行过程产生的错误进行处理。
(三)有益效果
本发明的WSN中基于事件驱动的重编程方法及系统,对事件进行分类,并且存储事件和重编程程序的关联信息,不同的事件触发不同的重编程程序的执行,有效提高了WSN重编程的灵活性。
附图说明
图1是现有的无线传感器网络结构示意图;
图2是本发明实施例所述的WSN中基于事件驱动的重编程方法的流程图;
图3是本发明实施例所述WSN中基于事件驱动的重编程系统的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明实施例中将事件分为三类:底层操作系统事件、驱动执行器事件和应用程序事件。所述底层操作系统事件为原有底层操作系统所提供的事件,具体包括了硬件事件、路由事件、系统事件等等由底层操作系统来维护的结构所触发的事件。驱动执行器主要用于维护报文在节点中的处理流程和重编程程序的执行,所述驱动执行器在报文处理流程中依次处于收到报文、执行程序前、执行程序、执行程序后、发送报文和舍弃报文等状态,并且所述驱动执行器在执行程序时执行相应的指令,我们将所述驱动执行器由于状态改变或者指令执行而触发的事件称之为驱动执行器事件。应用程序事件是指由用户或者编程者通过重编程的方式定义的,而且由重编程程序触发的事件。底层操作系统事件及驱动执行器事件无法重编程定义。
图2是本发明实施例所述的WSN中基于事件驱动的重编程方法的流程图。如果2所示,所述方法包括:
步骤A:PC终端对Script级代码进行编译,组装后生成二进制的所述代码包。
步骤B:将代码包发送给重编程节点,所述代码包包括事件信息和事件触发后的重编程程序。PC终端通过无线电将所述代码包发送给重编程节点。所述事件信息主要包括底层操作系统事件、驱动执行器事件或者应用程序事件的事件代号。
步骤C:所述重编程节点接收所述代码包,所述事件处理模块判断所述事件信息是否存在,如果存在,执行步骤E,否则,执行步骤D。
步骤D:根据所述事件信息判断事件类型是否是应用程序事件,如果是,增加所述事件信息后执行步骤E,否则,结束流程。
步骤E:存储所述重编程程序以及所述重编程程序和所述事件信息的关联信息。
所述步骤E具体包括:
步骤E1:所述事件处理模块向程序管理模块申请空间,并将所述重编程程序存储至所述空间。
步骤E2:所述事件处理模块存储所述重编程程序和所述事件信息的关联信息。所述事件处理模块通过建立所述空间的起始地址和所述事件代号的对应关系表,构建得到所述关联信息。
步骤F:事件触发所述事件处理模块,所述事件处理模块根据所述事件信息和所述关联信息查找所述重编程程序,执行引擎执行所述重编程程序。
步骤G:执行引擎执行所述重编程程序后,通知事件处理模块,所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,根据事件类型相应地返回执行结果。一个所述事件信息可能会对应多个重编程程序。
步骤G具体包括:
步骤G1:执行引擎执行所述重编程程序后,通知事件处理模块。
步骤G2:所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,判断事件类型是否是底层操作系统事件,如果是,将执行结果通知底层操作系统;否则,执行步骤G3。
步骤G3:判断事件类型是否是驱动执行器事件,如果是,将执行结果通知包处理流程器,否则执行步骤G4。
步骤G4:将执行结果通知虚拟机,所述执行引擎继续执行事件触发所述事件处理模块前被中断的操作。
本发明实施例所述的WSN中基于事件驱动的重编程系统包括:PC端编译器和节点。
所述PC端编译器用于对Script级代码进行编译,并将组装后生成二进制代码包发送给需要重编程的节点。
所述节点包括驱动执行器、底层操作系统和应用程序。所述驱动执行器,用于维护报文在节点中的处理流程和重编程程序的执行。所述底层操作系统用于维护所述节点的一般性操作;所述应用程序包括已有的程序和重编程所产生的应用程序。
所述驱动执行器包括虚拟机和包处理流程器。
所述虚拟机用于实现传统的重编程功能,并且所述虚拟机还包括事件处理模块;所述事件处理模块用于处理重编程程序的添加和删除、维护事件信息和重编程程序的关联信息以及事件触发时触发相应的重编程程序。
所述包处理流程器包括流程管理模块和流程控制模块;所述流程管理模块用于在处理报文的整个过程中,触发相应的驱动执行器事件;所述流程控制模块用于在报文进入所述驱动执行器后,维护报文处理的整个流程。
所述虚拟机还包括:上下文管理模块、程序管理模块、代码解释器、执行引擎、报文收发模块和错误处理模块。
所述上下文管理模块用于实现多个二进制代码程序的并发执行;所述二进制代码程序包括所述重编程程序;
所述程序管理模块用于存储所述二进制代码程序;
所述代码解释器用于解释所述二进制代码程序,并实现所述二进制代码程序的功能;
所述执行引擎用于执行所述二进制代码程序;
所述报文收发模块用于接收和发送报文,所述报文包括所述二进制代码程序;
所述错误处理模块用于对所述驱动执行器运行过程产生的错误进行处理。
本发明实施例所述的WSN中基于事件驱动的重编程方法及系统,对事件进行分类,并且存储事件和重编程程序的关联信息,不同的事件触发不同的重编程程序的执行,有效提高了WSN重编程的灵活性。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (7)

1.一种WSN中基于事件驱动的重编程方法,其特征在于,包括步骤:
B:将代码包发送给重编程节点,所述代码包包括事件信息和事件触发后的重编程程序;
C:所述重编程节点接收所述代码包,判断所述事件信息是否存在,如果存在,执行步骤E,否则,执行步骤D;
D:根据所述事件信息判断事件类型是否是应用程序事件,如果是,增加所述事件信息后执行步骤E,否则,结束流程;
E:存储所述重编程程序以及所述重编程程序和所述事件信息的关联信息;
F:事件触发事件处理模块,所述事件处理模块根据所述事件信息和所述关联信息查找所述重编程程序,执行引擎执行所述重编程程序;
在所述步骤B之前,还包括步骤A:PC终端对Script级代码进行编译,组装后生成二进制的所述代码包。
2.如权利要求1所述的方法,其特征在于,在所述步骤F之后,还包括步骤G:执行引擎执行所述重编程程序后,通知所述事件处理模块,所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,根据事件类型相应地返回执行结果。
3.如权利要求2所述的方法,其特征在于,所述步骤G具体包括步骤:
G1:执行引擎执行所述重编程程序后,通知所述事件处理模块;
G2:所述事件处理模块等待对应所述事件信息的所有的重编程程序执行完毕后,判断事件类型是否是底层操作系统事件,如果是,将执行结果通知底层操作系统;否则,执行步骤G3;
G3:判断事件类型是否是驱动执行器事件,如果是,将执行结果通知包处理流程器,否则执行步骤G4;
G4:将执行结果通知虚拟机,所述执行引擎继续执行事件触发所述事件处理模块前被中断的操作。
4.如权利要求1所述的方法,其特征在于,所述步骤E具体包括步骤:
E1:所述事件处理模块向程序管理模块申请空间,并将所述重编程程序存储至所述空间;
E2:所述事件处理模块存储所述重编程程序和所述事件信息的关联信息。
5.一种WSN中基于事件驱动的重编程系统,其特征在于,包括节点;所述节点包括驱动执行器,所述驱动执行器,用于维护报文在节点中的处理流程和重编程程序的执行;所述报文中包含所述重编程程序;
所述重编程系统还包括PC端编译器;所述PC端编译器用于对Script级代码进行编译,并将组装后生成二进制代码包发送给需要重编程的节点;
所述驱动执行器包括虚拟机和包处理流程器;
所述虚拟机用于实现传统的重编程功能,并且所述虚拟机还包括事件处理模块;所述事件处理模块用于处理重编程程序的添加和删除、维护事件信息和重编程程序的关联信息以及事件触发时触发相应的重编程程序;
所述包处理流程器包括流程管理模块和流程控制模块;所述流程管理模块用于在处理报文的整个过程中,触发相应的驱动执行器事件;所述流程控制模块用于在报文进入所述驱动执行器后,维护报文处理的整个流程。
6.如权利要求5所述的系统,其特征在于,所述节点还包括底层操作系统和应用程序;所述底层操作系统用于维护所述节点的一般性操作;所述应用程序包括已有的程序和重编程所产生的应用程序。
7.如权利要求5所述的系统,其特征在于,所述虚拟机还包括:上下文管理模块、程序管理模块、代码解释器、执行引擎、报文收发模块和错误处理模块;
所述上下文管理模块用于实现多个二进制代码程序的并发执行;所述二进制代码程序包括所述重编程程序;
所述程序管理模块用于存储所述二进制代码程序;
所述代码解释器用于解释所述二进制代码程序,并实现所述二进制代码程序的功能;
所述执行引擎用于执行所述二进制代码程序;
所述报文收发模块用于接收和发送报文,所述报文包括所述二进制代码程序;
所述错误处理模块用于对所述驱动执行器运行过程产生的错误进行处理。
CN 201110235268 2011-08-16 2011-08-16 Wsn中基于事件驱动的重编程方法及系统 Active CN102262542B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110235268 CN102262542B (zh) 2011-08-16 2011-08-16 Wsn中基于事件驱动的重编程方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110235268 CN102262542B (zh) 2011-08-16 2011-08-16 Wsn中基于事件驱动的重编程方法及系统

Publications (2)

Publication Number Publication Date
CN102262542A CN102262542A (zh) 2011-11-30
CN102262542B true CN102262542B (zh) 2013-07-03

Family

ID=45009180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110235268 Active CN102262542B (zh) 2011-08-16 2011-08-16 Wsn中基于事件驱动的重编程方法及系统

Country Status (1)

Country Link
CN (1) CN102262542B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662646B (zh) * 2012-03-01 2015-09-23 华为技术有限公司 传感数据处理方法及计算节点
CN105564439B (zh) * 2015-12-28 2018-03-23 广州汽车集团股份有限公司 车辆控制方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101014166A (zh) * 2007-02-02 2007-08-08 南京邮电大学 基于优先权分簇的无线传感器网络的网络再编程方法
CN201509317U (zh) * 2009-09-27 2010-06-16 西安迅腾科技有限责任公司 无线传感器网络节点现场无线程序更新装置
US7788332B2 (en) * 2004-05-06 2010-08-31 Cornell Research Foundation, Inc. Sensor-network processors using event-driven architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788332B2 (en) * 2004-05-06 2010-08-31 Cornell Research Foundation, Inc. Sensor-network processors using event-driven architecture
CN101014166A (zh) * 2007-02-02 2007-08-08 南京邮电大学 基于优先权分簇的无线传感器网络的网络再编程方法
CN201509317U (zh) * 2009-09-27 2010-06-16 西安迅腾科技有限责任公司 无线传感器网络节点现场无线程序更新装置

Also Published As

Publication number Publication date
CN102262542A (zh) 2011-11-30

Similar Documents

Publication Publication Date Title
CN104598513B (zh) 一种基于网页框架的数据流控制方法和系统
CN100479575C (zh) 在设备管理中实现预定操作的方法及装置
CN103324173B (zh) 基于中间件的多异构机器人协作方法
CN101976062B (zh) 基于lsoa构架的开放式控制方法
CN102306118A (zh) Android终端应用程序功耗监控的方法和装置
CN103645909A (zh) 定时任务的处理方法及装置
CN112000441B (zh) 一种基于kubernetes声明式编排管理虚机生命周期的方法
CN102750157A (zh) 一种应用程序加载的方法及装置
CN102467447A (zh) 驱动程序调试系统及方法
CN114064152B (zh) 基于动态加载的嵌入式多核调试系统及其调试方法
CN102663543A (zh) 一种用于企业数据统一平台的调度系统
Azzara et al. PyoT, a macroprogramming framework for the Internet of Things
CN110362363A (zh) 一种基于运行时模型实现对终端应用控制的方法
CN104536819A (zh) 基于web服务的任务调度方法
CN108255585A (zh) Sdk异常控制及应用程序运行方法、装置及其设备
CN102541549A (zh) 集成电视应用模块的方法及装置
CN102262542B (zh) Wsn中基于事件驱动的重编程方法及系统
CN111666572A (zh) 一种自动化渗透测试框架
CN101324843A (zh) 通用网关设计的对象模型
CN104731062A (zh) 一种用于仪表状态监控及调度的智能网络管理系统及方法
CN110480633B (zh) 一种控制设备的方法、装置及存储介质
CN101950260A (zh) 一种处理器程序调度方法及装置
CN1852156A (zh) 不中断业务对处理系统的程序版本进行升级的方法
CN105262604A (zh) 虚拟机迁移方法及设备
CN103927244A (zh) 一种基于动态代理实现的插件调度过程监控的方法

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