GAP Roles

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GAP Roles相关的知识,希望对你有一定的参考价值。

一、四种GAP角色

  广播者:发送广播数据包,必须有发送器。

  观察者:扫描广播者,报告广播信息给应用,必须有接收器。

  外部设备:发送可连接的广播数据包,一旦被连接将作为从机,必须有发送和接收器。

  中心设备:对外设发起连接,连接之后作为主机,必须有发送和接收器。

  一个设备能同时支持多个GAP角色,比如,一个设备能同时作为广播者和外部设备。

二、模式和进程

  模式:一个设备被配置成某种确定的运行方式

  进程:单个执行动作且有限定的时间

  在GAP内,有下列模式:

  广播模式,

  不可发现模式,

  有限的可发现模式,

  通用的可发现模式,

  不可连接模式,

  直接可连接模式,

  间接可连接模式,

  不可绑定模式,

  可绑定模式。

  在GAP内,有下列进程:

  观察进程,

  有限的发现进程

  通用的发现进程

  名称发现进程

  自动连接建立进程

  通用的连接建立进程

  可选择的连接建立进程

  直接连接建立进程

  连接参数更新进程

  终止连接进程

  绑定进程

  1、广播模式和观察进程

  在没有接收器的设备中,广播数据不能使用私有地址和带符号数据。

  2、可发现性

  在GAP中,设备仅仅在外设角色下才是可发现的,试图发现这些设备就是中心设备角色。

  一个外设可以工作在三个可发现模式之一:不可发现模式,有限的可发现模式,通用的可发现模式。广播数据中有2位用来标记可发现模式。这里的可发现性是对GAP来说的,并不是广播数据不能被观察者接收到。

  不可发现模式是缺省模式,在此模式下两位标志也可不比包含在广播数据中。如果要变化成其他模式需要主机给控制器发送命令。

  有限的可发现模式,仅仅能存在约30秒,在此模式下的设备很可能是有用户操作的设备,那么这个设备很可能是用户想连接的设备。在此模式下,广播间隔应该合理,以使用户界面能被快速填充,主机设备能节省时间,推荐在250ms-500ms。不可使用白名单。

  通用的可发现模式,与有限可发现模式比较,此模式存在的时间无限制,同时广播间隔推荐为1.28S-2.56S。此模式下,设备被发现很慢,在设备列表中,有限可发现模式的设备排在前,通用的可发现模式设备排在后。

  可发现进程,有限的发现进程能发现有限的可发现模式设备,忽视通用的可发现模式设备。通用的发现进程既能发现有限的可发现模式设备,也能发现通用的可发现模式设备。

  3、可连接性

  在GAP中,只有外设能使用可连接模式。中心设备使用连接建立进程来连接外设。链路层提供了两种可连接的广播包:ADV_IND和ADV_DIRECT_IND。两种不可连接的广播包:ADV_NONCONN_IND和ADV_SCAN_IND。缺省为不可连接模式,使用ADV_NONCONN_IND和ADV_SCAN_IND广播包。  

  直接可连接模式下,不能使用可发现模式,因为此广播包没有主机的参与。 模式存在时间最大为1.28S,之后应变换成间接可连接模式。广播包中包含外设地址和中心设备地址,因此使用此模式前,外设应该被连接过。

  间接可连接模式,工作在连接不需要非常迅速同时降低功耗时,可以同时在可发现模式。

  自动连接建立进程, 用于同时和大量外设建立连接。缺点是只能使用同一连接参数,不能连接使用私有地址的设备。基于此,连接的外设应尽可能相同连接参数。

  通用连接建立进程, 使用被动扫描的方式发现全部设备。对于使用可解析的私有地址的设备,如果地址解析完成,主机停止扫描后,使用直接连接建立进程与之连接。

  可选择的连接建立进程,不同于自动连接建立进程,此进程能使用不同的连接参数同时与大量设备连接。在确认外设可连接后,使用直接连接建立进程携对应参数与之连接。需要两个广播包才能建立连接,没能解决私有地址问题。

  直接连接建立进程,用于与单个指定的设备建立连接,被通用连接建立进程和可选择的连接建立进程使用。

  4、绑定

  

以上是关于GAP Roles的主要内容,如果未能解决你的问题,请参考以下文章

BLE GAP 协议和 GATT 协议

Gap锁Mysql的Gap锁在中文列下间隙怎样确定?

archive gap

如何从 shell 脚本调用 GAP 函数?

DG archive gap

GAP Roles