一种基于状态机控制的蓝牙物理连接的方法和系统技术方案

技术编号:26226197 阅读:20 留言:0更新日期:2020-11-04 11:03
本申请公开了一种基于状态机控制的蓝牙物理连接的方法和系统,属于蓝牙技术领域。本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,包括:在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个对应的物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器;接收至少一个远端蓝牙设备的请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,确定请求消息的执行过程。本申请能够使在短时间用户连续操作同一蓝牙远端设备操作时,避免蓝牙物理连接反复连接与断开,提高用户响应时间,减少出现连接失败的概率。

【技术实现步骤摘要】
一种基于状态机控制的蓝牙物理连接的方法和系统
本申请涉及蓝牙
,特别涉及一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法和系统。
技术介绍
蓝牙基带技术支持两种连接类型:同步定向连接(SCO)类型和异步无连接(ACL)类型。前者主要用于同步话音传送,后者主要用于分组数据传送。在传统BREDR蓝牙和低功耗BLE蓝牙中的ACL,称之为物理连接,需要两个连接设备之间保持一致的跳频序列,以便在两个蓝牙设备间进行双向数据通信。而在物理连接之上,有着若干逻辑连接用户,比如两设备间可以有多条L2CAP连接,或者/和鉴权/配对导致的物理连接需求。在传统蓝牙使用流程中,首先进行鉴权/配对等安全层面的物理连接,进行完毕后ACL物理链路将被断开,然后进行SDP服务发现过程,ACL连接再次被建立,查找完设备的服务记录后ACL连接被断开。随后用户可能会进行某种蓝牙应用(profile)的连接,比如A2DP(AVDTP),此时ACL连接将会被再次建立。如上所示过程中可见,ACL连接有可能在使用过程中被反复建立,断开,由于ACL连接需要两个蓝牙设备间同步跳频顺序,需要开销一定的时间,此外,连续的连接ACL和断开可能会导致一定概率的失败发生。
技术实现思路
鉴于现有技术中的上述问题,本申请提供一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法和系统。在本申请的一个技术方案中,提供的在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,其包括:创建步骤,在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器;判断执行步骤,接收至少一个远端蓝牙设备的请求消息,其中请求消息包括连接请求消息或者断开连接请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,根据对应的状态机的当前状态和改变后的引用计数器的数值确定请求消息的执行过程。在本申请的另一个技术方案中,提供的一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的系统,其包括:创建模块,其用于在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数的序列表引用计数器;判断执行模块,其用于接收至少一个远端蓝牙设备的请求消息,其中请求消息包括连接请求消息或者断开连接请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,根据对应的状态机的当前状态和改变后的引用计数器的数值确定请求消息的执行过程。本申请的技术方案中,首先在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个对应的物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器;其次接收至少一个远端蓝牙设备的请求消息,其中请求消息包括连接请求消息或者断开连接请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,根据对应的状态机的当前状态和改变后的引用计数器的数值确定请求消息的执行过程。本申请能够使得在短时间用户连续操作同一蓝牙远端设备操作时,避免蓝牙物理连接反复连接与断开,提高用户响应时间,同时减少出现连接失败的概率,增强用户操作的快速响应体验。附图说明图1为本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法的一个具体实施方式的示意图;图2为本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法的一个具体实施例的示意图;图3为本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的系统的一个具体实施方式的示意图。具体实施方式为了使本申请的上述特征和优点更加易懂,下面结合附图和具体实施方式对本申请做进一步详细说明。该详细说明仅仅是为了帮助理解本申请,本申请的保护范围不仅仅限于具体实施方式中的具体说明。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。图1示出了本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法的一个具体实施方式。在该具体实施方式中,本申请基于状态机控制的蓝牙物理连接的方法包括:创建步骤S101。该步骤包括:在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个对应的物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器(ref_count)。在现有技术中,ACL物理链路就是定向发送数据包,它既支持对称连接,也支持不对称连接(既可以一对一,也可以一对多)。本地蓝牙设备负责控制链路带宽,并决定微微网中的每个远端蓝牙设备可以占用多少带宽和连接的对称性。远端蓝牙设备只有被选中时才能传送数据。ACL物理链路也支持接收本地蓝牙设备发给微微网中所有远端蓝牙设备的广播消息。在该具体实施方式中,每一个远端蓝牙设备,地址标识方法包括静态地址,公开地址,可解析私有地址,不可解析私有地址,当地址可被识别为同一远端蓝牙设备时,即称为一个远端蓝牙设备。可以在本地蓝牙设备中,对微微网中的每个远端蓝牙设备创建一个对应的物理连接管理的状态机,多个状态机之间是独立无关的。这样能够使得每个远端蓝牙设备与本地蓝牙设备连接时,均可以转化为与物理连接管理的状态机的连接操作,从而减少蓝牙物理连接反复连接与断开的次数。每个状态机中均存储有状态机引用计数器,表示该状态机的引用次数。在该具体实施方式中,本地蓝牙设备和远端蓝牙设备既可以是经典蓝牙设备,也可以是功耗蓝牙设备,在该具体实施方式中对本地蓝牙设备和远端蓝牙设备的蓝牙类型不做具体的限制。在图1所示的具体实施方式中,本申请基于状态机控制的蓝牙物理连接的方法还包括:判断执行步骤S102。该步骤包括:接收至少一个远端蓝牙设备的请求消息,其中请求消息包括连接请求消息或者断开连接请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,根据对应的状态机的当前状态和改变后的引用计数器的数值确定请求消息的执行过程。在该具体实施方式中,连接请求消息包括蓝牙配对和/或鉴权等安全流程的连接请求消息,和/或蓝牙协议的连接请求消息等等,其中蓝牙协议包括会话描述协议(SDP),和/或音频/视频分配传输协议(AVDTP)或蓝牙音频传输模型协定(A2DP)等等。在该具体实施方式中,可以将状本文档来自技高网...

【技术保护点】
1.一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,其特征在于,包括:/n创建步骤,在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中所述状态机中存储有包括所述状态机的引用计数器;/n判断执行步骤,接收所述至少一个远端蓝牙设备的请求消息,其中所述请求消息包括连接请求消息或者断开连接请求消息,根据所述请求消息判断是否有对应的状态机,若存在,则改变所述对应的状态机的引用计数器的数值,根据所述对应的状态机的当前状态和改变后的引用计数器的数值确定所述请求消息的执行过程。/n

【技术特征摘要】
1.一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,其特征在于,包括:
创建步骤,在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中所述状态机中存储有包括所述状态机的引用计数器;
判断执行步骤,接收所述至少一个远端蓝牙设备的请求消息,其中所述请求消息包括连接请求消息或者断开连接请求消息,根据所述请求消息判断是否有对应的状态机,若存在,则改变所述对应的状态机的引用计数器的数值,根据所述对应的状态机的当前状态和改变后的引用计数器的数值确定所述请求消息的执行过程。


2.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:
所述连接请求消息存在对应的状态机,则将所述对应的状态机的引用计数器的数值加一,另外,
若所述当前状态为连接中状态或断开中状态时,则忽略所述连接请求消息,
若所述当前状态为已连接状态时,则向对应的远端蓝牙设备报告连接回调事件,
若所述当前状态为连接失败延迟状态时,则判断所述连接请求消息的权重是否大于第一权重阈值,
若大于等于所述第一权重阈值,则将所述对应的状态机转换至所述连接中状态,否则所述对应的状态机继续处于所述连接失败延迟状态。


3.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:
所述连接请求消息中不存在对应的状态机,则在对应的远端蓝牙设备中创建对应的状态机,将所述对应的状态机的引用计数器的数值设为一,将所述对应的状态机设定为初始状态,使所述对应的状态机发起蓝牙物理连接,将所述对应的状态机转换至连接中状态。


4.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:所述断开连接请求消息存在对应的状态机,则将所述对应的状态机的引用计数器的数值减一。


5.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:所述断开连接请求消息不存在对应的状态机,则忽略所述断开连接请求消息。


6.根据权利要求3所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,进一步包括:当所述对应的状态机的引用计数器的数值减到零时,
若所...

【专利技术属性】
技术研发人员:王尧叶东翔朱勇
申请(专利权)人:北京百瑞互联技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1