CN111884684B - 一种基于状态机控制的蓝牙物理连接的方法和系统 - Google Patents
一种基于状态机控制的蓝牙物理连接的方法和系统 Download PDFInfo
- Publication number
- CN111884684B CN111884684B CN202010871681.4A CN202010871681A CN111884684B CN 111884684 B CN111884684 B CN 111884684B CN 202010871681 A CN202010871681 A CN 202010871681A CN 111884684 B CN111884684 B CN 111884684B
- Authority
- CN
- China
- Prior art keywords
- state machine
- connection
- request message
- bluetooth device
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 claims abstract description 15
- 230000007704 transition Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 6
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B5/00—Near-field transmission systems, e.g. inductive or capacitive transmission systems
- H04B5/70—Near-field transmission systems, e.g. inductive or capacitive transmission systems specially adapted for specific purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/041—Speed or phase control by synchronisation signals using special codes as synchronising signal
- H04L7/042—Detectors therefor, e.g. correlators, state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B2201/00—Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
- H04B2201/69—Orthogonal indexing scheme relating to spread spectrum techniques in general
- H04B2201/713—Frequency hopping
- H04B2201/71346—Bluetooth
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Selective Calling Equipment (AREA)
Abstract
本申请公开了一种基于状态机控制的蓝牙物理连接的方法和系统,属于蓝牙技术领域。本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,包括:在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个对应的物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器;接收至少一个远端蓝牙设备的请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,确定请求消息的执行过程。本申请能够使在短时间用户连续操作同一蓝牙远端设备操作时,避免蓝牙物理连接反复连接与断开,提高用户响应时间,减少出现连接失败的概率。
Description
技术领域
本申请涉及蓝牙技术领域,特别涉及一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法和系统。
背景技术
蓝牙基带技术支持两种连接类型:同步定向连接(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)等等。
在该具体实施方式中,可以将状态机均划分为五个状态,即初始状态、连接中状态、已连接状态、连接失败延迟状态和断开中状态。其中进一步的可以将初始状态对应的数值0,连接中状态对应的数值1,已连接状态对应数值2,连接失败延迟状态对应数值3和断开中状态对应数值4。值得注意的是每个状态对应的数值可以根据本领域技术人员的需求而设定,在上述说明中对每个状态对应的数值不做具体的限制。
在本申请的一个具体实施例中,步骤S102具体可以包括:
第一种情况,若至少一个远端蓝牙设备的连接请求消息存在对应的状态机,则将对应的状态机的引用计数器的数值(ref_count)加1,其中,若对应的状态机的当前状态为连接中状态(connecting,1)或断开中状态(disconnecting,4)时,则忽略该连接请求消息,若对应的状态机的当前状态为已连接状态(connected,2)时,则向对应的远端蓝牙设备报告连接回调事件,若对应的状态机的当前状态为连接失败延迟状态(timer delay,3)时,则根据该连接请求消息的权重判断对应的状态机是转换至连接中状态(connecting,1)还是继续处于连接失败延迟状态(timer delay,3)。
具体地,连接请求消息的权重大于等于第一权重阈值,则对应的状态机转换至连接中状态(connecting,1),连接请求消息的权重小于第一权重阈值,则对应的状态机将继续保持连接失败延迟状态(timer delay,3)。假设第一权重阈值为60%,若连接请求消息的权重大于等于60%,则对应的状态机尝试重新进入连接中状态(connecting,1),若连接请求消息的权重小于60%,则对应的状态机继续保持连接失败延迟状态(timer delay,3)。值得注意的是,第一权重阈值可以根据本领域技术人员的需求而设定,在上述说明中对第一权重阈值的大小不做具体的限制。
第二种情况,至少一个远端蓝牙设备的连接请求消息中不存在对应的状态机,则创建对应的远端蓝牙设备的物理连接管理的状态机,并将其引用计数器的数值设为1,将对应的状态设定为初始状态(init,0),然后使对应的状态机发起蓝牙物理连接,并将对应的状态机转换至连接中状态(connecting,1)。
在该具体实施例中,对微微网中的每个远端蓝牙设备均对应一个状态机,不会遗漏。这样能够使得每个远端蓝牙设备与本地蓝牙设备连接时,均可以转化为与物理连接管理的状态机的连接操作,从而减少蓝牙物理连接反复连接的次数。根据每个状态机的引用次数,可以对应的避免蓝牙物理连接反复连接,从而提高用户响应时间,同时减少出现连接失败的概率。
在本申请的一个具体实施例中,步骤S102具体可以包括:至少一个远端蓝牙设备的断开连接请求消息存在对应的状态机,则将对应的状态机的引用计数器的数值减1,否则忽略断开连接请求消息。
在该具体实施例的一个实例中,步骤S102具体进一步可以包括:当对应的状态机的引用计数器的数值减到0时,
若对应的状态机的当前状态为连接中状态(connecting,1)或连接失败延迟状态(timer delay,3)时,则忽略该断开连接请求消息;
若对应的状态机的当前状态处于已连接状态(connected,2)时,则将对应的状态机转换至连接失败延迟状态(timer delay,3)。
在该具体实施例中,将状态机的引用次数减少,可以对应的避免蓝牙物理连接反复断开的过程,从而避免误断开或者失败断开的发生概率。
本申请的一个具体实施例中,本申请基于状态机控制的蓝牙物理连接的方法中在步骤S102后还包括:当本地蓝牙设备和至少一个远端蓝牙设备连接成功,判断至少一个远端蓝牙设备对应的状态机的引用计数器的数值是否大于0,
若大于0,则将对应的状态机转换至已连接状态(connected,2),向对应的远端蓝牙设备报告连接成功回调事件;
若等于0,则启动计时器(timer),将对应的状态机转换至连接失败延迟状态(timer delay,3)。
在该具体实施例的一个实例中,当计时器的时间大于预设时间时,对应的状态机被触发,则判断对应的状态机的引用计数器的数值是否大于0,
若大于0,则发起蓝牙物理连接,将对应的状态机转换至连接中状态(connecting,1),
若等于0,若本地蓝牙设备和远端蓝牙设备已连接(connected,2),则发送断开命令,将对应的状态机转换至断开中状态(disconnecting,4)。
具体地,预设时间可以由本领域技术人员根据实际情况而设定,在该实例中对预设时间的大小不做具体的限制。
在该具体实施例中,通过判断引用计数器的数值可以获得本地蓝牙设备和远端蓝牙设备的连接情况,并通过计时来确定蓝牙物理连接的正确性,从而使本地蓝牙设备和远端蓝牙设备进行正确的连接。
在本申请的一个具体实施例中,本申请基于状态机控制的蓝牙物理连接的方法中在步骤S102后还包括:当本地蓝牙设备和至少一个远端蓝牙设备连接失败,判断至少一个远端蓝牙设备对应的连接请求消息的权重是否大于第二权重阈值,若大于第二权重阈值,则向对应的远端蓝牙设备报告连接失败的消息;否则将对应的状态机转换至连接失败延迟状态(timer delay,3)。
具体地,第二权重阈值可以由本领域技术人员根据实际情况而设定,在该实例中对预设时间的大小不做具体的限制。其中第二权重阈值可以大于第一权重阈值,即第一权重阈值对应的消息是需要较紧急连接,第二权重阈值对应的消息是需要紧急连接。
在本申请的一个具体实施例中,当至少一个状态机转换至断开中状态(disconnecting,4)时,将对应的至少一个状态机注销,向对应的至少一个远端蓝牙设备报告连接已断开回调事件。
具体地,可以在本地蓝牙设备中,对微微网中的每个远端蓝牙设备均对应一个状态机,多个状态机之间是独立无关的。若其中有至少一个状态机转换至断开中状态时,则消灭对应的至少一个状态机,并向对应的至少一个远端蓝牙设备的全部用户报告连接已断开回调事件。
图2示出了本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法的一个具体实施例。从图2中可以看出,状态机中可以用于执行不同状态,通过状态机的当前状态,从而得到对应的远端蓝牙设备的当前状态。
在该具体实施方式中,将原有的直接建立蓝牙物理连接的人机交互指令转为对远端蓝牙设备对应的状态机的连接操作,能够使得在短时间用户连续操作同一蓝牙远端设备操作时,避免蓝牙物理连接反复连接与断开,提高用户响应时间,同时减少出现连接失败的概率,增强用户操作的快速响应体验。
图3示出了本申请在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的系统的一个具体实施方式。在该具体实施方式中,本申请基于状态机控制的蓝牙物理连接的系统包括:创建模块,其用于在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中状态机中存储有包括状态机的引用计数器。
在图3所示的具体实施方式中,本申请基于状态机控制的蓝牙物理连接的系统还包括:判断执行模块,其用于接收至少一个远端蓝牙设备的请求消息,其中请求消息包括连接请求消息或者断开连接请求消息,根据请求消息判断是否有对应的状态机,若存在,则改变对应的状态机的引用计数器的数值,根据对应的状态机的当前状态和改变后的引用计数器的数值确定请求消息的执行过程。
在本申请的一个具体实施例中,判断执行模块具体包括:
第一种情况,若至少一个远端蓝牙设备的连接请求消息存在对应的状态机,则将对应的状态机的引用计数器的数值(ref_count)加1,其中,若对应的状态机的当前状态为连接中状态(connecting,1)或断开中状态(disconnecting,4)时,则忽略对应的连接请求消息,若对应的状态机的当前状态为已连接状态(connected,2)时,则向对应的远端蓝牙设备报告连接回调事件,若对应的状态机的当前状态为连接失败延迟状态(timer delay,3)时,则根据连接请求消息的权重判断对应的状态机是转换至连接中状态(connecting,1)还是继续处于连接失败延迟状态(timer delay,3)。
具体地,连接请求消息的权重大于等于第一权重阈值,则对应的状态机转换至连接中状态(connecting,1),连接请求消息的权重小于第一权重阈值,则对应的状态机将继续保持连接失败延迟状态(timer delay,3)。值得注意的是,第一权重阈值可以根据本领域技术人员的需求而设定,在上述说明中对第一权重阈值的大小不做具体的限制。
第二种情况,连接请求消息中不存在对应的状态机,则创建对应的状态机,将对应的状态机的引用计数器的数值设为1,使对应的状态机发起蓝牙物理连接。
具体地,若连接请求消息中不存在,则创建对应的远端蓝牙设备的物理连接管理的状态机,并将其引用计数器的数值设为1,将对应的状态机设定为初始状态(init,0),使对应的状态机发起蓝牙物理连接,将对应的状态机转换至连接中状态(connecting,1)。
在本申请的一个具体实施例中,判断执行模块具体用于断开连接请求消息存在对应的状态机,则将对应的状态机的引用计数器的数值减1,否则忽略断开连接请求消息。
在该具体实施例的一个实例中,判断执行模块具体进一步可以用于:当对应的状态机的引用计数器的数值减到0时,
若对应的状态机的当前状态为连接中状态(connecting,1)或连接失败延迟状态(timer delay,3)时,则忽略断开连接请求消息;
若对应的状态机的当前状态处于已连接状态(connected,2)时,则将对应的状态机转换至连接失败延迟状态(timer delay,3)。
在本申请的一个具体实施例中,本申请基于状态机控制的蓝牙物理连接的系统中判断执行模块还可以用于:当本地蓝牙设备和至少一个远端蓝牙设备连接成功,判断至少一个远端蓝牙设备对应的状态机的引用计数器的数值是否大于0,若大于0,则将对应的状态机转换至已连接状态(connected,2),向对应的远端蓝牙设备报告连接成功回调事件;若等于0,则启动计时器(timer),将对应的状态机转换至连接失败延迟状态(timer delay,3)。
在该具体实施例的一个实例中,当计时器的时间大于预设时间时,对应的状态机被触发,则判断对应的状态机的引用计数器的数值是否大于0,若大于0,则发起蓝牙物理连接,将对应的状态机转换至连接中状态(connecting,1),若等于0,若本地蓝牙设备和远端蓝牙设备已连接(connected,2),则发送断开命令,将对应的状态机转换至断开中状态(disconnecting,4)。
在本申请的一个具体实施例中,本申请基于状态机控制的蓝牙物理连接的系统中判断执行模块还可以用于:当本地蓝牙设备和至少一个远端蓝牙设备连接失败,判断至少一个远端蓝牙设备对应的连接请求消息的权重是否大于第二权重阈值,若大于第二权重阈值,则向对应的远端蓝牙设备报告连接失败的消息;否则将对应的状态机转换至连接失败延迟状态(timer delay,3)。
在本申请的一个具体实施例中,当至少一个状态机转换至断开中状态(disconnecting,4)时,将对应的至少一个状态机注销,向对应的至少一个远端蓝牙设备报告连接已断开回调事件。
本申请提供的基于状态机控制的蓝牙物理连接的系统,可用于执行上述任一实施例描述的基于状态机控制的蓝牙物理连接的方法,其实现原理和技术效果类似,在此不再赘述。
在本申请的一个具体实施例中,本申请一种基于状态机控制的蓝牙物理连接的系统中创建模块,和判断执行模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。
软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。
处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。
在本申请的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行任一实施例描述的基于状态机控制的蓝牙物理连接的方法。
在本申请的另一个具体实施方式中,一种程序产品,程序产品包括计算机程序,计算机程序存储在可读存储介质中,至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使执行任一实施例描述的基于状态机控制的蓝牙物理连接的方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
以上综述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的方法,其特征在于,包括:
创建步骤,在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中所述状态机中存储有包括所述状态机的引用计数器;
判断执行步骤,接收所述至少一个远端蓝牙设备的请求消息,其中所述请求消息包括连接请求消息或者断开连接请求消息,根据所述请求消息判断是否有对应的状态机,若存在,则改变所述对应的状态机的引用计数器的数值,根据所述对应的状态机的当前状态和改变后的引用计数器的数值确定所述请求消息的执行过程。
2.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:
所述连接请求消息存在对应的状态机,则将所述对应的状态机的引用计数器的数值加一,另外,
若所述当前状态为连接中状态或断开中状态时,则忽略所述连接请求消息,
若所述当前状态为已连接状态时,则向对应的远端蓝牙设备报告连接回调事件,
若所述当前状态为连接失败延迟状态时,则判断所述连接请求消息的权重是否大于第一权重阈值,
若大于等于所述第一权重阈值,则将所述对应的状态机转换至所述连接中状态,否则所述对应的状态机继续处于所述连接失败延迟状态。
3.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:
所述连接请求消息中不存在对应的状态机,则在对应的远端蓝牙设备中创建对应的状态机,将所述对应的状态机的引用计数器的数值设为一,将所述对应的状态机设定为初始状态,使所述对应的状态机发起蓝牙物理连接,将所述对应的状态机转换至连接中状态。
4.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:所述断开连接请求消息存在对应的状态机,则将所述对应的状态机的引用计数器的数值减一。
5.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,所述判断执行步骤进一步包括:所述断开连接请求消息不存在对应的状态机,则忽略所述断开连接请求消息。
6.根据权利要求3所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,进一步包括:当所述对应的状态机的引用计数器的数值减到零时,
若所述对应的状态机的当前状态为连接中状态或连接失败延迟状态时,则忽略所述断开连接请求消息;
若所述对应的状态机的当前状态处于已连接状态时,则将所述对应的状态机转换至连接失败延迟状态。
7.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,进一步包括:当所述本地蓝牙设备和所述至少一个远端蓝牙设备连接成功,判断所述至少一个远端蓝牙设备对应的状态机的引用计数器的数值是否大于零,
若大于零,则将所述对应的状态机转换至已连接状态,向对应的远端蓝牙设备报告连接成功回调事件,
若等于零,则启动计时器,将所述对应的状态机转换至连接失败延迟状态;和/或
当所述本地蓝牙设备和所述至少一个远端蓝牙设备连接失败,判断所述至少一个远端蓝牙设备对应的所述连接请求消息的权重是否大于第二权重阈值,
若大于所述第二权重阈值,则向对应的远端蓝牙设备报告连接失败的消息,
否则将所述对应的状态机转换至连接失败延迟状态。
8.根据权利要求7所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,当所述计时器的时间大于预设时间时,所述对应的状态机被触发,则判断所述对应的状态机的引用计数器的数值是否大于零,
若大于零,则发起蓝牙物理连接,将所述对应的状态机转换至连接中状态,
若等于零,若所述本地蓝牙设备和对应的所述远端蓝牙设备已连接,则发送断开命令,将所述对应的状态机转换至断开中状态。
9.根据权利要求1所述的基于状态机控制的蓝牙物理连接的方法,其特征在于,当至少一个状态机转换至断开中状态时,将对应的所述至少一个状态机注销,向对应的至少一个远端蓝牙设备报告连接已断开回调事件。
10.一种在本地蓝牙设备端协议栈应用的,基于状态机控制的蓝牙物理连接的系统,其特征在于,包括:
创建模块,其用于在本地蓝牙设备中,对对应的至少一个远端蓝牙设备中的每一者创建一个物理连接管理的状态机,其中所述状态机中存储有包括所述状态机的引用计数器;
判断执行模块,其用于接收所述至少一个远端蓝牙设备的请求消息,其中所述请求消息包括连接请求消息或者断开连接请求消息,根据所述请求消息判断是否有对应的状态机,若存在,则改变所述对应的状态机的引用计数器的数值,根据所述对应的状态机的当前状态和改变后的引用计数器的数值确定所述请求消息的执行过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010871681.4A CN111884684B (zh) | 2020-08-26 | 2020-08-26 | 一种基于状态机控制的蓝牙物理连接的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010871681.4A CN111884684B (zh) | 2020-08-26 | 2020-08-26 | 一种基于状态机控制的蓝牙物理连接的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111884684A CN111884684A (zh) | 2020-11-03 |
CN111884684B true CN111884684B (zh) | 2021-07-16 |
Family
ID=73198620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010871681.4A Active CN111884684B (zh) | 2020-08-26 | 2020-08-26 | 一种基于状态机控制的蓝牙物理连接的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111884684B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117729623B (zh) * | 2023-05-15 | 2024-08-30 | 荣耀终端有限公司 | 一种数据同步方法和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023414A (zh) * | 2013-12-20 | 2014-09-03 | 深圳市道通科技有限公司 | 蓝牙设备管理的方法及装置 |
CN104488348A (zh) * | 2012-06-01 | 2015-04-01 | 诺基亚公司 | 用于无线网络中的自适应设备发现的方法、装置和计算机程序产品 |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
CN110572174A (zh) * | 2019-09-02 | 2019-12-13 | 苏州卓智创芯电子科技有限公司 | 支持蓝牙ble协议的射频收发器及其控制方法 |
CN111510481A (zh) * | 2017-03-30 | 2020-08-07 | 桃芯科技(苏州)有限公司 | 一种应用于ble5.0协议系统的软硬件交互接口 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9924342B2 (en) * | 2015-06-16 | 2018-03-20 | Google Llc | Establishing a connection over a low power communication type |
-
2020
- 2020-08-26 CN CN202010871681.4A patent/CN111884684B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104488348A (zh) * | 2012-06-01 | 2015-04-01 | 诺基亚公司 | 用于无线网络中的自适应设备发现的方法、装置和计算机程序产品 |
CN104023414A (zh) * | 2013-12-20 | 2014-09-03 | 深圳市道通科技有限公司 | 蓝牙设备管理的方法及装置 |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
CN111510481A (zh) * | 2017-03-30 | 2020-08-07 | 桃芯科技(苏州)有限公司 | 一种应用于ble5.0协议系统的软硬件交互接口 |
CN110572174A (zh) * | 2019-09-02 | 2019-12-13 | 苏州卓智创芯电子科技有限公司 | 支持蓝牙ble协议的射频收发器及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111884684A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11049499B2 (en) | Communication method, server, and device | |
CN111246441B (zh) | 蓝牙耳机与终端的连接方法、系统及存储介质 | |
US9420631B2 (en) | WLAN peer-to-peer group owner negotiation | |
CN111818503B (zh) | 语音通话方法、系统、芯片、电子设备及存储介质 | |
US20130311694A1 (en) | Devices and methods for facilitating direct pairing in a wireless docking system | |
US11172530B2 (en) | Communication establishment method and terminal | |
CN110996405A (zh) | 耳机连接方法、终端、耳机盒子与计算机可读存储介质 | |
CN109743782B (zh) | 通信方法、装置及设备 | |
CN104205998A (zh) | 用于在蓝牙网络中中继数据通信的方法和装置 | |
CN112767936B (zh) | 语音对话方法、装置、存储介质及电子设备 | |
JP6785332B2 (ja) | ブルートゥーススピーカーデータ処理の方法、装置及びブルートゥーススピーカー | |
WO2021239032A1 (zh) | 蓝牙协议连接方法、装置、存储介质及相关设备 | |
WO2023036178A1 (zh) | 蓝牙连接方法、装置、耳机设备及计算机可读存储介质 | |
CN111884684B (zh) | 一种基于状态机控制的蓝牙物理连接的方法和系统 | |
US11736557B1 (en) | Copying and pasting between devices | |
WO2024016885A1 (zh) | 蓝牙连接方法、装置、电子设备及计算机可读存储介质 | |
CN116528202A (zh) | 连接控制方法、装置、电子设备及存储介质 | |
CN102262533B (zh) | 终端、触发方法和终端间应用程序通讯方法 | |
CN113766435B (zh) | 通信群组的建立方法、设备以及存储介质 | |
WO2022051901A1 (zh) | 语音通话方法、系统、芯片、电子设备及存储介质 | |
WO2023246056A1 (zh) | 设备连接方法及装置、存储介质、芯片 | |
WO2024027491A1 (zh) | 路径转换方法、装置和系统 | |
CN113068193B (zh) | 信息处理方法、装置及设备和存储介质 | |
WO2023093223A1 (zh) | 蓝牙连接方法及装置、蓝牙设备、存储介质 | |
WO2023093328A1 (zh) | 蓝牙回连方法及装置、信息存储方法及装置、终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: A1009, floor 9, block a, No. 9, Shangdi Third Street, Haidian District, Beijing 100085 Patentee after: Beijing Bairui Internet Technology Co.,Ltd. Address before: 7-1-1, building C, 7 / F, building 2-1, No.2, Shangdi Information Road, Haidian District, Beijing 100085 Patentee before: BARROT WIRELESS Co.,Ltd. |
|
CP03 | Change of name, title or address |