技术领域
[0001] 本申请涉及智慧家庭技术领域,具体而言,涉及一种组网的建立方法和装置、存储介质及电子设备。
相关背景技术
[0002] 在相关技术中,当多个设备在同一路由器下时,由于路由器的设置不当,可能导致这些多个设备之间的网络隔离,从而影响它们之间的通信。例如,如果路由器的局域网模式被设置为隔离模式,那么在该路由器下的设备将无法互相通信。或者,当多个设备不在同一个路由器下时,也会导致设备间连接失败从而无法通信。
[0003] 针对相关技术中,设备间因连接失败而无法通讯的问题,尚未提出有效的解决方案。
具体实施方式
[0023] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0024] 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0025] 根据本申请实施例的一个方面,提供了一种组网的建立方法。该组网的建立方法广泛应用于智慧家庭(Smart Home)、智能家居、智能家用设备生态、智慧住宅(Intelligence House)生态等全屋智能数字化控制应用场景。可选地,在本实施例中,上述组网的建立方法可以应用于如图1所示的由第一设备102和第二设备104所构成的硬件环境中。如图1所示,第一设备102通过网络与第二设备104进行连接,可用于为第一设备102或第一设备102上安装的客户端提供服务(如应用服务等),可在第一设备102上或独立于第一设备102设置数据库,用于为第一设备102和第二设备104提供数据存储服务,可在第一设备102上或独立于第一设备102配置云计算和/或边缘计算服务,用于为第一设备102和第二设备104提供数据运算服务。
[0026] 上述网络可以包括但不限于以下至少之一:有线网络,无线网络。上述有线网络可以包括但不限于以下至少之一:广域网,城域网,局域网,上述无线网络可以包括但不限于以下至少之一:WIFI(Wireless Fidelity,无线保真),蓝牙。第一设备102和第二设备104可以并不限定于为PC、手机、平板电脑、智能空调、智能烟机、智能冰箱、智能烤箱、智能炉灶、智能洗衣机、智能热水器、智能洗涤设备、智能洗碗机、智能投影设备、智能电视、智能晾衣架、智能窗帘、智能影音、智能插座、智能音响、智能音箱、智能新风设备、智能厨卫设备、智能卫浴设备、智能扫地机器人、智能擦窗机器人、智能拖地机器人、智能空气净化设备、智能蒸箱、智能微波炉、智能厨宝、智能净化器、智能饮水机、系统平台等。
[0027] 在本实施例中提供了一种组网的建立方法,应用于上述第一设备,图2是根据本申请实施例的组网的建立方法的流程图,该流程包括如下步骤:
[0028] 步骤S202,在确定第一设备和第二设备无法通信的情况下,向第二设备发送管理帧广播请求,其中,管理帧广播请求携带有第一设备的第一网络参数;
[0029] 步骤S204,接收第二设备基于管理帧广播请求发送的管理帧单播响应,其中,管理帧响应中携带有第二设备的第二网络参数;
[0030] 步骤S206,根据第一网络参数和第二网络参数确定是否需要进行组网;
[0031] 步骤S208,在需要进行组网的情况下,建立第一设备和第二设备的组网。
[0032] 在本申请实施例中,在确定第一设备和第二设备无法通信的情况下,向所述第二设备发送管理帧广播请求,其中,所述管理帧广播请求中包含了所述第一设备的第一网络参数;接收所述第二设备的管理帧单播响应,其中,所述管理帧单播响应中包含了所述第二设备的第二网络参数;根据所述第一网络参数和所述第二网络参数确定是否需要进行组网;在需要进行组网的情况下,建立所述第一设备和所述第二设备的组网。采用上述技术方案,解决了相关技术中,设备间因连接失败而无法通信的问题,实现了设备的正常通信。
[0033] 在一个可选实施例中,根据所述第一网络参数和所述第二网络参数确定是否需要进行组网,包括:通过所述第一网络参数和所述第二网络参数确定所述第一设备和所述第二设备是否在同一个路由器下;在所述第一设备和所述第二设备不在同一路由器下的情况下,确定需要进行组网;在所述第一设备和所述第二设备在同一个路由器下的情况下,检测所述第一设备和所述第二设备的网络连接是否正常,以及在不正常的情况下,确定需要进行组网。
[0034] 通过第一网络参数和第二网络参数中的IP地址和子网掩码确定第一设备和第二设备是否在同一路由器下。当第一设备和第二设备的IP地址不同和/或者子网掩码不匹配,那么第一设备和第二设备不在同一个路由器下,第一设备和第二设备需要重新组网。当第一设备和第二设备的IP地址和子网掩码均一致时,可以认定第一设备和第二设备连接在同一个路由器下,此时,第一设备执行ping第二设备IP地址的命令,在收到“请求超时”或“目的地不可达”的消息的情况下,确定第一设备和第二设备网络连接异常,第一设备和第二设备需要进行组网。
[0035] 在一个可选实施例中,对于上述步骤S208的实现方式有多种,在一个可选实施例中:获取所述第一设备的第一参数信息,以及所述第二设备的第二参数信息,其中,所述第一参数信息包括以下至少之一:第一优先级,第一节点类型,第一接收信号强度指示器RSSI值,第一媒体接入控制MAC地址,所述第二参数信息包括以下至少之一:第二优先级,第二节点类型,第二接收信号强度指示器RSSI值,第二媒体接入控制MAC地址;根据所述第一参数信息和所述第二参数信息建立所述第一设备和所述第二设备的组网。也就是说,在本发明实施例中,是根据是第一参数信息和第二参数信息来执行组网过程。对于第一参数信息和第二参数信息的选取可以根据实际情况灵活调整。可以只选择参数信息中的一个,两个,三个,甚至全部选用。
[0036] 以下实施例,在第一参数信息和第二参数信息中,依次选取优先级、节点类型、RSSI值和MAC地址,来建立第一设备和第二设备的组网。
[0037] 在一个可选实施例中,根据所述第一参数信息和所述第二参数信息建立所述第一设备和所述第二设备的组网,包括:比较所述第一优先级和所述第二优先级的优先级高低;在所述第一优先级高于所述第二优先级的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一优先级小于所述第二优先级的情况下,将所述第一设备组网为所述第二设备的子节点。
[0038] 在一个可选实施例中,比较所述第一优先级和所述第二优先级的优先级高低之后,所述方法还包括:在所述第一优先级和所述第二优先级一致的情况下,获取所述第一节点类型和所述第二节点类型;在根据所述第一节点类型和所述第二节点类型确定所述第一设备是根节点,且所述第二设备是子节点的情况下,将所述第二设备组网为所述第一设备的子节点;在根据所述第一节点类型和所述第二节点类型确定所述第二设备是根节点,且所述第一设备是子节点的情况下,将所述第一设备组网为所述第二设备的子节点。
[0039] 在一个可选实施例中,获取所述第一节点类型和所述第二节点类型之后,所述方法还包括:在所述第一节点类型和所述第二节点类型均为根节点,或所述第一节点类型和所述第二节点类型均为子节点的情况下,获取第一RSSI值和所述第二RSSI值;在所述第一RSSI值大于所述第二RSSI值的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一RSSI值小于所述第二RSSI值的情况下,将所述第一设备组网为所述第二设备的子节点。
[0040] 在一个可选实施例中,获取第一RSSI值和所述第二RSSI值之后,所述方法还包括:在所述第一RSSI值等于所述第二RSSI值的情况下,获取所述第一MAC地址和所述第二MAC地址;在所述第一MAC地址大于所述第二MAC地址的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一MAC地址小于所述第二MAC地址的情况下,将所述第一设备组网为所述第二设备的子节点。
[0041] 举个例子,当第一设备和第二设备需要重新组网,假设第一设备的优先级为1,第二设备的优先级为2,根据规则,第一设备的优先级小于第二设备,因此,第一设备将组网在第二设备之下。
[0042] 当第一优先级和第二优先级一致时,比较第一设备和第二设备的节点类型,假设第一设备的节点类型是根节点,第二设备的节点类型是子节点,根据规则,第二设备将作为第一设备的子节点,因此,第二设备将组网在第一设备之下。
[0043] 当第一优先级和第二优先级一致,第一节点类型和第二节点类型也一致时,比较第一设备和第二设备的RSSI值,假设第一RSSI值为1,第二RSSI值为2,根据规则,第一RSSI值小于第二RSSI值,因此,第一设备将组网在第二设备之下。
[0044] 当第一优先级和第二优先级一致,第一节点类型和第二节点类型一致,第一RSSI值和第二RSSI值也一致时,比较第一MAC地址和第二MAC地址,假设第一MAC地址为1,第二MAC地址为2,根据规则,第一MAC地址小于第二MAC地址,因此,第一设备将组网在第二设备之下。
[0045] 在另一个可选实施例中,选取第一参数信息和第二参数信息中,依次对应的节点类型、优先级、MAC地址和RSSI值,进行另一种排列方式下的组网方法。
[0046] 在一个可选实施例中,根据所述第一参数信息和所述第二参数信息建立所述第一设备和所述第二设备的组网,包括:获取所述第一节点类型和所述第二节点类型;在根据所述第一节点类型和所述第二节点类型确定所述第一设备是根节点,且所述第二设备是子节点的情况下,将所述第二设备组网为所述第一设备的子节点;在根据所述第一节点类型和所述第二节点类型确定所述第二设备是根节点,且所述第一设备是子节点的情况下,将所述第一设备组网为所述第二设备的子节点。
[0047] 在一个可选实施例中,获取所述第一节点类型和所述第二节点类型之后,所述方法还包括:在所述第一节点类型和所述第二节点类型均为根节点,或所述第一节点类型和所述第二节点类型均为子节点的情况下,比较所述第一优先级和所述第二优先级的优先级高低;在所述第一优先级高于所述第二优先级的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一优先级小于所述第二优先级的情况下,将所述第一设备组网为所述第二设备的子节点。
[0048] 在一个可选实施例中,比较所述第一优先级和所述第二优先级的优先级高低之后,所述方法还包括:在所述第一优先级和所述第二优先级一致的情况下,获取所述第一MAC地址和所述第二MAC地址;在所述第一MAC地址大于所述第二MAC地址的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一MAC地址小于所述第二MAC地址的情况下,将所述第一设备组网为所述第二设备的子节点。
[0049] 在一个可选实施例中,获取所述第一MAC地址和所述第二MAC地址之后,所述方法还包括:在所述第一MAC地址和第二MAC地址大小相同的情况下,获取所述第一RSSI值和所述第二RSSI值;在所述第一RSSI值大于所述第二RSSI值的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一RSSI值小于所述第二RSSI值的情况下,将所述第一设备组网为所述第二设备的子节点。
[0050] 需要说明的是,上述实施例只是一种可能的组网方法,还可以通过第一参数信息和第二参数信息的其他组合方式得到另外的组网方法,本申请对此不做限制。
[0051] 为了更好的理解上述组网的建立方法的过程,以下再结合可选实施例对上述组网的建立实现方法流程进行说明,但不用于限定本申请实施例的技术方案。
[0052] 图3为根据本发明可选实施例的组网的建立方法的流程图,如图3所示,具体包括以下步骤:
[0053] 在本发明可选实施例中,根据搜索机制,第一设备需要确定发送管理帧的目的是为了与第二设备建立连接。根据设定的目的,第一设备需要配置相应的管理帧广播请求类型为探询帧,且该管理帧广播请求中包含了第一设备的第一网络参数;发出以广播地址为目的地的管理帧广播请求,以便让所有的设备都能收到第一设备的管理帧广播请求。
[0054] 第二设备在搜索到第一设备的管理帧广播请求后,将生成一个管理帧单播响应,该管理帧单播响应中包含了第二设备的第二网络参数。为了确保管理帧单播响应直接发送给第一设备,第二设备需要在管理帧单播响应中将自己的地址设置为源地址,将第一设备的地址设置为目的地址;在设置好源地址和目的地址后,第二设备发送管理帧单播响应到第一设备。
[0055] 第一设备在接收到第二设备的管理帧单播响应后,解析该管理帧单播响应中的源地址和目的地址,以确保接收的是第二设备的信号,并根据由第一网络参数和第二网络参数建立的决策机制,确定是否需要进行组网。
[0056] 在决策机制中,当第一设备和第二设备的IP地址不同或者子网掩码不匹配,则第一设备和第二设备不在同一路由器下,需要将这两个设备重新进行组网。当第一设备和第二设备的IP地址和子网掩码一致,则第一设备和第二设备在同一个路由器下。第一设备执行ping第二设备IP地址的命令,在收到“请求超时”或“目的地不可达”的消息的情况下,确定第一设备和第二设备网络连接异常,第一设备和第二设备需要重新组网。
[0057] 根据组网机制决定第一设备和第二设备的组网方法,首先根据组网偏好值优先级(相当于上述实施例的优先级)判断,优先级低的一方组到优先级高的一方下面;当组网偏好值优先级一样时,根据双方设备角色判断,当一方是UMESH子节点,另一方是UMESH根节点时,子节点方需重新组网根节点方下面;当双方都是子节点或者都是根节点时,比较双方RSSI值,RSSI小的一方组到RSSI大的一方下面;当RSSI一样时,则比较双方MAC地址,MAC地址小的一方组到MAC地址大的一方下面。组网成功后即可正常通信。
[0058] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,操作终端,或者网络设备等)执行本申请各个实施例的方法。
[0059] 图4是根据本申请实施例的一种组网的建立装置的结构框图;如图4所示,包括:
[0060] 发送模块40,用于在确定第一设备和第二设备无法通信的情况下,向所述第二设备发送管理帧广播请求,其中,所述管理帧广播请求携带有所述第一设备的第一网络参数;
[0061] 接收模块42,用于接收所述第二设备基于所述管理帧广播请求发送的管理帧单播响应,其中,所述管理帧响应中携带有所述第二设备的第二网络参数;
[0062] 确定模块44,用于根据所述第一网络参数和所述第二网络参数确定是否需要进行组网;
[0063] 建立模块46,用于在需要进行组网的情况下,建立所述第一设备和所述第二设备的组网。
[0064] 在本申请实施例中,在确定第一设备和第二设备无法通信的情况下向所述第二设备发送管理帧广播请求,其中,所述管理帧广播请求中包含了所述第一设备的第一网络参数;接收所述第二设备的管理帧单播响应,其中,所述管理帧单播响应中包含了所述第二设备的第二网络参数;根据所述第一网络参数和所述第二网络参数确定是否需要进行组网;在需要进行组网的情况下,建立所述第一设备和所述第二设备的组网。采用上述技术方案,解决了相关技术中,设备间因连接失败而无法通信的问题,实现了设备的正常通信。
[0065] 在一个可选实施例中,确定模块44,还用于通过所述第一网络参数和所述第二网络参数确定所述第一设备和所述第二设备是否在同一个路由器下;在所述第一设备和所述第二设备不在同一路由器下的情况下,确定需要进行组网;在所述第一设备和所述第二设备在同一个路由器下的情况下,检测所述第一设备和所述第二设备的网络连接是否正常,以及在不正常的情况下,确定需要进行组网。
[0066] 在一个可选实施例中,建立模块46,还用于获取所述第一设备的第一参数信息,以及所述第二设备的第二参数信息,其中,所述第一参数信息包括以下至少之一:第一优先级,第一节点类型,第一接收信号强度指示器RSSI值,第一媒体接入控制MAC地址,所述第二参数信息包括以下至少之一:第二优先级,第二节点类型,第二收信号强度指示器RSSI值,第二媒体接入控制MAC地址;根据所述第一参数信息和所述第二参数信息建立所述第一设备和所述第二设备的组网。
[0067] 在一个可选实施例中,建立模块46,还用于比较所述第一优先级和所述第二优先级的优先级高低;在所述第一优先级高于所述第二优先级的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一优先级小于所述第二优先级的情况下,将所述第一设备组网为所述第二设备的子节点。
[0068] 在一个可选实施例中,建立模块46,还用于在所述第一优先级和所述第二优先级一致的情况下,获取所述第一节点类型和所述第二节点类型;在根据所述第一节点类型和所述第二节点类型确定所述第一设备是根节点,且所述第二设备是子节点的情况下,将所述第二设备组网为所述第一设备的子节点;在根据所述第一节点类型和所述第二节点类型确定所述第二设备是根节点,且所述第一设备是子节点的情况下,将所述第一设备组网为所述第二设备的子节点。
[0069] 在一个可选实施例中,建立模块46,还用于在所述第一节点类型和所述第二节点类型均为根节点,或所述第一节点类型和所述第二节点类型均为子节点的情况下,获取第一RSSI值和所述第二RSSI值;在所述第一RSSI值大于所述第二RSSI值的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一RSSI值小于所述第二RSSI值的情况下,将所述第一设备组网为所述第二设备的子节点。
[0070] 在一个可选实施例中,建立模块46,还用于在所述第一RSSI值等于所述第二RSSI值的情况下,获取所述第一MAC地址和所述第二MAC地址;在所述第一MAC地址大于所述第二MAC地址的情况下,将所述第二设备组网为所述第一设备的子节点;在所述第一MAC地址小于所述第二MAC地址的情况下,将所述第一设备组网为所述第二设备的子节点。
[0071] 本申请的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
[0072] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
[0073] S1,在确定第一设备和第二设备无法通信的情况下,向第二设备发送管理帧广播请求,其中,管理帧广播请求携带有第一设备的第一网络参数;
[0074] S2,接收第二设备基于管理帧广播请求发送的管理帧单播响应,其中,管理帧响应中携带有第二设备的第二网络参数;
[0075] S3,根据第一网络参数和第二网络参数确定是否需要进行组网;
[0076] S4,在需要进行组网的情况下,建立第一设备和第二设备的组网。
[0077] 本申请的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0078] 可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0079] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0080] S1,在确定第一设备和第二设备无法通信的情况下,向第二设备发送管理帧广播请求,其中,管理帧广播请求携带有第一设备的第一网络参数;
[0081] S2,接收第二设备基于管理帧广播请求发送的管理帧单播响应,其中,管理帧响应中携带有第二设备的第二网络参数;
[0082] S3,根据第一网络参数和第二网络参数确定是否需要进行组网;
[0083] S4,在需要进行组网的情况下,建立第一设备和第二设备的组网。
[0084] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read‑Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0085] 本申请的实施例还提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
[0086] 本申请的实施例还提供了另一种计算机程序产品,包括非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
[0087] 本中请的实施例还提供了一种计算机程序,该计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处埋器执行该计算机指令,使得该计算机设备执行上述任一项方法实施例中的步骤。
[0088] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0089] 显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
[0090] 以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。