一般情况下Central作为GATT_Clitnt
Peripheral 作为GATT_Service
Central调用GATT_WriteCharValue 或者 GATT_ReadCharValue和作为Service的Peripheral从机通信
Peripheral需要通过notify的方式 也就是GATT_Notifycation发起和主机通信
是不是意味着: 排除广播和扫描
主机 -》从机 只能以写特征值的方式传递数据
从机 -》主机 只能以notify的方式传递数据
从机 -》主机 只能以notify的方式传递数据
同时还要一个疑问,就是Central只能作为client 而不能作为server Peripheral只能作为server 而不能作为client
但是我在CC2541_Guide 上看到这句话
Typically, the GATT roles of client and server are independent from the GAP roles of peripheral and
central. A peripheral can be either a GATT client or server and a central device can be either a GATT
client or server. A device can also act as both a GATT client and a GATT server.
central. A peripheral can be either a GATT client or server and a central device can be either a GATT
client or server. A device can also act as both a GATT client and a GATT server.
这样的话 是不是意味着
Central-》Peripheral 也可以用notify的方式传输数据 (Certral作为 server Peripheral作为client)
同样
Peripheral-》Central 也可以用GATT_WriteCharValue的方式传输数据
xiaopeng wang1:
如果可以的话 官方有Demo吗?
甜甜的大香瓜:
1、主从机是底层概念,客户端与服务器是上层概念。一般来说主机是客户端、从机是服务器,但也可以主机做服务器、从机做客户端。
客户端发往服务器是write、read的方式,服务器往客户端发数据是nofitication的方式。
2、nofitication分为notify、indicate,并不是你说的只有notify。
xiaopeng wang1:
回复 甜甜的大香瓜:
这个我知道 nofitication又 notify和indicate两种
但是想问的是 十分确定的答案
Central和Peripheral 是定义于 GAP层的 , 是设备类型 (加上Observer和Broacaster一共四种)
而Client和Server定义于GATT层, 文档上将这里说明是完全独立的,一个设备既可以作为Client有可以作为Server
我就理解为了 Central也能够作为Server Peripheral也能作为Client
这样Central发送数据到Peripheral就可以通过nofitication的方式 比write要快
甜甜的大香瓜:
回复 xiaopeng wang1:
这个问题我已回复你了
xiaopeng wang1:
回复 甜甜的大香瓜:
额 我需要十分确定的答案,感觉你没有正面回答我的问题啊。