发明内容
为了解决现有技术中BLE网状网络的组网的问题,本发明提供了一种用于蓝牙网状网络的网络管理方法、已入网蓝牙模块、待入网蓝牙模块和网络管理模块。
根据本发明的一个方面,提供了一种用于蓝牙网状网络的网络管理方法,蓝牙网状网络中包括至少一个已入网蓝牙模块,该方法包括:
已入网蓝牙模块接收广播包,并判断广播包是否来自于待入网蓝牙模块,若是,则执行下述任一种操作:
操作一,判断当前网络规模是否小于网络最大规模,若小于,则广播包含当前网络规模和网络最大规模的广播包;
操作二,广播包含当前网络规模和网络最大规模的广播包。
其中,该方法还包括:
若判断广播包不是来自于待入网蓝牙模块,则判断广播包中与自己对应的转发标志位是否表示已转发,若表示未转发,则将与自己对应的转发标志位设置为表示已转发,并广播该广播包。
其中,已入网蓝牙模块判断广播包是否来自于待入网蓝牙模块包括:
已入网蓝牙模块判断广播包中的转发标志位是否均表示已转发,若是,则判断广播包来自于待入网蓝牙模块。
其中,该方法还包括:
若已入网蓝牙模块为网络管理模块,则网络管理模块广播包含更新的网络最大规模的广播包,并在确定蓝牙网状网络中所有已入网蓝牙模块收到包含更新的网络最大规模的广播包后,广播指示所有已入网蓝牙模块使用更新的网络最大规模的广播包。
其中,该方法包括:
待入网蓝牙模块生成请求入网的广播包,并广播请求入网的广播包,若在设定时间段内收到包含当前网络规模和网络最大规模的广播包,则判断当前网络规模是否小于网络最大规模,若小于,则判断可以入网,并确定可用的转发标志位。
其中,待入网蓝牙模块生成请求入网的广播包包括:
待入网蓝牙模块将请求入网的广播包中转发标志位均设置为表示已转发。
根据本发明的另一方面,提供了一种用于蓝牙网状网络的已入网蓝牙模块,已入网蓝牙模块包括:
第一接收模块,用于接收广播包;
第一判断模块,用于判断所送广播包是否来自于待入网蓝牙模块;
第一发送模块,用于当判断广播包来自于待入网蓝牙模块时,执行下述任一种操作:
操作一,判断当前网络规模是否小于网络最大规模,若小于,则广播包含当前网络规模和网络最大规模的广播包;
操作二,广播包含当前网络规模和网络最大规模的广播包。
其中,
第一判断模块还用于判断广播包不是来自于待入网蓝牙模块时,判断广播包中与自己对应的转发标志位是否表示已转发;
已入网蓝牙模块还包括标志位设置模块,用于当与自己对应的转发标志位表示未转发时,将与自己对应的转发标志位设置为表示已转发;
第一发送模块还用于在将广播包中与自己对应的转发标志位设置为表示已转发后,广播该广播包。
其中,
第一判断模块还用于判断广播包中的转发标志位是否均表示已转发,若是,则判断广播包来自于待入网蓝牙模块。
其中,
若已入网蓝牙模块为网络管理模块,则第一发送模块还用于广播包含更新的网络最大规模的广播包,并在确定蓝牙网状网络中所有已入网蓝牙模块收到包含更新的网络最大规模的广播包后,广播指示所有已入网蓝牙模块使用更新的网络最大规模的广播包。
根据本发明的另一方面,提供了一种用于蓝牙网状网络的待入网蓝牙模块,待入网蓝牙模块包括:
生成模块,用于生成请求入网的广播包;
第二发送模块,用于广播请求入网的广播包;
标志位确定模块,用于在设定时间段内收到包含当前网络规模和网络最大规模的广播包时,判断当前网络规模是否小于网络最大规模,若小于,则判断可以入网,并确定可用的转发标志位。
其中,
生成模块还用于将请求入网的广播包中转发标志位均设置为表示已转发。
根据本发明的另一方面,提供了一种计算机可读存储介质,存储介质上存储有计算机程序,程序被处理器执行时实现上述方法的步骤。
根据本发明的另一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述方法的步骤。
采用本发明中的用于蓝牙网状网络的网络管理方法、已入网蓝牙模块、待入网蓝牙模块和网络管理模块,网络管理模块只需要设置很少的网络基本信息,主要是网络最大规模,后续每个蓝牙模块都能自动入网,使用简单,并且网络管理模块能发送和接收BLE广播数据即可,资源要求不高。本发明技术方案还具有下述有点:(1)组网设置简单,自动化程度高;(2)对网络管理模块和普通蓝牙模块的资源要求较低,生产成本较低。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
首先,说明一下本发明中使用的基本协议。在本发明蓝牙通信协议中,BLE广播包负载工31个字节,其分为两部分:转发标志字段(1-16个字节),应用负载字段(30-15个字节)。
本发明中,将转发标志字段的位分配给蓝牙网状网络中的蓝牙模块,即网络中的每一个蓝牙模块占用转发标志字段中的一位作为其转发标志位。例如,若预定义网络规模为8,则转发标志字段占用1个字节,其中第1,2,3,…,8个蓝牙模块分别占用转发标志字段中第一个字节的bit0,bit1,bit2,….,bit7。
网络的规模,即网络中容纳的蓝牙模块的数量可以根据需要扩大,这种情况下,需要增加转发标志字段占用的字节数,从而相应地缩小应用负载字段占用的字节数。因此,可以根据网络的规模决定转发标志字段和应用负载字段的长度。
另外,在本发明中规定:(1)若在一个广播包中,一个已入网蓝牙模块的转发标志位被设置为“1”,则表示该已入网蓝牙模块已转发该广播包,若被设置为“0”,则表示该已入网蓝牙模块未转发该广播包;(2)若一个广播包中转发标志字段的所有位均为“1”,则表示该广播包由待入网蓝牙模块发出;(3)若一个广播包中转发标志字段的所有为均为“0”,则表示该广播包由网络管理模块发出。
需要说明的是,本发明中的蓝牙网状网络是基于BLE广播的网状网络,已入网蓝牙模块和待入网蓝牙模块均是支持BLE通信协议的蓝牙模块,网络管理模块也是支持BLE通信协议的蓝牙模块。
本发明提供了一种用于蓝牙网状网络的网络管理方法,该方法由已入网蓝牙模块执行。如图1所示,该方法包括:
已入网蓝牙模块接收广播包,并判断广播包是否来自于待入网蓝牙模块,若是,则执行下述任一种操作:
操作一,判断当前网络规模是否小于网络最大规模,若小于,则广播包含当前网络规模和网络最大规模的广播包;
操作二,广播包含当前网络规模和网络最大规模的广播包。
已入网蓝牙模块若判断当前网络规模等于网络最大规模,此时无法再加入新的蓝牙模块进入网络中,则已入网蓝牙模块就不再广播当前网络规模和网络最大规模,待入网蓝牙模块若没有接收到当前网络规模和网络最大规模,则认为该网络拒绝其加入。
需要说明的是,已入网蓝牙模块会基于其他已入网蓝牙模块发送的广播包判断当前网络规模,并保存该当前网络规模。例如,已入网蓝牙模块在接收到新入网蓝牙模块发送的查询广播包后,基于查询广播包中转发标志字段中转发标志位设置为“1”的情况,确定最新的当前网络规模。另外,已入网蓝牙模块在接收到包含网络最大规模的广播包后,会保存该网络最大规模。
操作二中,已入网蓝牙模块不判断待入网蓝牙模块是否可以入网,而由待入网蓝牙模块根据收到的当前网络规模和网络最大规模来进行判断。
上述方法还包括:若判断广播包不是来自于待入网蓝牙模块,则判断广播包中与自己对应的转发标志位是否表示已转发,若表示未转发,则将与自己对应的转发标志位设置为表示已转发,并广播该广播包。
若判断广播包不是来自于待入网蓝牙模块,则表示该广播包是来自于其他已入网蓝牙模块或网络管理模块。此时,需要判断自己是否已经转发过该广播包,如果已经转发过,则不需要再转发,直接丢弃该广播包。本发明中,通常将相应于自己的转发标志位设置为“1”来表示自己已经转发过该广播包。
在这种情况下,每个蓝牙模块只需要简单过滤即可转发或者丢弃数据,因此对缓存等硬件资源的要求不高。
另外,已入网蓝牙模块判断广播包是否来自于待入网蓝牙模块包括:已入网蓝牙模块判断广播包中的转发标志位是否均表示已转发,若是,则判断广播包来自于待入网蓝牙模块。
如上所述,若一个广播包中转发标志字段的所有位均为“1”(表示已转发),则表示该广播包由待入网蓝牙模块发出。如果接收到待入网蓝牙模块广播的该广播包,则表示待入网蓝牙模块请求加入网络。
若已入网蓝牙模块为网络管理模块,即已入网蓝牙模块充当管理员的身份时,则上述方法还包括:网络管理模块广播包含更新的网络最大规模的广播包,并在确定蓝牙网状网络中所有已入网蓝牙模块收到包含更新的网络最大规模的广播包后,广播指示所有已入网蓝牙模块使用更新的网络最大规模的广播包。
当需要扩大网络规模时,网络管理模块广播更新的网络最大规模,蓝牙模块在接收到包含更新的网络最大规模的广播包后,会广播回应信息进行响应。若网络管理模块在广播广播包的设定时间段后不再收到广播包,则表示其他蓝牙模块均已响应完毕,即所有已入网蓝牙模块均收到更新的网络最大规模,这种情况下,网络管理模块通知网络中的蓝牙模块在后续操作中使用该更新的网络最大规模,并按需要相应地调整转发标识字段的长度。
本发明还提供了一种用于蓝牙网状网络的网络管理方法,该方法由待入网蓝牙模块执行。如图2所示,该方法包括:
待入网蓝牙模块生成请求入网的广播包,并广播请求入网的广播包,若在设定时间段内收到包含当前网络规模和网络最大规模的广播包,则判断当前网络规模是否小于网络最大规模,若小于,则判断可以入网,并确定可用的转发标志位。
待入网蓝牙模块若在发出请求入网的广播包的设定时间段内没有收到当前网络规模和网络最大规模的广播包,则表示该网络已达到最大规模,目前无法入网。若在设定时间段内收到当前网络规模和网络最大规模的广播包,则表示该网络目前尚未达到最大规模,可以入网。此时,待入网蓝牙模块需要确定其可用的转发标志位。
待入网蓝牙模块可以通过查询的方式获取转发标志位的当前使用情况。例如,待入网蓝牙模块可以广播查询广播包,根据接收到已入网蓝牙模块回应的广播包的数量确定已入网蓝牙模块的数量,基于该数量判断转发标志字段已使用的位数,将已使用的最后一位的下一位作为与自己相应的转发标志位,并记录该与自己相应的转发标志位在转发标志字段中的位置。
另外,待入网蓝牙模块入网后会发送查询广播包,在该广播包中,将与细节对应的转发标志位设置为“1”。其他已入网蓝牙模块收到该广播包后,基于该广播包中转发标志字段中转发标志位被设置为“1”的情况,确定当前网络规模,并保存该最新的当前网络规模。
需要说明的是,若待入网蓝牙模块接收的广播包的转发标志位设置为全“0”,则表示该广播包是由网络管理模块发出,则不使用该广播包计算已入网蓝牙模块的数量。即,本发明中的网络规模中不包括网络管理模块的计数。
其中,待入网蓝牙模块生成请求入网的广播包包括:待入网蓝牙模块将请求入网的广播包中转发标志位均设置为表示已转发。
下面通过具体实施例说明本发明方法的实现过程。该具体实施例包括下述步骤,其中蓝牙模块A和蓝牙模块C为已入网蓝牙模块,且蓝牙模块C充当网络管理模块,蓝牙模块B为待入网蓝牙模块:
步骤1,蓝牙模块B生成请求入网的广播包并广播该广播包。
步骤2,蓝牙模块A和网络管理模块C接收到广播包后,通过判断该广播包中的转发标志位均设置为“1”,来判断出该广播包由蓝牙模块B发出。
步骤3,蓝牙模块A和网络管理模块C判断自身记录的当前网络规模小于网络最大规模,生成包含该当前网络规模和网络最大规模的广播包,并广播。
步骤4,蓝牙模块B收到包含当前网络规模和网络最大规模的广播包后,向网络发出查询广播包,查询网络中成员数量。
步骤5,蓝牙模块B根据发出查询广播包后接收的蓝牙模块返回的回应广播包的数量确定已入网蓝牙模块的数量,并基于该数量确定自己在转发标志字段中对应的位。
步骤6,蓝牙模块B接收广播包,判断该广播包中与自己对应的转发标志位为“0”,则将该与自己对应的转发标志位设置为“1”,并广播该广播包。
本发明还提供了一种用于蓝牙网状网络的已入网蓝牙模块,如图3所示,已入网蓝牙模块包括:
第一接收模块301,用于接收广播包;
第一判断模块302,用于判断所送广播包是否来自于待入网蓝牙模块;
第一发送模块303,用于当判断广播包来自于待入网蓝牙模块时,执行下述任一种操作:
操作一,判断当前网络规模是否小于网络最大规模,若小于,则广播包含当前网络规模和网络最大规模的广播包;
操作二,广播包含当前网络规模和网络最大规模的广播包。
其中,
第一判断模块302还用于判断广播包不是来自于待入网蓝牙模块时,判断广播包中与自己对应的转发标志位是否表示已转发;
已入网蓝牙模块还包括标志位设置模块,用于当与自己对应的转发标志位表示未转发时,将与自己对应的转发标志位设置为表示已转发;
第一发送模块303还用于在将广播包中与自己对应的转发标志位设置为表示已转发后,广播该广播包。
其中,
第一判断模块302还用于判断广播包中的转发标志位是否均表示已转发,若是,则判断广播包来自于待入网蓝牙模块。
其中,若已入网蓝牙模块为网络管理模块,则第一发送模块303还用于广播包含更新的网络最大规模的广播包,并在确定蓝牙网状网络中所有已入网蓝牙模块收到包含更新的网络最大规模的广播包后,广播指示所有已入网蓝牙模块使用更新的网络最大规模的广播包。
本发明还提供了一种用于蓝牙网状网络的待入网蓝牙模块,如图4所示,待入网蓝牙模块包括:
生成模块401,用于生成请求入网的广播包;
第二发送模块402,用于广播请求入网的广播包;
标志位确定模块403,用于在设定时间段内收到包含当前网络规模和网络最大规模的广播包时,判断当前网络规模是否小于网络最大规模,若小于,则判断可以入网,并确定可用的转发标志位。
其中,
生成模块401还用于将请求入网的广播包中转发标志位均设置为表示已转发。
本发明还提供了一种计算机可读存储介质,存储介质上存储有计算机程序,程序被处理器执行时上述方法的步骤。
本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上法的步骤。
采用本发明中的用于蓝牙网状网络的网络管理方法、已入网蓝牙模块、待入网蓝牙模块和网络管理模块,网络管理模块只需要设置很少的网络基本信息,主要是网络最大规模,后续每个蓝牙模块都能自动入网,使用简单,并且网络管理模块能发送和接收BLE广播数据即可,资源要求不高。本发明技术方案还具有下述有点:(1)组网设置简单,自动化程度高;(2)对网络管理模块和普通蓝牙模块的资源要求较低,生产成本较低。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。