欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种Mesh设备保活处理方法及装置独创技术26248字

一种Mesh设备保活处理方法及装置

2023-03-02 10:35:49

一种Mesh设备保活处理方法及装置

  技术领域

  本发明涉及物联网领域,具体而言,涉及一种Mesh设备保活处理方法及装置。

  背景技术

  蓝牙Mesh(无线网格)技术是一种基于广播的网络协议,网络中的每一个设备都发送和接收来自无线电范围内所有设备的所有消息。在网状网络中没有连接的概念。网络中的任何设备都可以从其他设备中传输消息,这使得一个网络设备可以通过让一个或多个其他设备将消息传递到目的地,从而将消息发送到无线电范围之外的设备上。

  目前市面上的蓝牙Mesh设备通常采用SIG Model中的“heartbeat module”来实现Mesh网络内的心跳同步机制。一般蓝牙Mesh网络中设计的心跳保活机制,通常采用SIGModel中的“heartbeat module”来实现Mesh网络内的心跳同步机制,该方式需要provisioner(主设备)配置每个device(节点设备),并且经过Configuration ServerModel来配置。

  主要分为发送心跳消息(Heartbeat Publication)和订阅心跳消息(HeartbeatSubscription)。其中Heartbeat Publication的destination可以为单播地址或者组地址,其它地址不可使用;Heartbeat Subscription的destination,即监听源心跳消息的目的地址,只有源地址和目的地址都匹配的心跳消息才能被接收,只能为节点的首元素地址或者组地址,心跳发布周期2^(n-1)秒(举例:n为3,则周期为8s)。

  故该方式有两大限制:只有provisioner才能维护整个Mesh网络内设备的在线情况,导致获取Mesh网络内设备在线状态效率低的问题。

  针对相关技术中只能通过一个设备维护整个Mesh网络内设备的保活机制,导致获取Mesh网络内设备在线状态效率低的问题,尚未提出解决方案。

  发明内容

  本发明实施例提供了一种Mesh设备保活处理方法及装置,以至少解决相关技术中只能通过一个设备维护整个Mesh网络内设备的保活机制,导致获取Mesh网络内设备在线状态效率低的问题。

  根据本发明的一个实施例,提供了一种Mesh设备保活处理方法,包括:

  与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  通过所述安全通道接收所述一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  可选地,根据所述心跳报文对所述一个或多个Mesh设备进行保活处理包括:

  通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理。

  可选地,在通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理之后,所述方法还包括:

  以第二预定时间周期检查所述一个或多个Mesh设备的在线时间戳,其中,所述第二预定时间周期大于所述第一预定时间周期;

  若所述一个或多个Mesh设备的在线时间戳在当前时间周期内未更新所述在线时间戳;

  使用当前时间更新所述一个或多个Mesh设备的离线时间戳。

  可选地,所述方法还包括:

  通过所述安全通道接收所述一个或多个Mesh设备在检测到设备状态发生改变之后广播的设备状态数据;

  根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理包括:

  使用当前时间更新所述一个或多个Mesh设备的在线时间戳的方式,根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,在根据所述心跳报文对所述一个或多个Mesh设备进行保活处理之后,所述方法还包括:

  存储所述一个或多个Mesh设备的设备状态信息,其中,所述设备状态信息包括设备元素地址、Mesh设备的在线时间戳、Mesh设备的离线时间戳。

  可选地,所述方法还包括:

  以所述第一预定时间周期广播所述心跳报文;和/或

  在检测到设备状态发生改变之后广播设备状态数据。

  可选地,所述方法还包括:

  判断当前时间与发送所述设备状态数据的时间的差值是否大于所述第一预定时间周期;

  在判断结果为是的情况下,以所述第一预定时间周期广播所述心跳报文。

  根据本发明的另一个实施例,还提供了一种Mesh设备保活处理装置,包括:

  建立模块,用于与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  第一接收模块,用于通过所述安全通道接收所述一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  第一保活处理模块,用于根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  可选地,所述第一保活处理模块,还用于

  通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理。

  可选地,所述装置还包括:

  检查模块,用于以第二预定时间周期检查所述一个或多个Mesh设备的在线时间戳,其中,所述第二预定时间周期大于所述第一预定时间周期;

  更新模块,用于若所述一个或多个Mesh设备的在线时间戳在当前时间周期内未更新所述在线时间戳;

  使用模块,用于使用当前时间更新所述一个或多个Mesh设备的离线时间戳。

  可选地,所述装置还包括:

  第二接收模块,用于通过所述安全通道接收所述一个或多个Mesh设备在检测到设备状态发生改变之后广播的设备状态数据;

  第二保活处理模块,用于根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,所述第二保活处理模块,还用于

  使用当前时间更新所述一个或多个Mesh设备的在线时间戳的方式,根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,所述装置还包括:

  存储模块,用于存储所述一个或多个Mesh设备的设备状态信息,其中,所述设备状态信息包括设备元素地址、Mesh设备的在线时间戳、Mesh设备的离线时间戳。

  可选地,所述装置还包括:

  第一广播模块,用于以所述第一预定时间周期广播所述心跳报文;和/或

  第二广播模块,用于在检测到设备状态发生改变之后广播设备状态数据。

  可选地,所述装置还包括:

  判断模块,用于判断当前时间与发送所述设备状态数据的时间的差值是否大于所述第一预定时间周期;

  第三广播模块,用于在判断结果为是的情况下,以所述第一预定时间周期广播所述心跳报文。

  根据本发明的又一个实施例,还提供了一种计算机可读的存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

  根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

  通过本发明,与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道,通过建立的所述安全通道接收所述一个或多个Mesh设备以第一预定时间周期广播的心跳报文,根据所述心跳报文对所述一个或多个Mesh设备进行保活处理,由于所有Mesh设备使用同一网络层密钥和应用层密钥,使得任意一个Mesh设备均可以在建立的安全通道接收其他Mesh设备广播的心跳报文,从而对其他设备进行保活处理,可以解决相关技术中只能通过一个设备维护整个Mesh网络内设备的保活机制,导致获取Mesh网络内设备在线状态效率低的问题,任意一个Mesh设备都可以作为心跳接收方,提高了获取Mesh网络内设备在线状态效率。

  附图说明

  此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

  图1是本发明实施例的Mesh设备保活处理方法的移动终端的硬件结构框图;

  图2是根据本发明实施例的Mesh设备保活处理方法的流程图;

  图3是根据本发明实施例的蓝牙Mesh设备心跳保活的流程图;

  图4是根据本发明实施例的Mesh设备保活处理装置的框图;

  图5是根据本发明优选实施例的Mesh设备保活处理装置的框图。

  具体实施方式

  下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

  需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

  实施例1

  本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的Mesh设备保活处理方法的移动终端的硬件结构框图,如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

  存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的Mesh设备保活处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

  传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network INterface CoNtroller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio FrequeNcy,简称为RF)模块,其用于通过无线方式与互联网进行通讯。

  基于上述的移动终端或网络架构,在本实施例中提供了一种Mesh设备保活处理方法,图2是根据本发明实施例的Mesh设备保活处理方法的流程图,如图2所示,该流程包括如下步骤:

  步骤S202,与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  步骤S204,通过所述安全通道接收所述一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  步骤S206,根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  进一步的,上述步骤S206具体可以包括:通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理。

  通过上述步骤S202至S206,由于所有Mesh设备使用同一网络层密钥和应用层密钥,使得任意一个Mesh设备均可以在建立的安全通道接收其他Mesh设备广播的心跳报文,从而对其他设备进行保活处理,可以解决相关技术中只能通过一个设备维护整个Mesh网络内设备的保活机制,导致获取Mesh网络内设备在线状态效率低的问题,任意一个Mesh设备都可以作为心跳接收方,提高了获取Mesh网络内设备在线状态效率。

  本发明实施例中,在任意一个Mesh设备通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理之后,任意一个Mesh设备均可以第二预定时间周期检查所述一个或多个Mesh设备的在线时间戳,其中,所述第二预定时间周期大于所述第一预定时间周期,例如,第一预定时间周期为5-10S,第二预定时间周期为15-20S;若所述一个或多个Mesh设备的在线时间戳在当前时间周期内未更新所述在线时间戳;使用当前时间更新所述一个或多个Mesh设备的离线时间戳。

  本发明实施例中,若Mesh设备的状态发生改变,会触发设备广播设备状态数据,任意一个Mesh设备均可接收所述一个或多个Mesh设备在检测到设备状态发生改变之后广播的设备状态数据,根据所述设备状态数据便可对所述一个或多个Mesh设备进行保活处理,进一步的,使用当前时间更新所述一个或多个Mesh设备的在线时间戳的方式,根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理,若在心跳报文广播之后的第一预定时间周期之内,不再广播心跳报文,通过Mesh发送设备状态数据之后的第一预定时间周期内不会在广播心跳报文,使得任一Mesh设备若在通过设备状态数据对Mesh设备进行保活处理之后的一段时间内(即第一预定时间周期内)不用频繁的进行保活处理,降低了数据处理的频率。

  在一可选的实施例中,在任一Mesh设备根据所述心跳报文对所述一个或多个Mesh设备进行保活处理之后,在Mesh设备中存储所述一个或多个Mesh设备的设备状态信息,其中,所述设备状态信息包括设备元素地址、Mesh设备的在线时间戳、Mesh设备的离线时间戳。

  在另一可选的实施例中,任一Mesh设备以所述第一预定时间周期广播所述心跳报文,和/或在检测到设备状态发生改变之后广播设备状态数据,其他Mesh设备在接收到心跳报文和/或设备状态数据之后,便可以进行保活处理。

  在另一可选的实施例中,任一Mesh设备判断当前时间与发送所述设备状态数据的时间的差值是否大于所述第一预定时间周期;在判断结果为是的情况下,以所述第一预定时间周期广播所述心跳报文,即在发送设备状态数据后的第一预定时间之内不发送心跳报文,在第一预定时间之后才发送心跳报文。

  本发明实施例,基于蓝牙Mesh access层(即Mesh应用层广播数据收发机制),每个普通节点既是心跳发送方也是心跳接收方,每个节点设备都可以维护当前Mesh网内的Mesh设备的在线状态。所有Mesh节点需使用同一套netkey与appkey,不支持跨Mesh子网的心跳同步功能。图3是根据本发明实施例的蓝牙Mesh设备心跳保活的流程图,如图3所示,包括:

  步骤S301,网关向node_1发送控制指令01;

  步骤S302,node_1向网关发送单播回复02;

  步骤S303,node_1确定设备状态发生改变,广播06数据;

  步骤S304,node_2至node_N中任一节点接收到06数据,缓存node_1的06数据,并对node_1进行心跳保活处理,更新node_1的在线时间戳;

  步骤S305,node_1以5秒为周期判断是否需要广播心跳;

  步骤S306,node_1确定在5秒内未广播06数据,广播心跳;

  步骤S307,node_2至node_N中任一节点接收到心跳,缓存node_1的心跳,并对node_1进行心跳保活处理,更新node_1的在线时间戳;

  步骤S308,node_2至node_N中任一节点若在17秒内未接收到心跳,则确定node_1离线,更新node_1的离线时间戳。

  Gateway可以作为蓝牙Mesh中的provisioner角色或第三方的普通节点角色;node_1,…,node_N表示同一Mesh网络内的不同的Proxy代理节点。

  Mesh网络内只有一个APPkey/Netkey的情况下,任意一个Proxy节点都能获取到同一网络内其他节点发送的广播数据。

  每个Proxy节点会以一定周期(如5秒)发送广播心跳,前提是:心跳发送周期内没有产生本设备的广播06数据,06数据即为上述的设备状态数据;Proxy节点状态变化后会产生06数据并广播发送,当前周期内便不会再发送广播心跳;任意Proxy节点收到当前Mesh网络内的广播类型数据(包括06数据和心跳)即可作为判心跳的依据,使用当前时间点更新该设备的在线时间戳;控制引起的回复为广播回复;查询引起的回复为单播回复,单播回复到查询的源地址;单播回复的是02数据,广播回复的是06数据。单播回复产生的数据不会导致该设备的在线时间戳变化;每个Proxy节点可以缓存同Mesh网络内N组Mesh节点的相关信息,包括:设备Element地址、Mesh节点的在线时间戳、离线时间戳等。

  每个Proxy节点以一定周期(如17秒)会检查一次当前自身维护的N组Mesh节点的在线时间戳,如果检查到有设备超过当前周期未更新其在线时间戳,即认为该设备离线,并使用当前时间点来更新该设备的离线时间戳;

  手机端连接Proxy节点后,手机会主动查询Mesh设备状态信息(即之前在每个设备中维护的N组Mesh节点信息)。

  本发明实施例,任意节点设备都可以作为心跳接收方,实现了真正的分布式Mesh设备在线状态检测管理功能,任意Mesh节点设备都可以监控全Mesh网络内节点在线状态。解决了典型的Mesh方案中手机需要提前驻留Mesh网络内一定周期,监测周期长、用户体验差的问题。在普通场景中,手机直连任意一个Mesh节点设备都可以在毫秒级的时间内获取全部Mesh网络内所有的在线设备信息。

  通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

  实施例2

  在本实施例中还提供了一种Mesh设备保活处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

  图4是根据本发明实施例的Mesh设备保活处理装置的框图,如图4所示,包括:

  建立模块42,用于与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  第一接收模块44,用于通过所述安全通道接收所述一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  第一保活处理模块46,用于根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  可选地,所述第一保活处理模块46,还用于

  通过更新所述一个或多个Mesh设备的在线时间戳的方式,对所述一个或多个Mesh设备进行保活处理。

  可选地,所述装置还包括:

  检查模块,用于以第二预定时间周期检查所述一个或多个Mesh设备的在线时间戳,其中,所述第二预定时间周期大于所述第一预定时间周期;

  更新模块,用于若所述一个或多个Mesh设备的在线时间戳在当前时间周期内未更新所述在线时间戳;

  使用模块,用于使用当前时间更新所述一个或多个Mesh设备的离线时间戳。

  图5是根据本发明优选实施例的Mesh设备保活处理装置的框图,如图5所示,所述装置还包括:

  第二接收模块52,用于通过所述安全通道接收所述一个或多个Mesh设备在检测到设备状态发生改变之后广播的设备状态数据;

  第二保活处理模块54,用于根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,所述第二保活处理模块54,还用于

  使用当前时间更新所述一个或多个Mesh设备的在线时间戳的方式,根据所述设备状态数据对所述一个或多个Mesh设备进行保活处理。

  可选地,所述装置还包括:

  存储模块,用于存储所述一个或多个Mesh设备的设备状态信息,其中,所述设备状态信息包括设备元素地址、Mesh设备的在线时间戳、Mesh设备的离线时间戳。

  可选地,所述装置还包括:

  第一广播模块,用于以所述第一预定时间周期广播所述心跳报文;和/或

  第二广播模块,用于在检测到设备状态发生改变之后广播设备状态数据。

  可选地,所述装置还包括:

  判断模块,用于判断当前时间与发送所述设备状态数据的时间的差值是否大于所述第一预定时间周期;

  第三广播模块,用于在判断结果为是的情况下,以所述第一预定时间周期广播所述心跳报文。

  需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

  实施例3

  本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

  可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

  S1,与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  S2,接收一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  S3,根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-ONly Memory,简称为ROM)、随机存取存储器(RaNdom Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。

  实施例4

  本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。

  可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。

  可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

  S1,与一个或多个Mesh设备通过同一网络层密钥和应用层密钥建立安全通道;

  S2,接收一个或多个Mesh设备以第一预定时间周期广播的心跳报文;

  S3,根据所述心跳报文对所述一个或多个Mesh设备进行保活处理。

  可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

  显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

  以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

《一种Mesh设备保活处理方法及装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)