CN102523594B - 基于ZigBee协议获取节点丢失信息的方法和系统 - Google Patents
基于ZigBee协议获取节点丢失信息的方法和系统 Download PDFInfo
- Publication number
- CN102523594B CN102523594B CN201110391507.0A CN201110391507A CN102523594B CN 102523594 B CN102523594 B CN 102523594B CN 201110391507 A CN201110391507 A CN 201110391507A CN 102523594 B CN102523594 B CN 102523594B
- Authority
- CN
- China
- Prior art keywords
- node
- loss
- information
- data
- hop node
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于ZigBee协议获取节点丢失信息的方法和系统,该方法包括:当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点并发送;根据该待发送数据的接收状态判断下一跳节点是否丢失,当下一跳节点丢失时,生成指示下一跳节点丢失的丢失指示消息,并将丢失指示消息上报给应用层的ZigBee设备对象;从ZigBee设备对象接收到的丢失指示消息中解析出下一跳节点的网络信息,并将下一跳节点的网络信息作为丢失节点信息上报给应用对象。该方法无需增加额外的数据开销就可以获取到节点的丢失信息。
Description
技术领域
本发明涉及短距离无线通信技术领域,更具体的说是涉及一种基于ZigBee协议获取节点丢失信息的方法和系统。
背景技术
ZigBee是一种新兴的具有短距离、低速率、低功耗、高可靠性、双向传输等特点的无线通信技术。基于ZigBee协议的网络可以在数千个节点之间相互协调实现通信,网络中的节点仅需很少的能量,就可以以接力的方式通过无线电波将数据从一个节点传送到另一个节点,通信效率非常高。
当基于ZigBee协议的网络中的节点发生掉电、错误、离开或信号变弱不能被其他节点检测到时,被称为节点丢失。现有的基于ZigBee协议获取节点丢失情况的方法是基于查询检测机制来完成的,也就是说,当某节点协议栈高层(应用层中的应用对象)想要获取到其他节点的丢失情况时,该节点的协议栈高层每隔一定周期向网络中的待查询的节点广播查询信息,当基于ZigBee协议的网络中的待查询节点能正常回复该查询信息时,就认为待查询的节点仍处于该网络中;否则认为该待查询的节点离开网络,该待查询节点丢失。例如,节点A需要查询节点B是否丢失,则节点A向节点B周期性的发送查询信息,当节点B能正常的回复节点A发送的查询消息,就认为节点B仍在网络中;否则认为节点B丢失。
如果节点自身的ZigBee协议栈中的应用对象需要获取其他节点的丢失情况信息时,则需要在应用对象中周期性的构造查询数据包,并向外发送,这样会造成大量的数据开销,增加了系统能耗。同时由于网络中节点数量较多,如果每个节点均采用周期性的发送查询数据来获取其他节点的丢失情况,则会由于各个节点发送的总数据量过大,增加网络的负载。因此本领域技术人员迫切需要解决的技术问题是,如何能够实现在不增加数据开销和系统资源占用的前提下,获取到节点丢失情况的信息。
发明内容
有鉴于此,本发明提供一种基于ZigBee协议获取节点丢失信息的方法和系统,在获取节点丢失信息的过程中,无需增加额外的数据开销,且能在不影响网络中数据传输速率的前提下,获取到节点的丢失信息。
为实现上述目的,本发明提供如下了一种基于ZigBee协议获取节点丢失信息的方法,包括:
当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将所述待发送数据发送给所述下一跳节点;
根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,并当所述下一跳节点丢失时,生成指示所述下一跳节点丢失的丢失指示消息,并将所述丢失指示消息上报给应用层的ZigBee设备对象,所述丢失指示消息中包含所述下一跳节点的网络信息;
从所述ZigBee设备对象接收到的丢失指示消息中解析出所述下一跳节点的网络信息,并将所述下一跳节点的网络信息作为丢失节点信息上报给应用对象,以便通过应用对象获取到所述丢失节点信息。
优选的,所述从所述ZigBee设备对象接收到的丢失指示消息中解析出下一跳节点的网络信息,并将所述下一跳网络信息作为丢失节点信息上报给应用对象,包括:
当在ZigBee设备对象中接收到所述丢失指示消息时,调用ZigBee设备对象中的失步指示函数;
将所述丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据所述丢失节点信息设置所述失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告;
将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,通过所述消息处理接口将所述节点丢失报告中的丢失节点信息上报给所述应用对象。
优选的,将所述节点丢失情况报告上报给应用框架指定的消息处理接口之前,还包括:设置所述节点丢失情况报告的任务处理标识;
所述将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,包括:
依据所述任务处理标识,将所述节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。
优选的,所述根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,包括:
判断是否在指定时间内接收到所述下一跳节点返回的确认接收到所述待发送数据的消息,如果否,则所述下一跳节点丢失。
优选的,所述下一跳节点为本节点的子节点或者为本节点的父节点。
优选的,该方法还包括:
根据所述应用对象中获取到的丢失节点信息,将所述下一跳节点的丢失信息通知其他节点。
优选的,所述需要向其他节点发送数据,包括:
接收到其他节点发送的目的节点不是本节点的数据;
或,本节点构造数据并需要向其他节点发送。
另一方面本发明还提供了一种基于ZigBee协议获取节点丢失信息的系统,包括:
数据发送单元,用于当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将所述待发送数据发送给所述下一跳节点;
节点丢失检测单元,用于根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,并当所述下一跳节点丢失时,生成指示所述下一跳节点丢失的丢失指示消息,并将所述丢失指示消息上报给应用层的ZigBee设备对象,所述丢失指示消息中包含所述下一跳节点的网络信息;
节点丢失信息上报单元,用于从所述ZigBee设备对象接收到的丢失指示消息中解析出所述下一跳节点的网络信息,并将所述下一跳节点的网络信息作为丢失节点信息上报给应用对象,以便通过应用对象获取到所述丢失节点信息。
优选的,所述节点丢失信息上报单元,包括:
函数调用单元,用于当在ZigBee设备对象中接收到所述丢失指示消息时,调用ZigBee设备对象中的失步指示函数;
参数设置单元,用于将所述丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据所述丢失节点信息设置所述失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告;
信息捕获单元,用于将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,通过所述消息处理接口将所述节点丢失报告中的丢失节点信息上报给所述应用对象。
优选的,节点丢失信息上报单元还包括:标识设置单元,用于设置所述节点丢失情况报告的任务处理标识;
所述信息捕获单元,包括:
信息上报子单元,用于依据所述任务处理标识,将所述节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。
优选的,所述节点丢失检测单元,包括:
节点丢失确认单元,用于判断是否在指定时间内接收到所述下一跳节点返回的确认接收到所述待发送数据的消息,如果否,则所述下一跳节点丢失。
优选的,该系统还包括:
通知单元,用于根据所述应用对象中获取到的丢失节点信息,将所述下一跳节点的丢失信息通知其他节点。
经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于ZigBee协议获取节点丢失信息的方法和系统,在数据发送的过程中,当根据该下一跳节点接收该数据的状况确定出该下一跳节点丢失时,生成该下一跳节点丢失的丢失指示消息,并上报给应用层的ZigBee设备对象,进而通过ZigBee设备对象获取到该丢失指示消息中的下一跳节点的网络信息,并将该下一跳节点的网络信息作为丢失节点信息上报给应用层的应用对象,从而使得应用对象捕获到下一跳节点的丢失信息。该方法无需周期性的在应用对象中构建查询数据,只要本节点有数据发送或转发,应用对象就可以捕获到下一跳节点的丢失情况信息,从而减少了数据资源消耗和构造查询数据带来的资源占用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明中一种基于ZigBee协议获取节点丢失信息的方法一个实施例的流程示意图;
图2为本发明实施例中调用ZDO的失步指示函数生成节点丢失情况报告的流程示意图;
图3为基于ZigBee协议的一种网络结构以及数据发送流向的示意图;
图4为本发明一种基于ZigBee协议获取节点丢失信息的系统一个实施例的结构示意图;
图5为本发明一种基于ZigBee协议获取节点丢失信息的系统的另一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了在减少系统数据资源消耗并降低对网络中数据传输速率的影响的前提下,使得节点中应用对象可以获取到其他节点丢失信息,以便用户获知其他节点的丢失信息,本发明提供了一种基于ZigBee协议获取节点丢失信息的方法,参见图1,示出了本发明一种基于ZigBee协议获取节点丢失信息的方法的一个实施例的流程示意图,该方法包括:
步骤101:当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将该待发送数据发送给该下一跳节点。
其中,当需要向其他节点发送数据时,可以包含多种情况,可以是本节点的构造数据并需要向外发送,如,本节点构造报文,并将该报文向其他节点发送;也可以是当本节点的协议栈底层接收到其他节点发送的数据,经过分析确定该数据的目的节点不是本节点,则在网络层中需要确定下一跳节点,进而将该数据转发出去。
无论是本节点构造的数据,还是接收到其他节点发送的且需要本节点进行转发的数据,均会将该数据作为待发送数据,并在网络层获取该待发送数据的目的节点,进而查询本节点所保存的路由表,确定出下一跳节点。如,节点A向目的节点为节点D的报文,在发送该报文的过程中需要依次经过节点A、节点B和节点C,并由节点C将该报文转发给节点D。在该过程中,当节点A需要先该报文发送给节点B,则节点B为节点A的下一跳节点,同理当节点B接收到该报文后,该节点B需要将报文转发给节点C,则节点C为该节点B的下一跳节点。当在网络层中确定出下一跳节点后,就可以将该待发送数据向ZigBee协议栈中网络层以下协议层传输,并最终将该数据发送到该下一跳节点。
需要说明的是,本发明所说的数据可以为任意数据,如可以为与协议栈相关的数据,也可以是本节点或其他节点构造的普通通信数据等。
步骤102:根据该待发送数据的接收状态判断该下一跳节点是否丢失,并当该下一跳节点丢失时,生成指示该下一跳节点丢失的丢失指示消息,并将该丢失指示消息上报给应用层的ZigBee设备对象,其中,该丢失指示消息中包含该下一跳节点的网络信息。
当将该待发送数据向该下一跳节点发送后,如果该下一跳节点仍处于网络中,即该下一跳节点未丢失,则该下一跳节点会接收到该待发送数据。如果该下一跳节点丢失,则本节点的ZigBee协议栈底层(即应用层以下的协议层)可以获知该下一跳节点并未接收到该待发送数据,同时在该协议栈底层生成指示该下一跳节点丢失的丢失指示消息。本发明中当在协议栈底层生成该丢失指示消息后,会将该丢失指示消息逐层上报,最终由网络层将该丢失指示消息上报给应用层的ZigBee设备对象(ZDO,Zigbee Device Obiect),以便ZigBee协议栈中应用层的ZigBee设备对象获取到该下一跳节点丢失的信息。
确定该下一跳节点是否接收到该待发送数据的方式有多种,其中一种方式可以为:判断ZigBee协议栈底层在指定时间内是否接收到该下一跳节点返回的确认接收到所述待发送数据的消息,如果是,则该下一跳节点处于网络中;如果否,则下一跳节点丢失。也就是说,如果该下一跳节点接收到该待发送数据后,该下一跳节点会向该本节点回复一个确认消息,以确定其接收到该待发送数据。如,该下一跳节点接收到本节点发送的该待接收报文后,该下一跳节点向本节点回复应答信号。当本节点中应用层以下的协议层在指定时间内没有检测或接收到该下一跳节点返回的确认消息,则在ZigBee协议栈中应用层以下的协议层中生成指示该下一跳节点丢失的丢失指示消息。
其中,下一跳节点的网络信息可以包括:该下一跳节点的网络地址,以及该下一跳节点与本节点的通信关系,如,该下一跳节点为本节点的子节点或者该下一跳节点为本节点的父节点的信息。当然还可以包含该下一跳节点丢失的时间等其他信息。
其中,子节点和父节点是依据基于ZigBee协议的网络中的节点通信关系划分的。当网络中的某台设备通过另一台设备加入网络时,这两台设备就构成了父子关系,新接入的设备成为子节点,而另一台设备称为该子节点的父节点。例如,设备A通过设备B加入到该ZigBee网络中,则设备A称为子节点,设备B称为设备A这个子节点的父节点。
步骤103:从ZigBee设备对象接收到的丢失指示消息中解析出下一跳节点的网络信息,并将所述下一跳网络信息作为丢失节点信息上报给应用对象,以便通过应用对象获取到所述丢失节点信息。
当在应用层的ZigBee设备对象中接收到指示该下一跳节点丢失的丢失指示消息时,为了能让应用对象获知该下一跳节点的丢失的信息,本发明增加了将该下一跳节点的网络信息作为丢失节点信息,并将丢失节点信息上报给应用对象的操作,进而使得应用对象获取到丢失节点的信息。
本发明实施例中,当需要向其他节点发送数据时,将待发送数据发送给确定出的下一跳节点,如果没有接收到该下一跳节点返回的确认接收到该待发送数据的消息,则在应用层以下的ZigBee协议层中生成指示该下一跳节点丢失的丢失指示消息并发送到应用层中的ZigBee设备对象中,进而从该ZigBee设备对象接收到的丢失指示消息中获取到该下一跳节点的网络信息,并将该下一跳节点的网络信息作为丢失节点信息上报给应用对象,从而使得应用对象可以捕获到丢失节点信息。这样,当应用层的应用对象需要获取其他节点的丢失情况时,无需周期性的构造检测数据,也无需特意发送检测数据进行节点状态节点,就可以本节点进行数据发送或转发的过程中获取到其他节点的丢失情况,从而减少了数据资源消耗。
通过本发明的获取节点丢失信息的方法,可以在应用对象中捕获到其他节点的丢失情况信息,无需人工手动的在应用层添加相应的程序,就可以使得用户获知其他节点的丢失情况,进而使得用户能够更加便捷的获知到其他节点的丢失情况。
本发明当从该ZigBee设备对象接收到丢失指示消息中解析出该下一跳节点的网络信息后,将该下一跳节点作为丢失节点信息上报给应用层的方式有多种,可以根据需要来进行设定。其中一种方式可以通过调用ZigBee设备对象(ZDO,Zigbee Device Obiect)中的失步指示函数来完成将该丢失节点信息上报给应用对象的操作,该过程可以包括:
当在ZigBee设备对象中接收到丢失指示消息时,调用ZigBee设备对象中的失步指示函数;
将该丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据丢失节点信息设置失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告;
将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,通过该指定的消息处理接口将节点丢失报告中的丢失节点信息上报给应用层的应用对象。
当在ZigBee设备对象(ZDO,Zigbee Device Obiect)接收到网络层上报的丢失指示消息时,调用ZigBee设备对象中的失步指示函数,并将该下一跳的网络信息作为丢失节点信息设置该失步指示函数的参数信息,以生成节点丢失情况报告。通过将该节点丢失情况报告上报到应用框架中指定的任务层进行处理,并将处理后的节点丢失情况报告上报到指定的消息处理接口中,以便可以通过应用框架中的该消息处理接口将该节点丢失情况报告上报给应用对象,从而完成应用对象捕获该丢失节点信息的操作。
其中,在生成节点丢失情况报告后还可以设置该节点丢失情况报告的任务处理标识。与此对应,将节点丢失情况报告上报给应用框架指定的消息处理接口中可以包括:依据该节点丢失情况报告的任务处理标识,将节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。也就是说,当在ZigBee设备对象中生成节点丢失情况报告后,通过在ZigBee设备对象中设置该节点丢失情况报告的消息ID,并依据该消息ID将该包含丢失节点信息的报告消息发送到应用层操作系统消息队列中,操作系统会负责将该节点丢失情况报告发送到指定层次的接收任务中。
为了清楚的介绍本发明中将ZigBee设备对象(ZDO,Zigbee DeviceObiect)中接收到的丢失指示消息中的节点丢失信息上报给应用对象的过程,下面一个具体实例进行介绍。参见图2,为将ZDO中获取的丢失节点信息上报给应用对象的流程示意图,其中,调用的失步指示函数具体为调用ZDO中的void ZDO_SyncIndicationCB()函数,如,void ZDO_SyncIndicationCB(bytetype,uint1 6shortAddr),并利用该失步指示函数生成节点丢失报告,并上报到应用层,该流程包括:
1、调用void ZDO_SyncIndicationCB(byte type,uint16shortAddr),并依据丢失指示消息中包含的丢失节点信息设置该失步指示函数的参数信息,生成节点丢失情况报告。
例如,该节点丢失情况报告生成函数的程序代码可以为:
其中,该函数中包含节点丢失情况报告的消息类型,本节点与丢失节点的通信关系,以及丢失节点的网络地址。其中,该丢失节点即为下一跳节点其中,type值表示本节点与该下一跳节点的通信关系,当type为:0-child时,表示下一跳节点为本节点的子节点;当type为:1-parent时,表示下一跳节点为本节点的父节点。其中,shortAddr表示下一跳节点的网络地址。
2、将节点丢失情况报告的消息发送给应用层中的应用框架(APP,Application framework)层中的指定任务层。
例如,该步骤的操作代码可以为:
osal_msg_send(NwkChange_TaskID,(byte*)msgPtr);
将消息发送到APP层的NwkChange_TaskID任务层,在操作系统队列中进行处理。在该步骤中可以设置节点丢失情况报告的消息任务ID,依据该消息任务ID将节点丢失情况报告发送到指定任务层。
3、在APP层中设置该节点丢失报告的消息的处理接口,对该消息做进一步处理,以便最终能在应用对象中捕获到该丢失节点信息。
例如,可以将该消息发送到APP层中的NWK_STATE_CHANGE处理接口中。
其中,本发明中当节点进行数据转发或发送的过程中,可以在协议栈底层获取到待发送数据对应的下一跳节点的丢失情况,如果该下一跳节点丢失则在ZigBee协议栈中的网络层或网络层以下的协议层中生成指示该下一跳节点丢失的丢失指示消息,并将该丢失指示消息上报给应用层的ZDO层,进而调用该ZDO中的失步指示函数,并依据丢失指示消息中的丢失节点信息设置该失步指示函数的参数信息生成节点丢失情况报告,进而将生成的节点丢失情况报告通过应用框架中的消息处理接口上报给应用对象,从而无需应用对象构造检测数据并向其他节点发送,便可以捕获到丢失节点的信息。
当在应用对象中获取到丢失节点信息后,还可以根据应用对象中获取到的丢失节点信息,将该下一跳节点的丢失信息通知其他节点。如,将该下一跳节点的丢失信息发送给网关节点。当然,当在应用对象中捕获到节点丢失信息后还可以通过发出警报提示,使得用户获知与本节点具有通讯关系的该下一跳节点丢失的信息。
需要说明的是,应用对象中捕获到的丢失节点的信息为在进行数据通信过程中确定出的下一跳节点的信息,该下一跳节点可以为本节点的子节点或者为本节点的父节点。该下一跳节点与本节点的具体通信关系,需要根据网络中数据发送的具体过程来确定。
本发明中节点所发送和转发的数据可以为任意数据,在网络中的节点进行数据的发送和转发的过程中,就可以获取到与本节点具有通信关系的其他节点的丢失情况。换言之,只要是网络中有节点构造并发送数据,构造数据的源节点到目的节点的路径上的所有节点均可以在进行数据转发的过程中,获取到与其具有通信关系的其他节点的丢失与否的信息。
为了清楚的介绍本发明获取节点丢失信息的方法,下面以一个具体的应用场景进行详细的介绍,参见图3,为基于ZigBee协议的一种网络结构示意图,在该网络组成结构中包括网关节点、多个路由节点和多个终端节点,在该网络中任意节点均可以作为数据发送的源节点,则源节点到目的节点的发送路径上的任意节点均可以通过本发明的获取节点丢失信息的方法,在应用层的应用对象中捕获到其下一跳节点的丢失情况信息。
特别的,当网关节点作为发送数据的源节点,并将某叶子节点作为该数据的目的节点时,则可以在一次数据的发送过程中,完成该网关节点到该叶子节点上各个节点丢失情况的检测。其中,叶子节点是指树形网络中处于最底端的节点,该节点没有子节点。如图3中,终端节点1、终端节点2、路由节点4和终端节点3均为叶子节点。图中箭头方向表示数据发送过程中的数据流向。
以图3中的网关节点为发送数据的源节点,终端节点1为该数据的目的节点为例来描述处于路径1中的各个节点中的应用对象中捕获其他节点丢失情况信息的过程。具体包括:
A、首先该网关节点构造目的节点为终端节点1的数据包,并将该数据包作为待发送数据,确定出该待发送数据的下一跳节点为路由节点1,将该待发送数据发送给路由节点,并在确定待发送数据以及进行数据发送的同时启动节点丢失状态检测机制,也就是启动相应的检测节点丢失程序。
B、当该网关节点启动自身的检测机制后,判断在指定时间内ZigBee协议栈底层(本发明中指应用层以下的协议层)是否接收到该路由节点1返回的确认接收到该数据的消息,如果否,则在协议栈底层生成指示该路由节点1丢失的丢失指示消息,并将该丢失指示消息上报给应用层的ZigBee设备对象。之后应用程序从ZigBee设备对象接收到的丢失指示消息中解析出出下一跳节点的网络信息,即路由节点1的网络信息,并Zigbee设备对象中的失步指示函数,将路由节点1的网络信息作为丢失节点信息,并依据丢失节点信息设置该失步指示函数的参数信息生成节点丢失情况报告,进而将该节点丢失情况报告上报给应用对象,以便应用对象捕获到该路由节点1丢失的信息。如果该网关节点的ZigBee协议栈底层在指定时间内接收到该路由节点1返回的确认接收到该数据的消息,则说明路由节点1而处于网络中,路由节点1将进行数据的转发操作,进入步骤C。
C、路由节点1接收到该网关节点的发送的数据,在该路由节点1自身协议栈的网络层中对该数据进行分析,判断出该数据的目的节点不是自身,并确认出该数据的下一跳节点为路由节点2,路由节点1将该数据作为待发送数据,并将该待发送数据发送给路由节点2,并在确定待发送数据以及发送数据的同时开启路由节点1自身的节点丢失检测机制。
D、路由节点1启动自身的节点丢失检测程序后,如果路由节点2丢失,则在路由节点1的协议栈底层不会接收到该路由节点2的返回的确定接收该数据的消息,进而在其协议栈底层生成指示该路由节点2丢失的丢失指示消息,并将该丢失指示消息上报给ZigBee设备对象中,进而调用ZigBee设备对象中的失步指示函数,并将路由节点2的网络信息作为丢失节点的信息,设置该失步指示函数的参数信息得到节点丢失情况报告,并将该节点丢失情况报告上报给应用对象,使得路由节点1的应用层的应用对象捕获到路由节点2的丢失信息。
E、如果路由节点2未丢失,则路由节点2接收到路由节点1发送的数据后,路由节点2将接收到的数据作为待发送数据,分析该数据并确定出下一跳节点为终端节点1,则路由节点2将该数据发送给终端节点1,并启动自身的节点丢失检测机制,来确定终端节点1是否丢失,该过程与路由节点1的应用对象获取路由节点2是否丢失的过程相似,不再赘述。当然,如果终端节点1未丢失,则终端节点1会接收到该路由节点2转发的数据。
由以上步骤A至E可以看出,在网关节点向终端节点1发送数据的过程中,处于图3的路径1中的各个节点在发送或转发数据的过程中,就可以在应用对象中捕获其下一跳节点的丢失情况,无需每个节点单独构造并发送检测数据,节省了数据资源消耗,进而也减少了网络中传输的数据量。
其中,该网关节点发送的数据可以为其构造的查询节点丢失情况的数据,也可以为通讯用的普通数据或报文。当该路径1中的任意节点在应用对象中捕获到其下一跳节点丢失后,该节点都可以根据其应用对象中获取的下一跳节点的信息,将该下一跳节点的丢失情况通知给其他节点。如,路由节点1的应用对象捕获到路由节点2丢失后,该在路由节点1的应用层中构造包含该路由节点2丢失信息的报文,并将该报文发送给网关节点,以便网关节点获取该路由节点2的丢失信息。
在以上的应用场景中是以网关节点向某叶子节点发送数据为例进行介绍的,因此,在网关节点向终端节点1发送数据的过程中,每个节点在应用对象中捕获到的其下一跳节点的丢失信息,均为其子节点的丢失情况信息。也就是说,在以上场景中,各个节点的下一跳节点均为其子节点。
当图3中任意叶子节点向网关节点发送数据时,则在数据的发送路径上,每个节点的下一跳节点均为其父节点。如,路由节点4构造目的节点为网关节点的报文,则该路由节点4发送该报文时,路由节点4的下一跳节点为路由节点4的父节点,即路由节点3,路由节点4在数据发送的过程中可以启动自身的检测节点丢失的程序,如果路由节点3丢失,则在路由节点4的应用对象中也可以捕获到该路由节点3丢失的信息。
当然,本发明获取节点丢失信息的方法的应用并不限于由网关节点向叶子节点发送数据或者是由叶子节点发送数据的过程,任意节点之间发送数据时,处于数据发送路径上的节点均可以采用本发明的方法在其应用对象中捕获到其下一跳节点的丢失情况信息。如,路由节点2构造目的节点为网关节点的数据并发送,则在该数据发送过程中,如果路由节点1丢失,路由节点2也可以在其应用对象中捕获到该路由节点1的丢失信息。
对应本发明的方法,参见图4,示出了本发明一种基于ZigBee协议获取节点丢失信息的系统的一个实施例的结构示意图,该系统包括:数据发送单元410、节点丢失检测单元420和节点丢失信息上报单元430。
数据发送单元410,用于当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将该待发送数据发送给下一跳节点。
其中,当需要向其他节点发送数据时,可以包含多种情况,可以是本节点的构造数据并需要向外发送;也可以是当本节点在接收到其他节点发送的数据,经过分析确定该数据的目的节点不是本节点后,则在网络层中需要确定下一跳节点,进而将该数据转发出去。
该待发送的数据可以为任意数据,如可以为与ZigBee协议栈相关的数据,也可以是本节点或其他节点构造的普通通信数据等。
节点丢失检测单元420,用于根据该待发送数据的接收状态判断该下一跳节点是否丢失,并当该下一跳节点丢失时,生成指示下一跳节点丢失的丢失指示消息,并将丢失指示消息上报给应用层的ZigBee设备对象,其中,丢失指示消息中包含所述下一跳节点的网络信息。
其中,下一跳节点的网络信息可以包括:该下一跳节点的网络地址,以及该下一跳节点与本节点的通信关系,如,该下一跳节点为本节点的子节点或者该下一跳节点为本节点的父节点的信息。当然还可以包含确定该下一跳节点丢失的时间等信息。
节点丢失信息上报单元430,用于从ZigBee设备对象接收到的丢失指示消息中解析出下一跳节点的网络信息,并将下一跳节点的网络信息作为丢失节点信息上报给应用对象,以便在应用对象中捕获到所述丢失节点信息。
当节点丢失检测单元检测到ZigBee协议栈底层没有接收到下一跳节点返回的确认接收到该数据的信息时,会在ZigBee协议栈底层生成丢失指示消息,并将该丢失指示消息上报给应用层的ZigBee设备。而节点丢失检测单元检测到在应用层的ZigBee设备对象接收到该指示下一跳节点丢失的丢失指示消息时,节点丢失检测单元会将该下一跳节点的网络信息作为丢失节点信息,并将丢失节点信息上报给应用对象的操作,进而使得应用对象获取到丢失节点的信息。
参见图5,示出了本发明一种基于ZigBee协议获取节点丢失信息的系统另一个实施例的结构示意图,与上一实施例的不同之处在于,在该实施例中节点丢失信息上报单元430,具体包括:
函数调用单元431,用于当在ZigBee设备对象中接收到丢失指示消息时,调用ZigBee设备对象中的失步指示函数。
参数设置单元432,用于将丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据丢失节点信息设置所述失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告。
信息捕获单元433,用于将节点丢失情况报告上报给应用框架指定的消息处理接口中,通过该指定的消息处理接口将节点丢失报告中的丢失节点信息上报给应用对象。
进一步的,该节点丢失信息上报单元430还可以包括:标识设置单元,用于设置所述节点丢失情况报告的任务处理标识。
对应的,该信息捕获单元433,可以包括:信息上报子单元,用于依据该节点丢失情况报告的任务处理标识,将节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。
另外,本发明中节点丢失检测单元420确定该下一跳节点是否接收到该待发送数据的方式有多种,其中一种方式可以为:判断在指定时间内是否接收到该下一跳节点返回的确认接收到所述待发送数据的消息,如果是,则该下一跳节点处于网络中;如果否,则下一跳节点丢失。对应的,该丢失节点检测单元420可以包括:
节点丢失确认单元421,用于判断是否在指定时间内接收到所述下一跳节点返回的确认接收到该待发送数据的消息,如果否,则下一跳节点丢失。
当在应用对象中获取到丢失节点信息后,还可以根据应用对象中获取到的丢失节点信息,将该下一跳节点的丢失信息通知其他节点,为了实现该功能,该实施例的系统中还包括:通知单元440,用于根据应用对象中获取到的丢失节点信息,将该下一跳节点的丢失信息通知其他节点。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (12)
1.一种基于ZigBee协议获取节点丢失信息的方法,其特征在于,包括:
当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将所述待发送数据发送给所述下一跳节点;
根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,并当所述下一跳节点丢失时,生成指示所述下一跳节点丢失的丢失指示消息,并将所述丢失指示消息上报给应用层的ZigBee设备对象,所述丢失指示消息中包含所述下一跳节点的网络信息;
从所述ZigBee设备对象接收到的丢失指示消息中解析出所述下一跳节点的网络信息,并将所述下一跳节点的网络信息作为丢失节点信息上报给应用对象,以便通过应用对象获取到所述丢失节点信息。
2.根据权利要求1所述的方法,其特征在于,所述从所述ZigBee设备对象接收到的丢失指示消息中解析出下一跳节点的网络信息,并将所述下一跳网络信息作为丢失节点信息上报给应用对象,包括:
当在ZigBee设备对象中接收到所述丢失指示消息时,调用ZigBee设备对象中的失步指示函数;
将所述丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据所述丢失节点信息设置所述失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告;
将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,通过所述消息处理接口将所述节点丢失情况报告中的丢失节点信息上报给所述应用对象。
3.根据权利要求2所述的方法,其特征在于,将所述节点丢失情况报告上报给应用框架指定的消息处理接口之前,还包括:设置所述节点丢失情况报告的任务处理标识;
所述将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,包括:
依据所述任务处理标识,将所述节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。
4.根据权利要求1所述的方法,其特征在于,所述根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,包括:
判断是否在指定时间内接收到所述下一跳节点返回的确认接收到所述待发送数据的消息,如果否,则所述下一跳节点丢失。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述下一跳节点为本节点的子节点或者为本节点的父节点。
6.根据权利要求1所述的方法,其特征在于,还包括:
根据所述应用对象中获取到的丢失节点信息,将所述下一跳节点的丢失信息通知其他节点。
7.根据权利要求1所述的方法,其特征在于,所述需要向其他节点发送数据,包括:
接收到其他节点发送的目的节点不是本节点的数据;
或,本节点构造数据并需要向其他节点发送。
8.一种基于ZigBee协议获取节点丢失信息的系统,其特征在于,包括:
数据发送单元,用于当需要向其他节点发送数据时,根据待发送数据中的目的节点信息确定下一跳节点,并将所述待发送数据发送给所述下一跳节点;
节点丢失检测单元,用于根据所述待发送数据的接收状态判断所述下一跳节点是否丢失,并当所述下一跳节点丢失时,生成指示所述下一跳节点丢失的丢失指示消息,并将所述丢失指示消息上报给应用层的ZigBee设备对象,所述丢失指示消息中包含所述下一跳节点的网络信息;
节点丢失信息上报单元,用于从所述ZigBee设备对象接收到的丢失指示消息中解析出所述下一跳节点的网络信息,并将所述下一跳节点的网络信息作为丢失节点信息上报给应用对象,以便通过应用对象获取到所述丢失节点信息。
9.根据权利要求8所述的系统,其特征在于,所述节点丢失信息上报单元,包括:
函数调用单元,用于当在ZigBee设备对象中接收到所述丢失指示消息时,调用ZigBee设备对象中的失步指示函数;
参数设置单元,用于将所述丢失指示消息中的下一跳节点的网络信息作为丢失节点信息,并依据所述丢失节点信息设置所述失步指示函数的参数信息,生成包含丢失节点信息的节点丢失情况报告;
信息捕获单元,用于将所述节点丢失情况报告上报给应用框架指定的消息处理接口中,通过所述消息处理接口将所述节点丢失情况报告中的丢失节点信息上报给所述应用对象。
10.根据权利要求9所述的系统,其特征在于,节点丢失信息上报单元还包括:标识设置单元,用于设置所述节点丢失情况报告的任务处理标识;
所述信息捕获单元,包括:
信息上报子单元,用于依据所述任务处理标识,将所述节点丢失情况报告上报给与该任务处理标识对应的消息处理接口中。
11.根据权利要求8所述的系统,其特征在于,所述节点丢失检测单元,包括:
节点丢失确认单元,用于判断是否在指定时间内接收到所述下一跳节点返回的确认接收到所述待发送数据的消息,如果否,则所述下一跳节点丢失。
12.根据权利要求8所述的系统,其特征在于,还包括:
通知单元,用于根据所述应用对象中获取到的丢失节点信息,将所述下一跳节点的丢失信息通知其他节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391507.0A CN102523594B (zh) | 2011-11-30 | 2011-11-30 | 基于ZigBee协议获取节点丢失信息的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110391507.0A CN102523594B (zh) | 2011-11-30 | 2011-11-30 | 基于ZigBee协议获取节点丢失信息的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102523594A CN102523594A (zh) | 2012-06-27 |
CN102523594B true CN102523594B (zh) | 2014-11-05 |
Family
ID=46294362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110391507.0A Active CN102523594B (zh) | 2011-11-30 | 2011-11-30 | 基于ZigBee协议获取节点丢失信息的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102523594B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107231669B (zh) * | 2016-03-23 | 2021-04-30 | 中兴通讯股份有限公司 | 一种数据传输装置方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7203743B2 (en) * | 2001-12-28 | 2007-04-10 | Nortel Networks Limited | Hierarchical tree-based protection scheme for mesh networks |
JP4209758B2 (ja) * | 2003-11-20 | 2009-01-14 | 富士通株式会社 | 迂回通信経路設計方法 |
CN101141391A (zh) * | 2007-10-09 | 2008-03-12 | 中兴通讯股份有限公司 | 一种实现故障切换的方法 |
CN101483548B (zh) * | 2009-02-26 | 2011-01-19 | 中国人民解放军信息工程大学 | 一种距离向量路由协议自愈的方法和系统 |
-
2011
- 2011-11-30 CN CN201110391507.0A patent/CN102523594B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102523594A (zh) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101247321A (zh) | 在基于直径协议的网络中进行路由诊断的方法、装置及系统 | |
CN107947994B (zh) | 网络拓扑自发现方法、装置、网络设备及计算机存储介质 | |
CN101094121B (zh) | 非直连设备间以太网链路的检测方法、系统和设备 | |
US11516682B2 (en) | Methods and nodes for obtaining information regarding a bluetooth mesh network | |
CN102035694A (zh) | 链路检测装置及方法 | |
CN108770009B (zh) | 链路故障定位方法、装置、设备以及可读存储介质 | |
JP2005094530A (ja) | データ転送経路構築方法、無線通信ネットーワークシステム及びセンサネットワークシステム | |
CN102664719A (zh) | 适用于dcs的分布式安全传输方法 | |
CN101729307A (zh) | 一种故障检测方法、通信设备及网络系统 | |
Wenning et al. | Environmental monitoring aware routing: making environmental sensor networks more robust | |
CN105530115B (zh) | 一种实现操作管理维护功能的方法及装置 | |
CN109586959A (zh) | 一种故障检测的方法及装置 | |
CN109347520B (zh) | 双模通信网络的通信方法、系统及计算机可读存储介质 | |
CN102711159B (zh) | 基于ZigBee协议处理丢失节点的方法和系统 | |
CN101815028A (zh) | 组播路由跟踪的方法、系统和路由设备 | |
CN102685009B (zh) | 一种组播传输路径的探测方法及装置 | |
JP5512641B2 (ja) | 無線端末、緊急情報配信システム、及びプログラム | |
CN102523594B (zh) | 基于ZigBee协议获取节点丢失信息的方法和系统 | |
CN101888709A (zh) | 一种无线传感器系统以及无线传感器装置 | |
JP6066292B2 (ja) | 多機能情報端末及びモバイルアドホックネットワークアーキテクチャーの通信方法 | |
CN114337942B (zh) | 一种报文重传方法、装置及电子设备 | |
CN101478775A (zh) | 一种多邻居连接状态的检测方法、系统和设备 | |
CA2704857C (en) | Packet consolidation | |
WO2012133857A1 (ja) | 通信装置、経路探索方法および経路探索プログラム | |
Ammar et al. | From modeling with SysML to simulation with Contiki Cooja simulator of wireless sensor networks |
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 |