GATT(四)
五、L2CAP互操作性要求
5.1 BR/EDR L2CAP
BR/EDR上的ATT_MTU是L2CAP協(xié)商的,最小值是48個字節(jié)
至于其他方面,因為一般不用BR/EDR,用的時候在關(guān)注
5.2 LE L2CAP
1、Default ATT_MTU為23個字節(jié)
2、GATT發(fā)送的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),任何一個設(shè)備可能在任何時間斷開連接
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) ,任何一個設(shè)備可能在任何時間斷開連接
6.2.2 Profile Roles
GATT會用到GAP中的兩種角色:Central和Peripheral
6.3 DISCONNECTED EVENTS
6.3.1 Notifications and Indications While Disconnected
?????? 如果client已經(jīng)配置server發(fā)送notification或者indication給client,則當斷開連接時,client應(yīng)該有能力重新建立連接。client已經(jīng)斷開連接,如果client想要變成Central,則client應(yīng)該執(zhí)行GAP connection establishment procedure,如果client想要變成Peripheral,則client應(yīng)該進入GAP connectable mode
?????? 如果連接已經(jīng)斷開,且server要發(fā)送notification或者indication時,server應(yīng)該有能力與client重新建立連接,server已經(jīng)斷開連接,如果server想要變成Peripheral,則server應(yīng)該進入GAP connectable mode,如果server想要變成Central,則server應(yīng)該執(zhí)行GAP connection establishment procedure.
?????? 如果server不能重新建立連接,則產(chǎn)生notification或者indication時,應(yīng)該忽略。
七、DEFINED GENERIC ATTRIBUTE PROFILE SERVICE
這部分定義的所有的characteristics都應(yīng)該包含在一個primary service內(nèi),但是只能有一個實例
這部分定義的所有的characteristics如下圖所示:
?
7.1 SERVICE CHANGED
?Service Changed? characteristic是一個control-point attribute,是server用來告知client有services發(fā)生了變化(增加、刪除或者修改)。當有trusted relationship的client重新連接時也使用?Service Changed? characteristic告知。
Characteristic Value應(yīng)該使用Client Characteristic Configuration descriptor配置為indicated。如果client不能使用Client Configuration Characteristic Descriptor將Characteristic Value設(shè)置為indications,則service發(fā)生變化產(chǎn)生的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的范圍應(yīng)該設(shè)置為GATT service definition的開始到結(jié)束的handle
?
如果GATT service都不會發(fā)生變化,則Service Changed Characteristic不需要存在,如果server上存在Service Changed characteristic,那么server就必須要要支持Characteristic Value Indication
八、如果一個設(shè)備支持在BR/EDR上支持GATT,需要添加SDP record(一般不用BR/EDR)
?
九、舉例:一個server及server上所有的attribute?
?
?
?
總結(jié)
- 上一篇: Excel的Offset函数详解
- 下一篇: java相册管理_基于jsp的相册管理系