BLE设备自动重连方法及装置与流程

文档序号:16979709发布日期:2019-02-26 19:23阅读:1575来源:国知局
BLE设备自动重连方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种ble设备自动重连方法及装置。



背景技术:

ble(bluetoothlowenergy,蓝牙低功耗)设备通常由主机host和控制器blecontroller组成,ble设备有五个工作状态,分别是:待机状态standby、广播状态advertising、扫描状态scanning、初始化状态initiating和连接状态connection。ble设备的连接建立过程就是处于广播状态的blecontroller发送广播包变为连接状态并成为从设备slave和初始化状态侦听广播包变为连接状态并成为主设备master的过程。

具体地,处于广播状态的blecontroller不断的发送广播包在空中,当处于初始化状态的blecontroller侦听到满足自己连接建立要求的广播包后回应连接请求connect_ind,这时处于初始化状态的ble设备转变为连接状态并成为主设备;如果发送广播包的收到连接请求connect_ind,这时处于广播状态的ble设备转变为连接状态并成为从设备,之后主设备在connect_ind包含的时间点发送数据帧给从设备,从设备收到后发送数据帧给主设备,至此双方就完成了连接确认同步。

但是,wifi干扰等因素会导致处于初始化状态的blecontroller发送connect_ind之后处于广播状态的blecontroller无法收到connect_ind的情况发生,这时处于初始化状态的ble设备由于并不知道上述情况的发生而转变为连接状态并成为主设备,但处于广播状态的ble设备并没有进入连接状态。这样就会导致主设备在connect_ind包含的时间点发送数据帧给从设备后无法收到从设备的确认消息。按照蓝牙标准协议规定,如果上述情况持续6个连接间隔,则在6个连接间隔后宣告ble连接建立失败。针对上述情况,目前常用的解决办法是host端发现该类型错误后会再进行一次重连接。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

由于blecontroller有些消息并不会反馈给host,导致host不能够快速且有效地判断是否要进行重连接,当host不能及时判断是否重连接时处于广播状态的ble设备处于功耗考虑会结束广播包的发送而导致重新连接失败,由此可见,现有的ble设备重连机制的重连成功率低。



技术实现要素:

本发明提供的ble设备自动重连方法及装置,通过blecontroller自身的有限次自动重连机制,能够提高ble设备连接建立的成功率。

第一方面,本发明提供一种ble设备自动重连方法,应用于ble控制器,所述方法包括:

设置自动重连上限次数;

接收主机发起的ble连接请求;

切换所述ble设备进入等待连接状态;

判断ble连接建立是否成功,如果ble连接建立不成功,则判断ble重连次数是否达到自动重连上限次数,并当所述ble重连次数达到自动重连上限次数时发送连接建立失败消息给主机,当所述ble重连次数未达到自动重连上限次数时触发所述ble设备返回等待连接状态;

如果ble连接建立成功,则发送连接建立成功消息给主机。

可选地,在所述接收主机发起的ble连接请求之后,所述切换所述ble设备进入等待连接状态之前,还包括:初始化自动重连上限次数。

可选地,所述设置自动重连上限次数包括:根据主机的要求设置自动重连上限次数。

可选地,所述设置自动重连的上限次数包括:自身设置自动重连上限次数的默认值。

第二方面,本发明提供一种ble设备自动重连装置,设置于ble控制器,所述装置包括:

设置模块,用于设置自动重连上限次数;

接收模块,用于接收主机发起的ble连接请求;

切换模块,用于切换所述ble设备进入等待连接状态;

第一判断模块,用于判断ble连接建立是否成功,并当ble连接建立不成功时触发第二判断模块;

第一发送模块,用于当ble连接建立成功时发送连接建立成功消息给主机;

所述第二判断模块,用于当所述第一判断模块的结果为ble连接建立不成功时判断ble重连次数是否达到自动重连上限次数,并当所述ble重连次数未达到自动重连上限次数时触发所述ble设备返回等待连接状态;

第二发送模块,用于当所述ble重连次数达到自动重连上限次数时发送连接建立失败消息给主机。

可选地,所述装置还包括:

初始化模块,用于初始化自动重连上限次数。

可选地,所述设置模块,用于根据主机的要求设置自动重连上限次数。

可选地,所述设置模块,用于自身设置自动重连上限次数的默认值。

本发明实施例提供的ble设备自动重连方法及装置,通过blecontroller自身的有限次自动重连机制,其中,自动重连上限次数可以通过host设定,也可以自身设置自动重连上限次数的默认值,能够提高ble设备连接建立的成功率。另外,本发明技术方案的实现只需要改进本端的ble设备的ble控制器或者再加上主机,不需要对端设备进行任何修改配合,因此,本发明的技术方案具有很好的兼容性。

附图说明

图1为本发明一实施例ble设备自动重连方法的流程图;

图2为本发明一实施例ble设备自动重连装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种ble设备自动重连方法,如图1所示,所述方法包括:

s11、设置自动重连上限次数。

s12、接收主机发起的ble连接请求。

s13、切换所述ble设备进入等待连接状态。

s14、判断ble连接建立是否成功,如果ble连接建立不成功则执行步骤s15,如果ble连接建立成功则执行步骤s17。

s15、判断ble重连次数是否达到自动重连上限次数,当所述ble重连次数达到自动重连上限次数时执行步骤s16,否则触发所述ble设备返回等待连接状态。

s16、发送连接建立失败消息给主机。

s17、发送连接建立成功消息给主机。

本发明实施例提供的ble设备自动重连方法,通过blecontroller自身的有限次自动重连机制,其中,自动重连上限次数可以通过host设定,也可以自身设置自动重连上限次数的默认值,能够提高ble设备连接建立的成功率。另外,本发明技术方案的实现只需要改进本端的ble设备的ble控制器或者再加上主机,不需要对端设备进行任何修改配合,因此,本发明的技术方案具有很好的兼容性。

可选地,在所述接收主机发起的ble连接请求之后,所述切换所述ble设备进入等待连接状态之前,还包括:

初始化自动重连上限次数。

其中,所述设置自动重连上限次数可以是:

根据主机的要求设置自动重连上限次数,或者自身设置自动重连上限次数的默认值。

为了便于理解本发明,下面以具体通信过程为例进行说明:

首先host向blecontroller设置自动重连的上限次数,然后host向blecontroller发送ble连接请求并初始化自动重连计算器,blecontroller进入等待连接的状态(initiating状态)。ble设备a收到满足要求的广播包后发送connect_ind,并且ble设备a由initiating状态转变为connection状态。ble设备a在connect_ind预定的时间点发送数据帧给ble设备b。如果ble设备a收到ble设备b返回的数据帧,表明ble连接同步成功。ble设备a此时发送连接建立成功消息给host。如果由于wifi干扰等因素导致ble设备a发送给ble设备b的connect_ind,ble设备b没有收到。ble设备a仍然由initiating状态转变为connection状态。ble设备a在connect_ind预定的时间发送数据帧给ble设备b。ble设备a无法收到ble设备b返回的数据帧。这样在规定的6个连接间隔connectioninterval周期后此次ble连接失败,自动重连次数加一。比较自动重连次数是否到达预设的自动重连上限值,如果没有则进行自动重连,ble设备a的blecontroller由connection状态自动变为intiating状态;如果自动重连次数已经到达上限,这时才发送连接建立失败消息给host。

本发明实施例还提供一种ble设备自动重连装置,如图2所示,所述装置包括:

设置模块,用于设置自动重连上限次数;

接收模块,用于接收主机发起的ble连接请求;

切换模块,用于切换所述ble设备进入等待连接状态;

第一判断模块,用于判断ble连接建立是否成功,并当ble连接建立不成功时触发第二判断模块;

第一发送模块,用于当ble连接建立成功时发送连接建立成功消息给主机;

所述第二判断模块,用于当所述第一判断模块的结果为ble连接建立不成功时判断ble重连次数是否达到自动重连上限次数,并当所述ble重连次数未达到自动重连上限次数时触发所述ble设备返回等待连接状态;

第二发送模块,用于当所述ble重连次数达到自动重连上限次数时发送连接建立失败消息给主机。

本发明实施例提供的ble设备自动重连装置,通过blecontroller自身的有限次自动重连机制,其中,自动重连上限次数可以通过host设定,也可以自身设置自动重连上限次数的默认值,能够提高ble设备连接建立的成功率。另外,本发明技术方案的实现只需要改进本端的ble设备的ble控制器或者再加上主机,不需要对端设备进行任何修改配合,因此,本发明的技术方案具有很好的兼容性。

可选地,所述装置还包括:

初始化模块,用于初始化自动重连上限次数。

可选地,所述设置模块,用于根据主机的要求设置自动重连上限次数。

可选地,所述设置模块,用于自身设置自动重连上限次数的默认值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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