蓝牙设备远程通信方法、蓝牙设备及客户端转让专利

申请号 : CN201610580874.8

文献号 : CN105978606B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邓攀盛东辉李淑荣

申请人 : 青岛海信电器股份有限公司

摘要 :

本发明实施例提供一种蓝牙设备远程通信方法、蓝牙设备及客户端,所述方法包括:判断第一蓝牙设备是否处于蓝牙共享模式;若第一蓝牙设备处于蓝牙共享模式,则第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;或者,第一蓝牙设备将通过网络接收到的来自客户端的数据发送给第一蓝牙设备的蓝牙控制器模块;若第一蓝牙设备处于非蓝牙共享模式,则第一蓝牙设备将通过蓝牙控制器接收到的蓝牙数据发送给第一蓝牙设备的第一蓝牙协议栈;或者,第一蓝牙设备将来自第一蓝牙协议栈的数据发送给蓝牙控制器。本发明实施例可以实现不在同一个蓝牙工作环境中的第二蓝牙设备与第三蓝牙设备之间的蓝牙数据通信。

权利要求 :

1.一种蓝牙设备远程通信方法,其特征在于,包括:

判断第一蓝牙设备是否处于蓝牙共享模式;

若所述第一蓝牙设备处于蓝牙共享模式,则

所述第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;

或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器模块;

若所述第一蓝牙设备处于非蓝牙共享模式,则

所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的第一蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器,其中,所述判断所述第一蓝牙设备是否处于蓝牙共享模式之前,还包括:所述第一蓝牙设备接收所述客户端通过网络发送的数据通信连接请求,并通过所述网络与所述客户端建立所述数据通信连接。

2.根据权利要求1所述的方法,其特征在于,

所述第一蓝牙设备将通过蓝牙控制器收到的蓝牙数据通过网络发送给客户端;或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器,包括:判断所述第一蓝牙设备是否接收到所述蓝牙数据,若是,则将所述蓝牙数据通过所述网络发送给所述客户端;

若否,则判断所述第一蓝牙设备是否接收到所述客户端通过所述网络发送的所述数据;若是,则将所述客户端发送的所述数据发送给所述第一蓝牙设备的所述蓝牙控制器。

3.根据权利要求1所述的方法,其特征在于,所述第一蓝牙设备包括第一数据转发管理模块,所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器,包括:所述第一蓝牙设备通过所述蓝牙控制器模块接收所述蓝牙数据,并通过所述第一数据转发管理模块将所述蓝牙数据发送给所述第一蓝牙协议栈;

或者,

所述第一蓝牙设备通过所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块。

4.根据权利要求3所述的方法,其特征在于,

所述第一蓝牙设备通过所述蓝牙控制器模块接收所述蓝牙数据,并通过所述第一数据转发管理模块将所述蓝牙数据发送给所述第一蓝牙协议栈;

或者,

所述第一蓝牙设备通过所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块,包括:所述第一数据转发管理模块判断所述蓝牙控制器模块是否接收到所述蓝牙数据,若是,则所述第一数据转发管理模块将所述蓝牙控制器模块接收到的所述蓝牙数据发送给所述第一蓝牙协议栈;

若否,则所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块。

5.根据权利要求1所述的方法,其特征在于,所述第一蓝牙设备接收所述客户端通过网络发送的数据通信连接请求之前,所述方法还包括:所述第一蓝牙设备通过网络发送广播消息,所述广播消息中包括所述第一蓝牙设备支持的蓝牙协议版本信息,以供所述客户端根据所述蓝牙协议版本信息向所述第一蓝牙设备发送所述数据通信连接请求。

6.根据权利要求5所述的方法,其特征在于,所述广播消息中还包括蓝牙共享设备身份认证信息,所述第一蓝牙设备接收所述客户端发送的所述数据通信连接请求,并通过所述网络与所述客户端建立数据通信连接,包括:根据所述蓝牙共享设备认证信息确定发送所述数据通信连接请求的所述客户端是否与所述共享设备身份认证信息相符,若是,则所述第一蓝牙设备通过所述网络与所述客户端建立数据通信连接。

7.一种蓝牙设备远程通信方法,其特征在于,包括:

判断客户端是否处于接受蓝牙共享模式;

若所述客户端处于接受蓝牙共享模式,则

所述客户端接收第一蓝牙设备通过网络发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,所述客户端通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据;

其中,所述客户端判断所述客户端是否处于接受蓝牙共享模式之前,还包括:所述客户端通过所述网络向第一蓝牙设备发送数据通信连接请求,以使所述客户端通过所述网络与所述第一蓝牙设备建立数据通信连接。

8.根据权利要求7所述的方法,其特征在于,所述客户端包括第二蓝牙协议栈及第二数据转发管理模块,所述客户端接收所述第一蓝牙设备通过网络发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,所述客户端通过所述网络向所述第一蓝牙设备发送第二数据,包括:所述第二数据转发管理模块判断是否接收到来自所述第一蓝牙设备的所述第一数据,若是,则将所述第一数据发送给所述第二蓝牙协议栈;

若否,则判断是否接收到所述第二蓝牙协议栈发送的第二数据,若是,则所述第二数据转发管理模块通过所述网络将所述第二数据发送给所述第一蓝牙设备。

9.根据权利要求7所述的方法,其特征在于,所述客户端通过所述网络向第一蓝牙设备发送数据通信连接请求之前,还包括:所述客户端接收所述第一蓝牙设备通过网络发送的广播消息,所述广播消息中包括所述第一蓝牙设备支持的蓝牙协议版本信息;

所述客户端通过所述网络向第一蓝牙设备发送数据通信连接请求,包括:所述客户端根据所述第一蓝牙设备支持的蓝牙协议版本信息,确定所述客户端支持的蓝牙协议版本是否与所述第一蓝牙设备支持的蓝牙协议版本匹配,若匹配,则所述客户端通过网络向第一蓝牙设备发送数据通信连接请求。

10.一种蓝牙设备,其特征在于,包括:

判断模块,用于判断所述蓝牙设备是否处于蓝牙共享模式;

蓝牙控制器模块,用于当所述判断模块判断所述蓝牙设备处于蓝牙共享模式时,接收蓝牙数据,或者接收来自客户端的数据;或者,用于当所述判断模块判断所述蓝牙设备处于非蓝牙共享模式时,接收所述蓝牙数据,或者接收来自第一蓝牙设备的第一蓝牙协议栈的数据;第一数据转发管理模块,用于当所述判断模块判断所述蓝牙设备处于蓝牙共享模式时,将来自所述蓝牙控制器模块的所述蓝牙数据通过网络发送给所述客户端,或者,通过所述网络接收来自所述客户端的数据,并发送给所述蓝牙控制器模块;

或者,用于当所述判断模块判断所述蓝牙设备处于非蓝牙共享模式时,将来自所述蓝牙控制器模块的数据发送给所述蓝牙设备的所述第一蓝牙协议栈,或者,将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器模块;

所述蓝牙控制器模块,还用于所述判断模块判断所述第一蓝牙设备是否处于蓝牙共享模式之前,接收所述客户端通过网络发送的数据通信连接请求,并通过所述网络与所述客户端建立所述数据通信连接。

11.一种客户端,其特征在于,包括:

判断模块,用于判断蓝牙设备是否处于接受蓝牙共享模式;

第二数据转发管理模块,用于当所述判断模块判断所述蓝牙设备处于接受蓝牙共享模式时,通过网络接收第一蓝牙设备发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据;

所述第二数据转发管理模块,还用于所述判断模块判断所述客户端是否处于接受蓝牙共享模式之前,通过所述网络向第一蓝牙设备发送数据通信连接请求,以使所述客户端通过所述网络与所述第一蓝牙设备建立数据通信连接。

说明书 :

蓝牙设备远程通信方法、蓝牙设备及客户端

技术领域

[0001] 本发明涉及蓝牙通信领域,尤其涉及一种蓝牙设备远程通信方法、蓝牙设备及客户端。

背景技术

[0002] 随着蓝牙技术和应用的逐渐发展,各种蓝牙应用场景越来越复杂,蓝牙设备的使用场景也越来越多。位于同一蓝牙网络范围内的蓝牙设备可以依靠其蓝牙硬件模块与场景中的其他蓝牙设备进行数据通信和控制操作。但是,当蓝牙设备与其它蓝牙设备的距离较远,不在同一个蓝牙网络范围内时,所述蓝牙设备与其它蓝牙设备之间的蓝牙连接就会断开,无法进行数据通信和控制操作。
[0003] 现有的蓝牙通信方式,对蓝牙设备的使用场景有较大限制,如果用户携带蓝牙设备出门在外,所述蓝牙设备就无法实现与家中的其它蓝牙设备进行蓝牙数据通信。

发明内容

[0004] 本发明实施例提供一种蓝牙设备远程通信方法、蓝牙设备及客户端,用以解决现有技术中的蓝牙设备及蓝牙通信方法无法实现蓝牙设备间远程传输数据的问题。
[0005] 第一方面,本发明实施例提供一种蓝牙设备远程通信方法,包括:
[0006] 判断第一蓝牙设备是否处于蓝牙共享模式;
[0007] 若所述第一蓝牙设备处于蓝牙共享模式,则
[0008] 所述第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器模块;
[0009] 若所述第一蓝牙设备处于非蓝牙共享模式,则
[0010] 所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的第一蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器。
[0011] 第二方面,本发明实施例提供一种蓝牙设备远程通信方法,包括:
[0012] 判断客户端是否处于接受蓝牙共享模式;
[0013] 若所述客户端处于接受蓝牙共享模式,则
[0014] 所述客户端接收所述第一蓝牙设备通过网络发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,
[0015] 所述客户端通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据。
[0016] 第三方面,本发明实施例提供一种蓝牙设备,包括:
[0017] 判断模块,用于判断所述蓝牙设备是否处于蓝牙共享模式;
[0018] 蓝牙控制器模块,用于当所述判断模块判断所述蓝牙设备处于蓝牙共享模式时,接收蓝牙数据,或者接收来自所述客户端的数据;或者,用于当所述判断模块判断所述蓝牙设备处于非蓝牙共享模式时,接收所述蓝牙数据,或者接收来自所述第一蓝牙设备的第一蓝牙协议栈的数据;第一数据转发管理模块,用于当所述判断模块判断所述蓝牙设备处于蓝牙共享模式时,将来自所述蓝牙控制器模块的所述蓝牙数据通过网络发送给所述客户端,或者,通过所述网络接收来自所述客户端的数据,并发送给所述蓝牙控制器模块;
[0019] 或者,用于当所述判断模块判断所述蓝牙设备处于非蓝牙共享模式时,将来自所述蓝牙控制器模块的数据发送给所述蓝牙设备的所述第一蓝牙协议栈,或者,将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器模块。
[0020] 第四方面,本发明实施例提供一种客户端,包括:
[0021] 判断模块,用于判断所述蓝牙设备是否处于接受蓝牙共享模式;
[0022] 第二数据转发管理模块,用于当所述判断模块判断所述蓝牙设备处于接受蓝牙共享模式时,通过网络接收所述第一蓝牙设备发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,
[0023] 通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据。
[0024] 本发明实施例提供的蓝牙设备远程通信方法、蓝牙设备及客户端,通过判断第一蓝牙设备是否处于蓝牙共享模式,并在所述第一蓝牙设备处于蓝牙共享模式时,所述第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器模块;在所述第一蓝牙设备处于非蓝牙共享模式时,所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的第一蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器。采用本发明实施例提供的蓝牙设备远程通信方法,当所述客户端与所述第一蓝牙设备及其它蓝牙设备不在同一个蓝牙工作环境中时,所述客户端通过网络与所述第一蓝牙设备建立数据通信连接,从而可以通过所述第一蓝牙设备实现所述客户端与其它蓝牙设备之间的蓝牙数据通信。同时,通过对所述第一蓝牙设备的蓝牙共享模式的判断,根据判断结果实现数据的传输,可以防止所述第一蓝牙设备与所述客户端需要同时使用所述第一蓝牙设备的蓝牙功能时产生冲突的问题。

附图说明

[0025] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026] 图1为实现本发明实施例蓝牙设备远程通信方法的蓝牙设备的框架结构示意图;
[0027] 图2为本发明实施例蓝牙设备远程通信方法的流程示意图;
[0028] 图3为本发明实施例蓝牙设备远程通信方法的另一流程示意图;
[0029] 图4为本发明实施例中第一蓝牙设备的第一数据转发管理模块的工作流程示图;
[0030] 图5为本发明另一实施例蓝牙设备远程通信方法的流程示意图;
[0031] 图6为本发明另一实施例蓝牙设备远程通信方法的另一流程示意图;
[0032] 图7为本发明另一实施例中客户端的第二数据转发管理模块的工作流程示意图;
[0033] 图8为本发明实施例蓝牙设备的结构示意图;
[0034] 图9为本发明另一实施例蓝牙设备的结构示意图。

具体实施方式

[0035] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036] 本发明实施例提供的蓝牙设备远程通信方法,用于实现不处于同一个蓝牙场景内的的蓝牙设备与客户端之间的数据传输。
[0037] 图1为实现本发明实施例蓝牙设备远程通信方法的蓝牙设备的框架结构示意图。
[0038] 请参阅图1,用于提供蓝牙共享功能的第一蓝牙设备10包括第一蓝牙应用程序模块11,第一蓝牙协议栈12,第一数据转发管理模块13及蓝牙控制器模块14。所述第一蓝牙应用程序模块11用于与用户进行交互,将用户输入的指令及数据转换成应用层逻辑,然后调用所述第一蓝牙协议栈提供的API接口实现蓝牙设备间的数据通信及控制操作。其中所述蓝牙控制器模块14通过所述第一数据转发管理模块13与所述第一蓝牙协议栈12进行连接。所述第一蓝牙设备10的所述第一蓝牙应用程序模块11所有的蓝牙相关的操作和数据内容都是通过所述第一蓝牙协议栈12解析之后转换成主机控制接口(Host Controller Interface,简称:HCI)的接口指令和数据,通过所述第一数据转发管理模块13传递给所述蓝牙控制器模块14进行处理。
[0039] 客户端20为可以共享所述第一蓝牙设备10提供的蓝牙功能的设备。所述客户端20包括第二蓝牙应用程序模块21,第二蓝牙协议栈22,及第二数据转发管理模块23。
[0040] 所述第一蓝牙设备10的所述蓝牙控制器模块14从射频接受到的所有蓝牙数据包都通过所述第一数据转发管理模块13发送给所述客户端10的数据转发管理模块23进行解析,并传递给所述第二蓝牙协议栈22进行分析和处理。所述客户端20需要通过所述蓝牙控制器模块进行发送的数据包都通过所述第二数据转发管理模块23发送给所述第一蓝牙设备10的所述第一数据转发管理模块13,再传递给所述蓝牙控制器模块14进行发送。
[0041] 所述第一蓝牙设备10处于蓝牙工作环境中,即其周围有其它蓝牙设备可以与所述第一蓝牙设备10进行蓝牙通信。所述客户端20远离所述蓝牙工作环境,无法与所述其它蓝牙设备进行蓝牙通信。所述客户端20通过共享所述第一蓝牙设备10的所述蓝牙控制器模块14实现与所述蓝牙工作环境中的其它蓝牙设备进行数据通信。其中,所述第一蓝牙设备10及所述客户端20之间的数据和命令的传递方向如图1中箭头所示。
[0042] 图2为本发明实施例蓝牙设备远程通信方法的流程示意图。
[0043] 请参阅图2,具体地,本发明实施例提供的蓝牙设备远程通信方法,包括:
[0044] S201:判断第一蓝牙设备是否处于蓝牙共享模式。
[0045] S202:若所述第一蓝牙设备处于蓝牙共享模式,则
[0046] 所述第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器模块;
[0047] S203:若所述第一蓝牙设备处于非蓝牙共享模式,则
[0048] 所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的第一蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器。
[0049] 具体地,在所述步骤S201之前,所述方法还包括:
[0050] 所述第一蓝牙设备接收所述客户端通过网络发送的数据通信连接请求,并通过所述网络与所述客户端建立数据通信连接。
[0051] 具体实现过程中,在所述第一蓝牙设备接收所述客户端发送的所述数据通信连接请求之前,所述第一蓝牙设备首先通过网络发送广播消息,所述广播消息中包括所述第一蓝牙设备支持的蓝牙协议版本信息,以供客户端根据所述蓝牙协议版本信息向所述第一蓝牙设备发送数据通信连接请求。
[0052] 其中,所述第一蓝牙设备为具有蓝牙控制器模块,与其它蓝牙设备处于同一个蓝牙场景,并能够与其它蓝牙设备进行蓝牙通信的设备。所述客户端为处于所述蓝牙场景外的设备。具体地,所述客户端可以包括蓝牙控制器模块,也可以不包括蓝牙控制器模块。所述蓝牙控制器模块用于实现与其他蓝牙设备之间的蓝牙数据传输功能。
[0053] 在所述第一蓝牙设备通过所述网络发送广播消息前,所述第一蓝牙设备通过所述第一蓝牙应用程序的用户界面进行网络设置,将所述第一蓝牙设备与所述客户端设置在同一网络段,并可以通过所述第一蓝牙应用程序的用户界面将所述第一蓝牙设备的蓝牙控制器设置为共享模式。然后,所述第一蓝牙设备即可自动通过用户数据报协议(User Datagram Protocol,简称:UDP)方式向所在网络IP段进行数据广播。广播的数据包括:所述第一蓝牙设备的互联网协议地址(Internet Protocol Address,简称IP地址)及所述蓝牙控制器模块支持的蓝牙协议版本等信息。所述第二蓝牙客户端则通过所述第二蓝牙应用程序模块的UI界面开启网络监听模式,监听来自网络的广播数据。
[0054] 当所述客户端监听到所述第一蓝牙设备发送的所述UDP广播数据后,对其数据进行解析,对比所述第一蓝牙设备的蓝牙控制器模块所支持的蓝牙协议版本等信息,并判断所述第一蓝牙设备的蓝牙控制器模块所支持的蓝牙协议版本是否和所述客户端的系统蓝牙协议匹配,如果匹配就可以通过传输控制协议(Transmission Control Protocol,简称TCP)方式向所述客户端发送所述数据连接请求。
[0055] 所述第一蓝牙设备接收到所述客户端发送的连接请求后,双方建立起可靠连接,所述第一蓝牙设备停止向网络上发送广播数据包,所述第一蓝牙应用程序模块可以记录所述蓝牙控制器模块已经被所述客户端占用,并记录所述客户端相应的蓝牙协议版本号及IP信息。
[0056] 本发明实施例提供的蓝牙设备远程通信方法,通过判断所述第一蓝牙设备是否处于蓝牙共享模式,并根据判断结果自适应地确定不同的数据传输方式,防止所述第一蓝牙设备及所述客户端同时需要使用所述蓝牙控制器模块时产生冲突的问题。在确定数据传输方式之前,可以根据所述第一蓝牙设备与所述客户端使用所述蓝牙控制器模块的优先级确定所述第一蓝牙设备当前的蓝牙共享模式。具体地,在所述第一蓝牙设备提供蓝牙共享功能之前,可以在所述广播数据包和所述数据连接请求信息中分别加入所述第一蓝牙设备及所述客户端的优先级标识信息。
[0057] 当所述第一蓝牙设备与所述客户端建立数据通信连接后,所述第一数据转发管理模块根据所述第一蓝牙设备及所述客户端的优先级标识信息,对所述第一蓝牙设备及所述客户端使用所述蓝牙控制器模块的优先级权限进行比较,并确定所述蓝牙控制器模块处于蓝牙共享模式还是处于非共享模式,以及将所述蓝牙控制器模块共享给哪一个设备,从而决定数据的走向。举例来说,如果所述第一蓝牙设备的优先级权限较高,说明所述第一蓝牙设备可以优先使用所述蓝牙控制器模块,则所述第一蓝牙设备开启非蓝牙共享模式。如果所述客户端的优先级权限较高,说明所述客户端可以优先使用所述第一蓝牙设备的蓝牙控制器模块,则所述第一蓝牙设备开启蓝牙共享模式。
[0058] 图3为本发明实施例蓝牙设备远程通信方法的另一流程示意图。图4为本发明实施例中第一蓝牙设备的第一数据转发管理模块的工作流程示意图。
[0059] 请参阅图3及图4,具体地,若所述第一蓝牙设备处于蓝牙共享模式,上述步骤S202具体包括:
[0060] 判断所述第一蓝牙设备是否接收到所述蓝牙数据,若是,则将所述蓝牙数据通过所述网络发送给所述客户端;
[0061] 若否,则判断所述第一蓝牙设备是否接收到所述客户端通过所述网络发送的所述数据;若是,则将所述客户端发送的所述数据发送给所述第一蓝牙设备的所述蓝牙控制器。
[0062] 具体地,所述第一蓝牙设备的第一数据转发管理模块首先判断所述蓝牙控制器模块是否接收到当前蓝牙工作环境中的其它蓝牙设备发送的蓝牙数据。如果是,则所述第一数据转发管理模块通过所述数据通信连接将所述蓝牙数据打包发送到所述客户端的第二数据转发管理模块;否则继续判断是否通过所述数据通信连接接收到来自所述客户端的数据,如果有,则过滤掉所述数据响应的网络信息后,将纯净的HCI数据和命令发送给所述第一蓝牙设备的蓝牙控制器模块。完成上述一个循环处理后,再次回到初始状态,重新判断所述第一蓝牙设备的蓝牙控制器模块是处于共享状态还是非共享状态,并根据判断结果重复执行上述共享模式处理流程或者下述非共享模式处理流程。
[0063] 在上述实施例的基础上,进一步地,所述步骤S203包括:
[0064] 所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器,包括:
[0065] 所述第一蓝牙设备通过所述蓝牙控制器模块接收所述蓝牙数据,并通过所述第一数据转发管理模块将所述蓝牙数据发送给所述第一蓝牙协议栈;
[0066] 或者,
[0067] 所述第一蓝牙设备通过所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块。
[0068] 具体地,当所述第一蓝牙设备自身需要使用所述蓝牙控制器模块时,如果所述第一数据转发模块确定所述第一蓝牙设备使用所述蓝牙控制器模块的优先级高于所述客户端,则所述数据转发管理模块确定所述第一蓝牙设备处于非共享模式,所述第一蓝牙设备即可自己使用所述蓝牙控制器模块与当前蓝牙工作环境中的其它蓝牙设备进行蓝牙数据通信。
[0069] 在上述实施例的基础上,进一步地,所述第一蓝牙设备通过所述蓝牙控制器模块接收所述蓝牙数据,并通过所述第一数据转发管理模块将所述蓝牙数据发送给所述第一蓝牙协议栈;
[0070] 或者,
[0071] 所述第一蓝牙设备通过所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块,包括:
[0072] 所述第一数据转发管理模块判断所述蓝牙控制器模块是否接收到所述蓝牙数据,若是,则所述第一数据转发管理模块将所述蓝牙控制器模块接收到的所述蓝牙数据发送给所述第一蓝牙协议栈;
[0073] 若否,则所述第一数据转发管理模块将来自所述第一蓝牙协议栈的所述数据发送给所述蓝牙控制器模块。
[0074] 在上述实施例的基础上,进一步地,所述广播消息中还包括蓝牙共享设备身份认证信息,所述第一蓝牙设备接收所述客户端发送的所述数据通信连接请求,并通过所述网络与所述客户端建立数据通信连接,包括:
[0075] 根据所述蓝牙共享设备认证信息确定发送所述数据通信连接请求的所述客户端是否与所述共享设备设备身份认证信息相符,若是,则所述第一蓝牙设备通过所述网络与所述客户端建立数据通信连接。
[0076] 当所述客户端停止使用所述第一蓝牙设备的所述蓝牙控制器模块时,所述客户端的所述第二数据转发管理模块向所述第一蓝牙设备的第一数据转发管理模块发送一个停止共享的请求。所述第一蓝牙设备接收到所述请求后发送停止共享应答,并向所述客户端发送一个断开连接的请求。所述客户端接收到所述停止共享应答后,所述第一数据转发管理模块自动停止数据和命令的发送和接收。所述客户端接收到所述断开连接的请求后,则立即回复一个断开请求应答,并自动断开与所述第一蓝牙设备之间的数据通信连接。所述第一蓝牙设备接收到所述断开请求应答后,也自动关闭与所述客户端的数据通信连接,并继续在UDP模式下进行广播数据群发。
[0077] 可选地,所述第一蓝牙设备的网段内可以存在多个第一蓝牙设备,所述多个第一蓝牙设备同时发送蓝牙共享广播数据包。同一个客户端可以同时向所述多个第一蓝牙设备发起数据通信连接请求并建立数据通信连接,从而实现与所述多个第一蓝牙设备的蓝牙控制器模块共享。即,同一个客户端可以同时使用多个第一蓝牙设备的蓝牙控制器模块。
[0078] 本实施例中,所述第一蓝牙设备为蓝牙控制器模块的共享提供方,负责提供物理的蓝牙控制器设备;而所述客户端则是所述蓝牙控制器模块的使用方,可以获取供方蓝牙控制器设备的使用权及HCI数据和命令等信息。可选地,所述第一蓝牙设备和所述客户端可以根据场景的需要进行切换。例如:自身带有蓝牙控制器模块的客户端可以通过加载所述第一数据转发管理模块,通过UI设置项操作将自身配置为提供蓝牙设备共享功能的所述第一蓝牙设备;也可以通过加载所述第二数据转发管理模块,通过UI设置项操作将自身配置为使用其他第一蓝牙设备提供的蓝牙共享功能的所述第二设备。不带有蓝牙控制器模块的蓝牙设备则只能作为蓝牙控制器模块的使用方,即所述客户端。
[0079] 本发明实施例提供的蓝牙设备远程通信方法,通过判断第一蓝牙设备是否处于蓝牙共享模式,并在所述第一蓝牙设备处于蓝牙共享模式时,所述第一蓝牙设备将通过蓝牙控制器模块接收到的蓝牙数据通过网络发送给客户端;或者,所述第一蓝牙设备将通过所述网络接收到的来自所述客户端的数据发送给所述第一蓝牙设备的所述蓝牙控制器模块;在所述第一蓝牙设备处于非蓝牙共享模式时,所述第一蓝牙设备将通过所述蓝牙控制器接收到的蓝牙数据发送给所述第一蓝牙设备的第一蓝牙协议栈;或者,所述第一蓝牙设备将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器。采用本发明实施例提供的蓝牙设备远程通信方法,当所述客户端与所述第一蓝牙设备及其它蓝牙设备不在同一个蓝牙工作环境中时,所述客户端通过网络与所述第一蓝牙设备建立数据通信连接,从而可以通过所述第一蓝牙设备实现所述客户端与其它蓝牙设备之间的蓝牙数据通信。同时,通过对所述第一蓝牙设备的蓝牙共享模式的判断,根据判断结果实现数据的传输,可以防止所述第一蓝牙设备与所述客户端需要同时使用所述第一蓝牙设备的蓝牙功能时产生冲突的问题。
[0080] 实施例二
[0081] 图5为本发明另一实施例蓝牙设备远程通信方法的流程示意图。图6为本发明另一实施例蓝牙设备远程通信方法的另一流程示意图。
[0082] 请参阅图5及图6,本发明实施例提供的蓝牙设备远程通信方法,包括:
[0083] S501:判断客户端是否处于接受蓝牙共享模式;
[0084] S502:若所述客户端处于接受蓝牙共享模式,则所述客户端接收所述第一蓝牙设备发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,
[0085] 所述客户端通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据。
[0086] 在上述实施例的基础上,所述客户端判断所述客户端是否处于接受蓝牙共享模式之前,所述方法还包括:客户端通过网络向第一蓝牙设备发送数据通信连接请求,以使所述客户端通过所述网络与所述第一蓝牙设备建立数据通信连接。
[0087] 在上述实施例的基础上,在所述客户端通过网络向第一蓝牙设备发送数据通信连接请求之前,所述方法还包括:所述客户端接收第一蓝牙设备通过网络发送的广播消息,所述广播消息中包括所述第一蓝牙设备支持的蓝牙协议版本信息。
[0088] 所述客户端通过网络向第一蓝牙设备发送数据通信连接请求,包括:
[0089] 所述客户端根据所述第一蓝牙设备支持的蓝牙协议版本信息,确定所述客户端支持的蓝牙协议版本是否与所述第一蓝牙设备支持的蓝牙协议版本匹配,若匹配,则所述客户端通过网络向第一蓝牙设备发送数据通信连接请求。
[0090] 在上述实施例的基础上,进一步地,所述客户端接收所述第一蓝牙设备通过网络发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,
[0091] 所述客户端通过所述网络向所述第一蓝牙设备发送第二数据,包括:
[0092] 所述第二数据转发管理模块判断是否通过所述网络接收到来自所述第一蓝牙设备的所述第一数据,若是,则将所述第一数据发送给所述第二蓝牙协议栈;
[0093] 若否,则判断是否接收到所述第二蓝牙协议栈发送的第二数据,若是,则将所述第二数据通过所述数据通信连接发送给所述第一蓝牙设备。
[0094] 图7为本发明另一实施例中客户端的第二数据转发管理模块的工作流程示意图。
[0095] 请参阅图7,具体地,首先,所述第二数据转发管理模块会判断所述客户端是否已经和所述第一蓝牙设备完成共享连接。如果没有完成共享连接,则所述第二数据转发模块会判断所述第二蓝牙协议栈是否需要发送数据给所述第一蓝牙设备的蓝牙控制器模块。如果检测到所述第二蓝牙协议栈需要发送数据和命令,则所述客户端会直接向系统发出错误提醒,提示系统未连接到所述第一蓝牙设备的蓝牙控制器模块,无法进行蓝牙相关的数据传输和控制操作。如果判断当前远端客户端已经完成共享连接,则进入接受共享模式处理流程。
[0096] 当所述客户端进入接受蓝牙共享模式后,所述第二数据转发模块会首先判断是否接收到所述第一蓝牙设备的第一数据转发模块发送的数据,如果是,则在过滤网络包后将纯净HCI数据和命令传递给所述第一蓝牙设备的所述第二蓝牙协议栈及所述第二蓝牙应用程序进行解析及处理;否则继续判断所述客户端的所述第二蓝牙协议栈和所述第二蓝牙应用程序是否有需要传递给所述第一蓝牙设备的所述蓝牙控制器模块进行处理的HCI数据和命令,如果有,则将所述HCI数据和命令进行网络打包后通过所述数据通信连接发送给所述第一蓝牙设备的蓝牙控制器模块进行处理。完成上述处理后,所述第二数据转发管理模块再次回到初始状态,重新判断是否已经和所述第一蓝牙设备完成共享连接,并根据判断结果决定是否重复执行接受共享模式处理流程。
[0097] 本发明实施例提供的蓝牙设备远程通信方法,与实施例一中的蓝牙设备远程通信方法的实现原理及技术效果类似,在此不再赘述。
[0098] 图8为本发明实施例蓝牙设备的结构示意图。
[0099] 请参阅图8,本发明实施例提供的蓝牙设备包括:
[0100] 判断模块810,用于判断所述蓝牙设备是否处于蓝牙共享模式;
[0101] 蓝牙控制器模块830,用于当所述判断模块判断所述蓝牙设备处于蓝牙共享模式时,接收蓝牙数据,或者接收来自所述客户端的数据;
[0102] 或者,
[0103] 用于当所述判断模块810判断所述蓝牙设备处于非蓝牙共享模式时,接收所述蓝牙数据,或者接收来自所述第一蓝牙设备的第一蓝牙协议栈的数据;
[0104] 第一数据转发管理模块820,用于当所述判断模块810判断所述蓝牙设备处于蓝牙共享模式时,将来自所述蓝牙控制器模块的所述蓝牙数据通过网络发送给所述客户端,或者,通过所述网络接收来自所述客户端的数据,并发送给所述蓝牙控制器模块;
[0105] 或者,
[0106] 用于当所述判断模块810判断所述蓝牙设备处于非蓝牙共享模式时,将来自所述蓝牙控制器模块的数据发送给所述蓝牙设备的所述第一蓝牙协议栈,或者,将来自所述第一蓝牙协议栈的数据发送给所述蓝牙控制器模块。
[0107] 具体地,所述判断模块810可以与所述第一数据转发管理模块820集成为一体。
[0108] 本发明实施例提供的蓝牙设备用于执行实施例一提供的蓝牙设备远程通信方法,其具体实现原理及技术效果与实施例二类似,在此不再赘述。
[0109] 实施例四
[0110] 图9为本发明另一实施例客户端的结构示意图。
[0111] 请参阅图9,本发明实施例提供的客户端,包括:
[0112] 判断模块910,用于判断所述蓝牙设备是否处于接受蓝牙共享模式;
[0113] 第二数据转发管理模块920,用于在所述判断模块910判断所述蓝牙设备处于接受蓝牙共享模式时,通过网络接收所述第一蓝牙设备发送的第一数据,所述第一数据为所述第一蓝牙设备通过蓝牙控制器模块接收到的蓝牙数据;或者,
[0114] 通过所述网络向所述第一蓝牙设备的所述蓝牙控制器模块发送第二数据。
[0115] 具体地,所述判断模块910可以与所述第二数据转发管理模块920集成为一体。
[0116] 本发明实施例提供的蓝牙设备用于执行实施例二提供的蓝牙设备远程通信方法,其具体实现原理及技术效果与实施例二类似,在此不再赘述。
[0117] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机、手机或其他便携装置的可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0118] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。