蓝牙设备及其蓝牙设备的互搜索方法与流程

文档序号:11254635阅读:492来源:国知局
蓝牙设备及其蓝牙设备的互搜索方法与流程

本申请涉及蓝牙技术,特别涉及蓝牙设备及其蓝牙设备的互搜索方法。



背景技术:

蓝牙低能耗(ble)技术由于低成本、短距离、可互操作、工作在免许可的2.4ghzism射频频段等优势在目前已得到广泛应用。

目前,应用蓝牙低能耗技术的设备(称为蓝牙设备)分为主设备和从设备,一旦蓝牙设备的主、从身份确定,则以后就不再进行身份修改。蓝牙协议规定,主设备不能主动连接从设备,只能由从设备作为发起者与主设备连接。主设备通过扫描从设备发出的广播连接,可以获得周边存在哪些从设备,以及从设备的状态以及属性。

但是,只有从设备发起连接,则就会存在一些制约,比如作为主设备的蓝牙设备想主动与作为从设备的蓝牙设备通信时,但因为主设备不能主动连接从设备,则作为主设备的蓝牙设备不得不被动的等待作为从设备的蓝牙设备发出连接请求进行连接,这会大大延迟了作为主设备的蓝牙设备的各种连接。



技术实现要素:

本申请提供了蓝牙设备及其蓝牙设备的互搜索方法,蓝牙设备按照设定好的主从转换周期自主进行主从转换,以动态实现主从蓝牙设备之间的互搜索,及时建立蓝牙设备之间的连接。

本申请提供的技术方案包括:

一种蓝牙设备的互搜索方法,该方法应用于蓝牙设备,包括:

作为主设备时,

确定各作为从设备的蓝牙设备相关联的候选主从切换时间点;其中,当蓝牙设备存在主从切换时间偏移值ready_change_scan_start值时,则依据该ready_change_scan_start值和蓝牙设备的next_scan确定该蓝牙设备相关联的候选主从切换时间点;当蓝牙设备不存在ready_change_scan_start值时,则确定该蓝牙设备的next_scan为该蓝牙设备相关联的候选主从切换时间点;所述next_scan为距离蓝牙设备即将进行的主从切换的时间段;

检查各蓝牙设备相关联的候选主从切换时间点之间是否冲突,当检查出两个蓝牙设备相关联的候选主从切换时间点冲突时,对该两个蓝牙设备中的每一蓝牙设备执行以下步骤:若蓝牙设备相关联的候选主从切换时间点是该蓝牙设备的next_scan时,为该蓝牙设备设置主从转换时间修改建议,若蓝牙设备相关联的候选主从切换时间点是依据该蓝牙设备的主从切换时间偏移值和next_scan时,标识该蓝牙设备的ready_change_scan_start值为冲突值,并重新为该蓝牙设备设置主从转换时间修改建议;

接收作为从设备的相邻蓝牙设备发送的本设备的主从转换时间点修改建议,依据本设备的主从转换时间点修改建议确定本设备的ready_change_scan_start值;

在确定出其他蓝牙设备未对本设备的ready_change_scan_start值提出异议时,记录ready_change_scan_start值无异议,否则,依据所述异议更新本设备的ready_change_scan_start值;

在本设备的next_scan到达时,自主转换为从设备;

作为从设备时,

将之前作为主设备时为相邻蓝牙设备设置的主从转换时间修改建议发送给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备;

当本地已记录了一蓝牙设备的ready_change_scan_start值为冲突值时,对该蓝牙设备的ready_change_scan_start值提出异议并通知给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备,所述异议包含 了重新为该蓝牙设备设置的主从转换时间修改建议;

在本地记录了本设备的ready_change_scan_start值无异议时,依据本设备的ready_change_scan_start值修改本设备的next_scan;

在本设备的next_scan到达时,自主转换为主设备。

一种蓝牙设备,包括:

主设备处理单元,用于当本设备作为主设备时,执行以下步骤:

确定各作为从设备的蓝牙设备相关联的候选主从切换时间点;其中,当蓝牙设备存在主从切换时间偏移值ready_change_scan_start值时,则依据该ready_change_scan_start值和蓝牙设备的next_scan确定该蓝牙设备相关联的候选主从切换时间点;当蓝牙设备不存在ready_change_scan_start值时,则确定该蓝牙设备的next_scan为该蓝牙设备相关联的候选主从切换时间点;所述next_scan为距离蓝牙设备即将进行的主从切换的时间段;

检查各蓝牙设备相关联的候选主从切换时间点之间是否冲突,当检查出两个蓝牙设备相关联的候选主从切换时间点冲突时,对该两个蓝牙设备中的每一蓝牙设备执行以下步骤:若蓝牙设备相关联的候选主从切换时间点是该蓝牙设备的next_scan时,为该蓝牙设备设置主从转换时间修改建议,若蓝牙设备相关联的候选主从切换时间点是依据该蓝牙设备的主从切换时间偏移值和next_scan时,标识该蓝牙设备的ready_change_scan_start值为冲突值,并重新为该蓝牙设备设置主从转换时间修改建议;

接收作为从设备的相邻蓝牙设备发送的本设备的主从转换时间点修改建议,依据本设备的主从转换时间点修改建议确定本设备的ready_change_scan_start值;

在确定出其他蓝牙设备未对本设备的ready_change_scan_start值提出异议时,记录ready_change_scan_start值无异议,否则,依据所述异议更新本设备的ready_change_scan_start值;

在本设备的next_scan到达时,自主转换为从设备;

从设备处理单元,用于在本设备作为从设备时,执行以下步骤:

将之前作为主设备时为相邻蓝牙设备设置的主从转换时间修改建议发送给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备;

当本地已记录了一蓝牙设备的ready_change_scan_start值为冲突值时,对该蓝牙设备的ready_change_scan_start值提出异议并通知给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备,所述异议包含了重新为该蓝牙设备设置的主从转换时间修改建议;

在本地记录了本设备的ready_change_scan_start值无异议时,依据本设备的ready_change_scan_start值修改本设备的next_scan;

在本设备的next_scan到达时,自主转换为主设备。

由以上技术方案可以看出,本发明中,蓝牙设备的身份并非固定,其会动态自主进行主从转换,这能够实现蓝牙设备根据业务需求自主动态与相邻各设备及时建立连接,提高连接效率;

进一步地,本发明中,当蓝牙设备发现相邻蓝牙设备的候选主从切换时间点冲突时,会自动为该相邻蓝牙设备修改候选主从切换时间点以避免冲突,实现设备之间的准确连接,减少相互之间的干扰。

附图说明

图1为本发明提供的方法流程图;

图2为本发明实施例提供的应用示意图;

图3为本发明提供的主从切换周期示意图;

图4为本发明提供的设备结构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体 实施例对本发明进行详细描述。

本发明提供的方法包括图1所示的流程:

参见图1,图1为本发明提供的方法流程图。该方法应用于蓝牙设备,如图1所示,该流程可包括以下步骤:

步骤101,当蓝牙设备作为主设备时,执行步骤102,当蓝牙设备作为从设备时,执行步骤103。

步骤102,确定各作为从设备的蓝牙设备相关联的候选主从切换时间点,检查各蓝牙设备相关联的候选主从切换时间点之间是否冲突,当检查出两个蓝牙设备相关联的候选主从切换时间点冲突时,对该两个蓝牙设备中的每一蓝牙设备执行以下步骤:若蓝牙设备相关联的候选主从切换时间点是该蓝牙设备的next_scan时,为该蓝牙设备设置主从转换时间修改建议,若蓝牙设备相关联的候选主从切换时间点是依据该蓝牙设备的主从切换时间偏移值和next_scan时,标识该蓝牙设备的ready_change_scan_start值为冲突值,并重新为该蓝牙设备设置主从转换时间修改建议;接收作为从设备的相邻蓝牙设备发送的本设备的主从转换时间点修改建议,依据本设备的主从转换时间点修改建议确定本设备的ready_change_scan_start值;在确定出其他蓝牙设备未对本设备的ready_change_scan_start值提出异议时,记录ready_change_scan_start值无异议,否则,依据所述异议更新本设备的ready_change_scan_start值;在本设备的next_scan到达时,自主转换为从设备。

优选地,本发明中,确定各作为从设备的蓝牙设备相关联的候选主从切换时间点具体可为:当蓝牙设备存在主从切换时间偏移值ready_change_scan_start值时,则依据该ready_change_scan_start值和蓝牙设备的next_scan确定该蓝牙设备相关联的候选主从切换时间点;当蓝牙设备不存在ready_change_scan_start值时,则确定该蓝牙设备的next_scan为该蓝牙设备相关联的候选主从切换时间点。

这里,蓝牙设备的next_scan为距离蓝牙设备即将进行的主从切换的时间段。作为本发明的一个实施例,在本发明中,蓝牙设备是以预先配置的主从转换周期进行主从转换的。基于此,蓝牙设备的next_scan为从当前时间距离待到达的主从转换周期的一段时间。

本发明中,可固定同一系统内的所有蓝牙设备配置的主从转换周期一致,以保证整个系统基本稳定。作为本发明的一个优选实施例,本发明中,可设置各蓝牙设备的主从转换周期为33个广播事件(advertisingevent)时间。

步骤103,将之前作为主设备时为相邻蓝牙设备设置的主从转换时间修改建议发送给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备;当本地已记录了一蓝牙设备的ready_change_scan_start值为冲突值时,对该蓝牙设备的ready_change_scan_start值提出异议并通知给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备,所述异议包含了重新为该蓝牙设备设置的主从转换时间修改建议;在本地记录了本设备的ready_change_scan_start值无异议时,依据本设备的ready_change_scan_start值修改本设备的next_scan;在本设备的next_scan到达时,自主转换为主设备。

至此,完成图1所示的方法流程。

在图1所示的流程,本设备的next_scan到达时,实质是本设备的next_scan减少至0。

在图1所示的流程中,蓝牙设备可自主进行主从切换,这能够实现蓝牙设备根据业务需求自主动态与相邻各设备及时建立连接,提高连接效率。

下面通过一个具体实施例对图1所示流程进行详细描述:

参见图2,图2为本发明提供的实施例应用示意图。如图2所示,随机撒点的设备a周边有三个相邻蓝牙设备:设备b、设备c、设备d,设备a、设备b、设备c、设备d均相互处于各自的覆盖范围内。设备a至设备d的主从转换周期为33个advertisingevent。

在图2中,初始,设备a为主设备,设备b至设备d为从设备。设备a作为主设备,处于扫描阶段以扫描从设备发送的数据;设备b至设备d作为从设备,处于数据发送阶段,设备b至设备d在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu,假如一个advertisingevent为30ms,图3示出了设备b至设备d发送非可连接广播pdu(adv_nonconn_ind)的示意图。

作为本发明的一个实施例,设备b至设备d发送的非可连接广播pdu可由用户自定义(manufacturerspecificdata),内容最大包含26byte净荷。优选地,非可连接广播pdu的结构可包括:

device字段,用于携带设备类型(flag),这里设备类型可优选为“自主实现主从转换的蓝牙设备的互搜索”,1bit;

advice_enable字段,用于表示advice_some_nb_change字段是否开启,1bit;

naber_enable字段,用于表示naber字段是否开启,1bit;

next_scan字段,用于携带从当前距离待进行的主从转换的时间段,范围0-26个advertisingevent5bit;

no字段,用于表示设备标识,8bit;

ready_change_scan_start字段,用于携带主从切换时间偏移值,范围0-26个advertisingevent,5bit,初始,非可连接广播pdu可不包含该字段;

naber字段,可选,用于携带相邻各设备的设备标识及各设备待进行主从转换的时间,初始非可连接广播pdu可不包含该字段,当非可连接广播pdu不包含naber字段时,也同样不包含naber_enable字段。

advice_some_nb_change字段,可选,用于携带主从转换时间修改建议,26bit,初始非可连接广播pdu可不包含该字段。当非可连接广播pdu不包含advice_some_nb_change字段时,也同样不包含advice_enable字段。

设备a接收设备b广播的非可连接广播pdu,识别设备b发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备a的设备类型相同,结果发现本设备a的设备类型与设备b发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备b发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段并非携带设备b的主从转换时间偏移值,则设备a确定设备b相关联的候选主从切换时间点为设备b发送的非可连接广播pdu中next_scan字段携带的时间t1。当然,如果设备a发现本设备a的设备类型与设备b发送的非可连接广播pdu中的device字段包含的设备类型不同,则忽略设备b发送的非可连接广播pdu,这里本发明不涉及,不再展开描述。

设备a接收设备c广播的非可连接广播pdu,识别设备c发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备c发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备c发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段并非携带设备c的主从转换时间偏移值,则设备a确定设备c相关联的候选主从切换时间点为设备c发送的非可连接广播pdu中next_scan字段携带的时间t2。

设备a接收设备d广播的非可连接广播pdu,识别设备d发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备d发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备d发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但 ready_change_scan_start字段并非携带设备d的主从转换时间偏移值,则设备a确定设备d相关联的候选主从切换时间点为设备d发送的非可连接广播pdu中next_scan字段携带的时间t3。

设备a将t1、t2、t3排成一个序列,优选地,这里以设备a按照由大至小的顺序将t1、t2、t3排成一个序列为例,排成的序列为t1->t2->t3。

设备a比较序列中两个相邻值是否冲突(这里,当两个相邻值之差小于设定值比如2个advertisingevent,则意味着这两个相邻值冲突,反之,意味着不冲突)。

以t1、t2冲突为例,则设备a分别为设备b、设备c设置主从转换时间修改建议。这里,设置主从转换时间修改建议,目的是保证设备b、设备c的候选主从切换时间点不再冲突。

当设备a的主从转换时间周期到达时,设备a从主设备切换为从设备。设备b至设备d原理类似。假如此时设备b、设备c为主设备,设备a、设备d为从设备。

设备a在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备b广播非可连接广播pdu。设备a向设备b广播的非可连接广播pdu中advice_some_nb_change字段携带了之前作为主设备时为设备b设置的主从转换时间修改建议,next_scan字段携带了设备a从当前时间距离待进行的主从转换的时间。

设备a在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备c广播非可连接广播pdu。设备a向设备c广播的非可连接广播pdu中advice_some_nb_change字段携带了之前作为主设备时为设备c设置的主从转换时间点修改建议,next_scan字段携带了从当前时间距离待进行的主从转换的时间。

设备d在当前的主从转换周期即33个广播事件advertisingevent的时间 内向设备b广播非可连接广播pdu。设备d向设备b广播的非可连接广播pdu中next_scan字段携带了设备d从当前时间距离待进行的主从转换的时间。

设备d在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备c广播非可连接广播pdu。设备d向设备c广播的非可连接广播pdu中next_scan字段携带了设备d从当前时间距离待进行的主从转换的时间。

设备b收到设备a广播的非可连接广播pdu,识别设备a发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备b的设备类型与设备a发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备b发现设备a发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段并非携带设备a的主从转换时间偏移值,则设备b确定设备a相关联的候选主从切换时间点为设备a发送的非可连接广播pdu中next_scan字段携带的时间t4。

设备b发现设备a广播的非可连接广播pdu中的advice_some_nb_change字段包含了本设备b的主从转换时间点修改建议,则依据该主从转换时间点修改建议确定本设备b的主从转换时间偏移值(记为ready_change_scan_start_b值)。

设备b收到设备d广播的非可连接广播pdu,识别设备d发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备b的设备类型与设备d发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备b发现设备d发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段并非携带设备d的主从转换时间偏移 值,则设备b确定设备d相关联的候选主从切换时间点为设备d发送的非可连接广播pdu中next_scan字段携带的时间t5。

设备b将t4、t5排成一个序列:t4->t5。

设备b检测t4、t5是否冲突,结果发现不冲突。这里,检测t4、t5是否冲突可为:比较t4、t5之差是否小于设定值比如2个advertisingevent,如果t4、t5之差不小于设定值,则意味着t4、t5不冲突,反之,意味着冲突,则按照设备a对候选主从转换时间点冲突的处理方式处理,这里不再赘述,仅以不冲突为例。

设备c收到设备a广播的非可连接广播pdu,识别设备a发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备c的设备类型与设备a发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备c发现设备a发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段并非携带设备a的主从转换时间偏移值,则设备c确定设备a相关联的候选主从切换时间点为设备a发送的非可连接广播pdu中next_scan字段携带的时间t6。

设备c发现设备a广播的非可连接广播pdu中的advice_some_nb_change字段包含了本设备c的主从转换时间修改建议,则依据该主从转换时间修改建议确定本设备c的主从转换时间点偏移值(记为ready_change_scan_start_c值)。

设备c收到设备d广播的非可连接广播pdu,识别设备d发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备c的设备类型与设备d发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备c发现设备d发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但 ready_change_scan_start字段并非携带设备d的主从转换时间偏移值,则设备c确定设备d相关联的候选主从切换时间点为设备d发送的非可连接广播pdu中next_scan字段携带的时间t7。

设备c将t6、t7排成一个序列:t6->t7。

设备c检测序列中t6、t7是否冲突,这里,检测t6、t7是否冲突与上述检测t4、t5是否冲突的原理类似,不再赘述。这里以设备c发现t6、t7不冲突为例。

当设备b的主从转换周期到达时,设备b从主设备切换为从设备。设备a、c、d类似。假如此时的主设备为设备a,从设备为设备b、设备c、设备d。

设备b在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu。设备b本地此时已记录设备b的主从转换时间偏移值ready_change_scan_start_b值,则设备b广播的非可连接广播pdu中,ready_change_scan_start字段包含ready_change_scan_start_b值,next_scan字段携带了设备b从当前距离待进行的主从转换的时间。

设备c在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu。设备c本地此时已记录设备c的主从转换时间偏移值ready_change_scan_start_c值,则设备c广播的非可连接广播pdu中,ready_change_scan_start字段包含ready_change_scan_start_c值,next_scan字段携带了设备c从当前距离待进行的主从转换的时间。

设备d在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu。设备d向设备a广播的非可连接广播pdu中next_scan字段携带了设备d从当前距离待进行的主从转换的时 间。

设备a接收设备b广播的非可连接广播pdu,识别设备b发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备b发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备b发送的非可连接广播pdu中ready_change_scan_start字段携带了设备b的主从转换时间偏移值ready_change_scan_start_b值,则将非可连接广播pdu中next_scan字段携带的时间偏移ready_change_scan_start_b值,将偏移后的值与主从转换周期即33个advertisingevent求余,得到的余数y1作为设备b相关联的候选主从切换时间点。比如,ready_change_scan_start_b值为延迟2个advertisingevent,假如next_scan字段携带的时间为11个advertisingevent,则将非可连接广播pdu中next_scan字段携带的时间偏移ready_change_scan_start_b值得到的值就为延迟13个advertisingevent,13个advertisingevent与33个advertisingevent求余得到的余数13即为设备b相关联的候选主从切换时间点。

设备a接收设备c广播的非可连接广播pdu,识别设备c发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备c发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备c发送的非可连接广播pdu中ready_change_scan_start字段携带了设备c的主从转换时间偏移值ready_change_scan_start_c值,则将非可连接广播pdu中next_scan字段携带的时间偏移ready_change_scan_start_c值,将偏移后的值与主从转换周期即33个advertisingevent求余,得到的余数y2 作为设备c相关联的候选主从切换时间点。

设备a接收设备d广播的非可连接广播pdu,识别设备d发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备d发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备d发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段为默认值或者空,设备a确定设备d相关联的候选主从切换时间点为设备d发送的非可连接广播pdu中next_scan字段携带的时间t8。

设备a将y1、y2、t8排成一个序列:t8->y1->y2。

设备a检查序列中相邻的两个值是否冲突(这里判定冲突的方式类似上述)。

以设备a检查出t8与y1冲突为例,则设备a为设备d设置主从转换时间修改建议,并记录设备b的主从转换时间偏移值ready_change_scan_start_b值(因为y1是依赖于设备b的主从转换时间偏移值ready_change_scan_start_b值确定的)为冲突值,为设备b重新设置主从转换时间修改建议。

当设备a的主从转换时间点到达时,设备a从主设备切换为从设备。设备b至设备d原理类似。假如此时的主设备为设备d、设备b、设备c,从设备为设备a。

设备a向设备b发送数据pdu,该数据pdu用于对设备b的主从转换时间偏移值ready_change_scan_start_b值提出异议,其包含了设备a之前作为主设备时重新为设备b设置的主从转换时间修改建议。作为一个优选实施例,这里,数据pdu是设备a在与设备b建立连接后通过该连接发送的,该连接可基于可连接广播建立,这里不再详细描述。

设备a在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备b广播非可连接广播pdu。设备a向设备b广播的非可连接广播pdu中next_scan字段携带了设备a从当前时间距离待进行的主从转换的时间。

设备a在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备c广播非可连接广播pdu,设备a向设备c广播的非可连接广播pdu中next_scan字段携带了设备a从当前时间距离待进行的主从转换的时间。

设备a在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备d广播非可连接广播pdu。设备a向设备d广播的非可连接广播pdu中advice_some_nb_change字段包含了设备a之前作为主设备时为设备d设置的主从转换时间修改建议。

设备b收到设备a发送的数据pdu,则表示设备a对本设备b之前作为从设备时发送的本设备b的主从转换时间偏移值ready_change_scan_start_b值有异议,则根据数据pdu中携带的新的主从转换时间修改建议更新设备b的主从转换时间偏移值ready_change_scan_start_b值。

设备c在本设备切换为从设备之前的设定时间,判断截至当前还没有设备对本设备c作为从设备时发送的本设备c的主从转换时间偏移值ready_change_scan_start_c值提出异议,则记录设备c的主从转换时间偏移值ready_change_scan_start_c值无异议。

设备b、c、d接收设备a广播的非可连接广播pdu,其处理方式类似之前设备a作为主设备收到非可连接广播pdu时的处理方式,这里不再赘述。

当设备b的主从转换时间周期到达时,设备b从主设备切换为从设备。 设备a、c、d类似。假如此时的主设备为设备a、设备d,从设备为设备b、设备c。

设备b在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu。设备b广播的非可连接广播pdu中,ready_change_scan_start字段包含设备b已更新的ready_change_scan_start_b值,next_scan字段携带了设备b距离待进行的主从转换的时间。

设备b在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a广播非可连接广播pdu。设备b广播的非可连接广播pdu中,ready_change_scan_start字段包含设备b已更新的ready_change_scan_start_b值,next_scan字段携带了设备b距离待进行的主从转换的时间。

设备c在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a、设备d广播非可连接广播pdu。因为设备c本地记录设备c的主从转换时间偏移值ready_change_scan_start_c值无异议,则设备c广播的非可连接广播pdu中,next_scan字段携带了设备c距离待进行的主从转换的时间按照设备c的ready_change_scan_start_c值偏移最终得到的值。

设备a收到设备b广播的非可连接广播pdu,识别设备b发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备b发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备b发送的非可连接广播pdu中ready_change_scan_start字段携带了设备b的主从转换时间偏移值ready_change_scan_start_b值,则将非可连接广播pdu中 next_scan字段携带的时间偏移ready_change_scan_start_b值,将偏移后的值与主从转换周期即33个advertisingevent求余,得到的余数y3作为设备b相关联的候选主从切换时间点。

设备a收到设备c广播的非可连接广播pdu,识别设备c发送的非可连接广播pdu中的device字段包含的设备类型是否与本设备的设备类型相同,结果发现本设备a的设备类型与设备c发送的非可连接广播pdu中的device字段包含的设备类型相同,都为“自主实现主从转换的蓝牙设备的互搜索”,设备a发现设备c发送的非可连接广播pdu中仅有next_scan字段或者有ready_change_scan_start字段,但ready_change_scan_start字段为默认值或者空,则设备a确定设备c相关联的候选主从切换时间点为设备c发送的非可连接广播pdu中next_scan字段携带的时间t9。

设备a将y3、t9排成一个序列,优选地,这里以设备a按照由大至小的顺序将y3、t9排成一个序列为例,排成的序列为y3->t9。

设备a比较序列中y3、t9是否冲突(这里,当y3、t9之差小于设定值比如2个advertisingevent,则意味着y3、t9冲突,反之,意味着不冲突)。假如设备a发现y3、t9不冲突。

设备d收到设备a、设备c广播的非可连接广播pdu处理类似设备a,不再赘述。

当设备a的主从转换时间周期到达时,设备a从主设备切换为从设备。设备b至设备d原理类似。假如此时的主设备为设备b,从设备为设备a、设备c、设备d。

设备a、设备c、设备d分别在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备b广播非可连接广播pdu。这里广播的非可连接广播pdu可为上述初始时的非可连接广播pdu。

设备b按照类似上述收到非可连接广播pdu时的处理方式处理,不再 赘述。

设备b在本设备切换为从设备之前的设定时间,判断截至当前还没有设备对本设备b作为从设备时发送的本设备b的主从转换时间偏移值ready_change_scan_start_b值提出异议,则记录设备b的主从转换时间偏移值ready_change_scan_start_b值无异议。

当设备b的主从转换时间周期到达时,设备b从主设备切换为从设备。设备a、c、d类似。假如此时的主设备为设备a、设备c、设备d,从设备为设备b。

设备b在当前的主从转换周期即33个广播事件advertisingevent的时间内向设备a、c、d广播非可连接广播pdu。因为设备b本地记录设备b的主从转换时间偏移值ready_change_scan_start_b值无异议,则设备b广播的非可连接广播pdu中,next_scan字段携带了设备b距离待进行的主从转换的时间按照设备c的ready_change_scan_start_b值偏移最终得到的值。

设备a、c、d接收设备b广播的非可连接广播pdu,其处理方式类似之前收到非可连接广播pdu时的处理方式,这里不再赘述。

至此,设备a、b、c、d相关联的候选主从切换时间点不再冲突,其能够保证各蓝牙设备之后可发起准确连接请求。

以上对实施例进行了描述。

通过上述实施例的描述,可以看出,在本发明中,任一设备都能获知其相邻的蓝牙设备中哪些设备为主设备,以便及时进行连接。

进一步地,本发明中,当任一设备发现相邻蓝牙设备的候选主从切换时间点冲突时,会自动为该相邻蓝牙设备修改候选主从切换时间点,以避免冲突,实现蓝牙设备之间的准确连接,减少相互之间的干扰。

以上对本发明提供的方法进行了描述。下面对本发明提供的装置进行描述:

参见图4,图4为本发明提供的设备结构图,如图4所示,该设备包括:主设备处理单元和从设备处理单元。

其中,主设备处理单元,用于当本设备作为主设备时,执行以下步骤:

确定各作为从设备的蓝牙设备相关联的候选主从切换时间点;其中,当蓝牙设备存在主从切换时间偏移值ready_change_scan_start值时,则依据该ready_change_scan_start值和蓝牙设备的next_scan确定该蓝牙设备相关联的候选主从切换时间点;当蓝牙设备不存在ready_change_scan_start值时,则确定该蓝牙设备的next_scan为该蓝牙设备相关联的候选主从切换时间点;所述next_scan为距离蓝牙设备即将进行的主从切换的时间段;

检查各蓝牙设备相关联的候选主从切换时间点之间是否冲突,当检查出两个蓝牙设备相关联的候选主从切换时间点冲突时,对该两个蓝牙设备中的每一蓝牙设备执行以下步骤:若蓝牙设备相关联的候选主从切换时间点是该蓝牙设备的next_scan时,为该蓝牙设备设置主从转换时间修改建议,若蓝牙设备相关联的候选主从切换时间点是依据该蓝牙设备的主从切换时间偏移值和next_scan时,标识该蓝牙设备的ready_change_scan_start值为冲突值,并重新为该蓝牙设备设置主从转换时间修改建议;

接收作为从设备的相邻蓝牙设备发送的本设备的主从转换时间点修改建议,依据本设备的主从转换时间点修改建议确定本设备的ready_change_scan_start值;

在确定出其他蓝牙设备未对本设备的ready_change_scan_start值提出异议时,记录ready_change_scan_start值无异议,否则,依据所述异议更新本设备的ready_change_scan_start值;

在本设备的next_scan到达时,自主转换为从设备;

从设备处理单元,用于在本设备作为从设备时,执行以下步骤:

将之前作为主设备时为相邻蓝牙设备设置的主从转换时间修改建议发送给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备;

当本地已记录了一蓝牙设备的ready_change_scan_start值为冲突值时,对该蓝牙设备的ready_change_scan_start值提出异议并通知给该蓝牙设备,该蓝牙设备此时已从从设备切换为主设备,所述异议包含了重新为该蓝牙设备设置的主从转换时间修改建议;

在本地记录了本设备的ready_change_scan_start值无异议时,依据本设备的ready_change_scan_start值修改本设备的next_scan;

在本设备的next_scan到达时,自主转换为主设备。

优选地,所述从设备处理单元进一步执行以下步骤:向作为主设备的相邻蓝牙设备发送数据包;其中,当本设备具有ready_change_scan_start值时,发送的数据包同时携带了本设备的ready_change_scan_start值和next_scan,当本设备不具有ready_change_scan_start值时,发送的数据包未携带本设备的ready_change_scan_start值但携带了本设备的next_scan;

优选地,所述主设备处理单元确定各作为从设备的蓝牙设备相关联的候选主从切换时间点包括:

接收作为从设备的蓝牙设备发送的数据包;

依据作为从设备的蓝牙设备发送的数据包确定作为从设备的蓝牙设备相关联的候选主从切换时间点:当蓝牙设备发送的数据包同时携带了该蓝牙设备的ready_change_scan_start值和next_scan时,依据该数据包携带的ready_change_scan_start值和next_scan确定该蓝牙设备的候选主从切换时间点;当蓝牙设备发送的数据包未携带该蓝牙设备的ready_change_scan_start值但携带了该蓝牙设备的next_scan时,确定该数据包携带的next_scan为该蓝牙设备的候选主从切换时间点。

优选地,所述主设备处理单元检查各蓝牙设备相关联的候选主从切换时间点之间是否冲突包括:

将各蓝牙设备相关联的候选主从切换时间点按照设定顺序排成一个序列;

比较所述序列中每两个相邻的候选主从切换时间点之差是否小于等于设 定值,如果是,确定该两个相邻的候选主从切换时间点冲突,否则,确定该两个相邻的候选主从切换时间点不冲突。

优选地,所述主设备处理单元依据ready_change_scan_start值和蓝牙设备的next_scan确定该蓝牙设备相关联的候选主从切换时间点包括:

将蓝牙设备的next_scan按照该蓝牙设备的ready_change_scan_start值偏移,将偏移后的next_scan与设定的主从切换周期求余,将得到的余数作为蓝牙设备相关联的候选主从切换时间点。

至此,完成本发明提供的设备结构描述。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1