一种智能设备发现方法、装置、控制端及系统与流程

文档序号:14179024阅读:220来源:国知局
一种智能设备发现方法、装置、控制端及系统与流程
本发明涉及智能家电
技术领域
,特别涉及一种智能设备发现方法、装置、控制端及系统。
背景技术
:随着科学技术的发展进步,智能设备的种类也越来越多。智能设备涉及到一个最基本的问题便是设备发现问题。那么为了上层应用软件能够知晓设备的状态信息,便于向设备发送相应的控制指令,则还需将发现设备的状态信息通知给上层应用软件。目前,通信协议在发现设备的状态信息时,会直接通知给上层应用软件。但是,由于单一的本地协议和单一的远程协议均会发现设备的状态信息,这样,按照现有方式直接通知给上层应用软件的话,将会导致上层应用软件频繁的接收到通知。技术实现要素:本发明实施例提供了一种智能设备发现方法、装置、控制端及系统,能够较好的避免上层应用软件频繁接收到通知。第一方面,本发明实施例提供了一种智能设备发现方法,实现至少两种通信协议的注册;还包括:当接收到注册的任一所述通信协议返回的智能设备的上线通知时,确定是否存在其他任一所述通信协议已发现所述智能设备上线;如果否,则向相应的上层应用软件通知所述智能设备上线;如果是,则不向所述上层应用软件通知所述智能设备上线;当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,确定是否存在任一所述通信协议已发现所述智能设备上线;如果否,则向所述上层应用软件通知所述智能设备下线;如果是,则不向所述上层应用软件通知所述智能设备下线。优选地,所述当接收到注册的任一所述通信协议返回的智能设备的上线通知时,确定是否存在其他任一所述通信协议已发现所述智能设备上线,包括:当接收到注册的任一所述通信协议返回的智能设备的上线通知时,将相应的所述通信协议的名称以及所述智能设备的产品序列号sn对应存储在预设的哈希表中;确定所述哈希表中是否存在其他任一所述通信协议的名称以及对应存储的所述sn;所述当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,确定是否存在任一所述通信协议已发现所述智能设备上线,包括:当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,在所述哈希表中查找相应的所述通信协议的名称以及对应存储的所述sn,并删除;确定删除处理后的所述哈希表中是否存在任一所述通信协议的名称以及对应存储的所述sn。优选地,所述向相应的上层应用软件通知所述智能设备上线,包括:利用预设的统一回调函数向所述上层应用软件通知所述智能设备上线;所述向所述上层应用软件通知所述智能设备下线,包括:利用所述统一回调函数向所述上层应用软件通知所述智能设备下线。优选地,进一步包括:当接收到注册的任一所述通信协议返回的所述智能设备的下线通知,且确定存在任一所述通信协议已发现所述智能设备上线时,从已发现所述智能设备上线的任一所述通信协议中选择一个目标通信协议;利用所述目标通信协议实现所述上层应用软件与所述智能设备间的通信。第二方面,本发明实施例提供了一种智能设备发现装置,包括:注册单元、上线通知确定单元以及下线通知确定单元,其中,所述注册单元,用于实现至少两种通信协议的注册;所述上线通知确定单元,用于当接收到注册的任一所述通信协议返回的智能设备的上线通知时,确定是否存在其他任一所述通信协议已发现所述智能设备上线;如果否,则向相应的上层应用软件通知所述智能设备上线;如果是,则不向所述上层应用软件通知所述智能设备上线;所述下线通知确定单元,用于当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,确定是否存在任一所述通信协议已发现所述智能设备上线;如果否,则向所述上层应用软件通知所述智能设备下线;如果是,则不向所述上层应用软件通知所述智能设备下线。优选地,所述上线通知确定单元,用于当接收到注册的任一所述通信协议返回的智能设备的上线通知时,将相应的所述通信协议的名称以及所述智能设备的产品序列号sn对应存储在预设的哈希表中;确定所述哈希表中是否存在其他任一所述通信协议的名称以及对应存储的所述sn;所述下线通知确定单元,用于当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,在所述哈希表中查找相应的所述通信协议的名称以及对应存储的所述sn,并删除;确定删除处理后的所述哈希表中是否存在任一所述通信协议的名称以及对应存储的所述sn。优选地,所述上线通知确定单元,用于利用预设的统一回调函数向所述上层应用软件通知所述智能设备上线;所述下线通知确定单元,用于利用所述统一回调函数向所述上层应用软件通知所述智能设备下线。优选地,进一步包括:通信控制单元;所述通信控制单元,用于当所述下线通知确定单元接收到注册的任一所述通信协议返回的所述智能设备的下线通知,且确定存在任一所述通信协议已发现所述智能设备上线时,从已发现所述智能设备上线的任一所述通信协议中选择一个目标通信协议;利用所述目标通信协议实现所述上层应用软件与所述智能设备间的通信。第三方面,本发明实施例提供了一种控制端,包括:上述任一实施例中所述的智能设备发现装置以及上层应用软件。第四方面,本发明实施例提供了一种智能设备发现系统,包括:上述实施例所述的控制端,以及至少一个智能设备。本发明实施例提供了一种智能设备发现方法、装置、控制端及系统,首先是实现至少两种通信协议的注册,这样,如果接收到注册的任一通信协议返回的智能设备的上线通知时,不再是直接通知上层应用软件该智能设备上线,而是需要确定是否存在其他任一通信协议已发现该智能设备上线,如果存在,则说明当前的通信协议并不是最初发现该智能设备上线的,因此无需在通知上层应用软件,如果不存在,则说明当前的通信协议为最初发现智能设备上线的,因此此时需要通知给上层应用软件该设备已上线,这样,保证上层应用软件只接收到一次该智能设备上线的通知,同理,当接收到该智能设备的下线通知时,也不再是直接通知给上层应用软件,而是需要确定当前是否还存在通信协议发现该设备上线,如果存在,则不再通知上层应用软件,如果不存在,则说明该智能设备下线,则向上层应用软件通知该智能设备下线,这样,保证了上层应用软件只接收到一次该智能设备下线的通知。因此,本方案较好的避免上层应用软件频繁接收到通知。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例提供的一种智能设备发现方法的流程图;图2是本发明另一个实施例提供的一种智能设备发现方法的流程图;图3是本发明一个实施例提供的一种智能设备发现装置的结构示意图;图4是本发明另一个实施例提供的一种智能设备发现装置的结构示意图;图5是本发明一个实施例提供的一种控制端的结构示意图;图6是本发明一个实施例提供的一种智能设备发现系统的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种智能设备发现方法,该方法可以包括以下步骤:步骤101:实现至少两种通信协议的注册,并分别执行步骤102和步骤105。步骤102:当接收到注册的任一所述通信协议返回的智能设备的上线通知时,确定是否存在其他任一所述通信协议已发现所述智能设备上线,如果否,则执行步骤103,如果是,则执行步骤104。步骤103:向相应的上层应用软件通知所述智能设备上线。步骤104:不向所述上层应用软件通知所述智能设备上线。步骤105:当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,确定是否存在任一所述通信协议已发现所述智能设备上线,如果否,则执行步骤106,如果是,则执行步骤107。步骤106:向所述上层应用软件通知所述智能设备下线。步骤107:不向所述上层应用软件通知所述智能设备下线。本发明实施例提供了一种智能设备发现方法,首先是实现至少两种通信协议的注册,这样,如果接收到注册的任一通信协议返回的智能设备的上线通知时,不再是直接通知上层应用软件该智能设备上线,而是需要确定是否存在其他任一通信协议已发现该智能设备上线,如果存在,则说明当前的通信协议并不是最初发现该智能设备上线的,因此无需在通知上层应用软件,如果不存在,则说明当前的通信协议为最初发现智能设备上线的,因此此时需要通知给上层应用软件该设备已上线,这样,保证上层应用软件只接收到一次该智能设备上线的通知,同理,当接收到该智能设备的下线通知时,也不再是直接通知给上层应用软件,而是需要确定当前是否还存在通信协议发现该设备上线,如果存在,则不再通知上层应用软件,如果不存在,则说明该智能设备下线,则向上层应用软件通知该智能设备下线,这样,保证了上层应用软件只接收到一次该智能设备下线的通知。因此,本方案较好的避免上层应用软件频繁接收到通知。在本发明一个实施例中,所述步骤102的具体实施方式,包括:当接收到注册的任一所述通信协议返回的智能设备的上线通知时,将相应的所述通信协议的名称以及所述智能设备的产品序列号sn对应存储在预设的哈希表中;确定所述哈希表中是否存在其他任一所述通信协议的名称以及对应存储的所述sn;所述步骤105的具体实施方式,包括:当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,在所述哈希表中查找相应的所述通信协议的名称以及对应存储的所述sn,并删除;确定删除处理后的所述哈希表中是否存在任一所述通信协议的名称以及对应存储的所述sn。上述实施例中,哈希表主要是用来存储智能设备的上线记录信息,其中,该上线记录信息可包括:发现智能设备上线的通信协议的名称以及智能设备的sn号,那么一旦当某通信协议断线导致智能设备下线时,则将该通信协议的名称以及该智能设备的sn号从哈希表中进行对应删除,这样,针对该sn号,哈希表中要么不存在该sn号,要么存在至少一个不同的通信协议的名称以及对应存储的该sn号,所以,针对该sn号,只要哈希表中存在该sn号以及对应存储的其它任一个通信协议的名称,则说明该智能设备此时还是处于上线状态。为清楚的说明上述实施例,下面将以如下所示的表1为例。表1通信协议名称智能设备sn号ippf31***wtdxmppf31***wtdippcnx7***11假设,在经过一段时间后,接收到注册的通信协议ipp返回的智能设备f31***wtd的下线通知,则将通信协议的名称ipp以及sn号f31***wtd从表1中对应删除,此时表1将变为如下表2。表2通信协议名称智能设备sn号xmppf31***wtdippcnx7***11由表2可以看出,表中还对应存储有mxpp以及f31***wtd,也即还有xmpp发现智能设备f31***wtd处于上线状态,因此,即使接收到ipp返回的该智能设备的下线通知,但由于还有其他通信协议使得该智能设备在线(也即上线状态),因此,并不会通知相应的上层应用软件该智能设备已下线,从而避免了频繁的向上层应用软件发送通知的情况。假设,在上述表1的情况下,经过一段时间后,接收到注册的通信协议mqtt返回的智能设备f31***wtd的上线通知,则将名称mqtt以及sn号f31***wtd对应存储至表1中,此时表1变为如下表3。表3通信协议名称智能设备sn号ippf31***wtdxmppf31***wtdippcnx7***11mqttf31***wtd由表3可以看出,除了刚刚对应存储的mqtt和f31***wtd外,表3中还对应存储有ipp和f31***wtd,以及xmpp和f31***wtd,可见,在接收到ipp返回的上线通知之前,ipp和xmpp均已发现智能设备f31***wtd上线,因此,即使接收到ipp返回的上线通知,但由于还有其他通信协议使得该智能设备在线,所以不再向相应的上层应用软件发送上线通知。值得说明的是,本发明实施例主要是存储通信协议的名称以及智能设备的sn号,但还可包括通知接收时间等其它多种信息,具体的,可根据实际需求进行设定。在本发明一个实施例中,所述步骤103的具体实施方式,包括:利用预设的统一回调函数向所述上层应用软件通知所述智能设备上线;所述步骤106的具体实施方式,包括:利用所述统一回调函数向所述上层应用软件通知所述智能设备下线。在本发明实施例中,通过预先设置统一回调函数ondeviceadd(),然后在接收到每一种通信协议对应的回调函数返回的通知时,例如,接收到mqtt对应的回调函数onmqttdeviceadd返回的智能设备的上线通知,以及接收到xmpp对应的回调函数onxmppdeviceadd()返回的该智能设备的上线通知,然后由统一回调函数ondeviceadd()向相应的上层应用软件通知一次该智能设备上线。在本发明一个实施例中,进一步包括:当接收到注册的任一所述通信协议返回的所述智能设备的下线通知,且确定存在任一所述通信协议已发现所述智能设备上线时,从已发现所述智能设备上线的任一所述通信协议中选择一个目标通信协议;利用所述目标通信协议实现所述上层应用软件与所述智能设备间的通信。上述实施例中,如果正在使用的通信协议断线而导致智能设备下线时,还可从其他发现该智能设备上线的通信协议中选择一个优先级较高的通信协议实现通信,以此能够通过上层应用软件向相应的智能设备发现控制指令。下面将详细说明本发明实施例提供的一种智能设备发现方法,如图2所示,该方法可以包括以下步骤:步骤201:实现至少两种通信协议的注册,当接收到注册的任一通信协议返回的智能设备的上线通知时,执行步骤202,当接收到注册的任一通信协议返回的智能设备的下线通知时,执行步骤206。在本发明实施例中,为了能够稳定的发现设备,避免一种通信协议断线时,导致该设备不会被发现的情况,因此可实现多种通信协议的注册,以通过注册的每一种通信协议去发现智能设备,其中,注册的通信协议中可包括至少一种本地的通信协议,以及至少一种远程的通信协议(主要是满足配网,以及配网后的本地通信以及远程通信)。步骤202:将相应的通信协议的名称以及智能设备的sn对应存储在预设的哈希表中。例如,通信协议的名称为ipp,智能设备的sn号为cnx7***11。步骤203:确定哈希表中是否存在其他任一通信协议的名称以及对应存储的sn,如果否,则执行步骤204,如果是,则执行步骤205。由于哈希表中只是用来存储当前还是发现智能设备处于上线的通信协议的名称以及该智能设备的sn号,因此,在接收到ipp返回的sn号对应的智能设备cnx7***11的上线通知时,则只需从该哈希表中查找是否还存在其它任一通信协议的名称以及对应存储的cnx7***11,如果存在,则说明还有其它通信协议目前还是发现该智能设备上线的,因此,不再通知上层应用软件,如果不存在,则说明当前只有该ipp发现该智能设备上线,因此需要通知上层应用软件,以便上层应用软件向该智能设备发送相应的控制指令。步骤204:利用预设的统一回调函数向相应的上层应用软件通知智能设备上线,并结束当前流程。在本发明实施例中,主要是接收所有注册协议分别对应的回调函数发来的通知,在经过统一管理后,再由预设的统一回调函数通知相应的上层应用软件。步骤205:不向上层应用软件通知智能设备上线,并结束当前流程。步骤206:在哈希表中查找相应的通信协议的名称以及对应存储的sn,并删除。在本发明实施例中,为了提高效率,则在接收到下线通知后,将之前已经存储的上线通知记录进行删除,从而每一次通过查看哈希表,能够快速的知晓相应的智能设备在当前是否还处于上线状态。步骤207:确定删除处理后的哈希表中是否存在任一通信协议的名称以及对应存储的sn,如果否,则执行步骤208,如果是,则执行步骤209。步骤208:利用统一回调函数向上层应用软件通知智能设备下线,并结束当前流程。步骤209:不向上层应用软件通知智能设备下线。步骤210:从已发现智能设备上线的任一通信协议中选择一个目标通信协议。为了避免某通信协议断线导致的智能设备下线,则可从其他通信协议中选择一个通信协议,来维持相应的上层应用软件与智能设备间的通信。步骤211:利用选择的目标通信协议实现上层应用软件与智能设备间的通信。如图3所示,本发明实施例提供了一种智能设备发现装置,包括:注册单元301、上线通知确定单元302以及下线通知确定单元303,其中,所述注册单元301,用于实现至少两种通信协议的注册;所述上线通知确定单元302,用于当接收到注册的任一所述通信协议返回的智能设备的上线通知时,确定是否存在其他任一所述通信协议已发现所述智能设备上线;如果否,则向相应的上层应用软件通知所述智能设备上线;如果是,则不向所述上层应用软件通知所述智能设备上线;所述下线通知确定单元303,用于当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,确定是否存在任一所述通信协议已发现所述智能设备上线;如果否,则向所述上层应用软件通知所述智能设备下线;如果是,则不向所述上层应用软件通知所述智能设备下线。在本发明一个实施例中,所述上线通知确定单元,用于当接收到注册的任一所述通信协议返回的智能设备的上线通知时,将相应的所述通信协议的名称以及所述智能设备的产品序列号sn对应存储在预设的哈希表中;确定所述哈希表中是否存在其他任一所述通信协议的名称以及对应存储的所述sn;所述下线通知确定单元,用于当接收到注册的任一所述通信协议返回的所述智能设备的下线通知时,在所述哈希表中查找相应的所述通信协议的名称以及对应存储的所述sn,并删除;确定删除处理后的所述哈希表中是否存在任一所述通信协议的名称以及对应存储的所述sn。在本发明一个实施例中,所述上线通知确定单元,用于利用预设的统一回调函数向所述上层应用软件通知所述智能设备上线;所述下线通知确定单元,用于利用所述统一回调函数向所述上层应用软件通知所述智能设备下线。如图4所示,在本发明一个实施例中,进一步包括:通信控制单元401;所述通信控制单元401,用于当所述下线通知确定单元接收到注册的任一所述通信协议返回的所述智能设备的下线通知,且确定存在任一所述通信协议已发现所述智能设备上线时,从已发现所述智能设备上线的任一所述通信协议中选择一个目标通信协议;利用所述目标通信协议实现所述上层应用软件与所述智能设备间的通信。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。如图5所示,本发明实施例提供了一种控制端,包括:上述任一实施例所述的智能设备发现装置501以及上层应用软件502。如图6所示,本发明实施例提供了一种智能设备发现系统,包括:上述任一实施例所述的控制端601,以及至少一个智能设备602。本发明实施例提供了一种计算机可读介质,包括计算机执行指令,当存储控制器的处理器执行所述计算机执行指令时,所述存储控制器执行上述任一实施例所述的智能设备发现方法。本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述存储控制器执行上述任一实施例所述的智能设备发现方法。综上,本发明各个实施例至少具有如下有益效果:1、在本发明实施例中,首先是实现至少两种通信协议的注册,这样,如果接收到注册的任一通信协议返回的智能设备的上线通知时,不再是直接通知上层应用软件该智能设备上线,而是需要确定是否存在其他任一通信协议已发现该智能设备上线,如果存在,则说明当前的通信协议并不是最初发现该智能设备上线的,因此无需在通知上层应用软件,如果不存在,则说明当前的通信协议为最初发现智能设备上线的,因此此时需要通知给上层应用软件该设备已上线,这样,保证上层应用软件只接收到一次该智能设备上线的通知,同理,当接收到该智能设备的下线通知时,也不再是直接通知给上层应用软件,而是需要确定当前是否还存在通信协议发现该设备上线,如果存在,则不再通知上层应用软件,如果不存在,则说明该智能设备下线,则向上层应用软件通知该智能设备下线,这样,保证了上层应用软件只接收到一次该智能设备下线的通知。因此,本方案较好的避免上层应用软件频繁接收到通知。2、在本发明实施例中,通过哈希表存储智能设备的上线记录信息,中,该上线记录信息可包括:发现智能设备上线的通信协议的名称以及智能设备的sn号,以及在接收到该智能设备的下线通知时,将相对应的上线记录信息从该哈希表中进行删除,这样,通过查看哈希表,能够快速的知晓相应的智能设备在当前是否还处于上线状态,从而能够快速的确定是否向相应的上层应用软件发送上线通知或者是下线通知。3、在本发明实施例中,通过利用统一的回调函数通知相应的上层应用软件,能够简化开发人员的工作量,提高开发效率,提高用户体验。4、在本发明实例中,在接收到智能设备的下线通知,且确定还存在通信协议发现智能设备上线时,还可从能够从发现智能设备上线的这些通信协议中选择一个维持与智能设备间的通信,同时,通过注册多种通信协议,还可在某一通信协议无法发现智能设备上线时,利用其它通信协议发现智能设备上线,因此,能够保证智能设备发现的稳定性和可靠性。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1