GATT(四)

五、L2CAP互操作性要求

5.1 BR/EDR L2CAP

BR/EDR上的ATT_MTU是L2CAP协商的,最小值是48个字节

至于其他方面,因为一般不用BR/EDR,用的时候在关注

5.2 LE L2CAP

1、Default ATT_MTU为23个字节

2、GATT发送的ATT消息都使用L2CAP的固定通道L2CAP fixed CID=0x0004,LE connection建立以后就可以直接使用这个固定通道,不需要在建立L2CAP通道

通道配置如下图所示(都是默认值不需要配置):

 

如下图所示:BT chip初始化以后,没有配置L2CAP通知直接就使用了 

六、 GAP INTEROPERABILITY REQUIREMENTS

6.1 BR/EDR GAP INTEROPERABILITY REQUIREMENTS

6.1.1 Connection Establishment

建立ATT Bearer需要使用Channel Establishment procedure (参考Generic Access Profile, Section 7.2),任何一个设备可能在任何时间断开连接

6.2 LE GAP INTEROPERABILITY REQUIREMENTS

6.2.1 Connection Establishment

建立ATT Bearer需要使用Connection Establishment procedure (参考Generic Access Profile, Section 9.3.5 through Section 9.3.8) ,任何一个设备可能在任何时间断开连接

6.2.2 Profile Roles

GATT会用到GAP中的两种角色:Central和Peripheral

6.3 DISCONNECTED EVENTS

6.3.1 Notifications and Indications While Disconnected

       如果client已经配置server发送notification或者indication给client,则当断开连接时,client应该有能力重新建立连接。client已经断开连接,如果client想要变成Central,则client应该执行GAP connection establishment procedure,如果client想要变成Peripheral,则client应该进入GAP connectable mode

       如果连接已经断开,且server要发送notification或者indication时,server应该有能力与client重新建立连接,server已经断开连接,如果server想要变成Peripheral,则server应该进入GAP connectable mode,如果server想要变成Central,则server应该执行GAP connection establishment procedure.

       如果server不能重新建立连接,则产生notification或者indication时,应该忽略。

七、DEFINED GENERIC ATTRIBUTE PROFILE SERVICE

这部分定义的所有的characteristics都应该包含在一个primary service内,但是只能有一个实例

这部分定义的所有的characteristics如下图所示:

 

7.1 SERVICE CHANGED

«Service Changed» characteristic是一个control-point attribute,是server用来告知client有services发生了变化(增加、删除或者修改)。当有trusted relationship的client重新连接时也使用«Service Changed» characteristic告知。

Characteristic Value应该使用Client Characteristic Configuration descriptor配置为indicated。如果client不能使用Client Configuration Characteristic Descriptor将Characteristic Value设置为indications,则service发生变化产生的Service Changed Characteristic Value 的Indications会被认为丢失了

Service Changed Characteristic Value包括两个16-bit的Attribute Handles,表示被(service删除、修改、增加)影响的Attribute Handle的范围,如果被影响的范围不是Service Changed characteristic value,而是GATT service definition characteristic values中的其他地方,那么Attribute Handle的范围应该设置为GATT service definition的开始到结束的handle

 

如果GATT service都不会发生变化,则Service Changed Characteristic不需要存在,如果server上存在Service Changed characteristic,那么server就必须要要支持Characteristic Value Indication

八、如果一个设备支持在BR/EDR上支持GATT,需要添加SDP record(一般不用BR/EDR)

 

九、举例:一个server及server上所有的attribute 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Android Studio中,蓝牙GATT(Generic Attribute Profile)是用于与蓝牙低功耗设备进行通信和数据交换的一种协议。通过使用GATT,您可以连接和与支持BLE(Bluetooth Low Energy)的设备进行通信,例如心率监测器、智能手环等。 在您提供的引用中,并没有具体提到Android Studio中蓝牙GATT的相关代码或功能。如果您需要在Android Studio中使用蓝牙GATT,请确保您的项目中已经添加了适当的依赖库以支持蓝牙低功耗功能。然后,您可以编写相应的代码来连接和进行数据交换。 如果您需要更具体的关于在Android Studio中使用蓝牙GATT的代码示例和步骤,我建议您参考Android官方文档或在线教程,这些资源通常提供了详细的指导和示例代码来帮助您实现蓝牙GATT功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [androidstudio app连接蓝牙模块进行通信](https://download.csdn.net/download/huang5270391/10576509)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【AndroidStudio开发】(四):蓝牙BLE发送消息](https://blog.csdn.net/xanadw/article/details/125629737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值