TI中文支持网
TI专业的中文技术问题搜集分享网站

GATT层所谓client和server到底是什么概念

如题,最近在研究蓝牙,学习BLE Software Developer's Guide.pdf,其中关于GATT层的解释有client和server的概念。

说来惭愧,之前搞MQTT的时候,遇到过这个概念,当时就没弄清楚,现在又遇到,还是很懵

请问:

1.这两个角色是对立的吗?有上下层的关系吗?比如server的角色是位于通讯的上层之类的

2.如何根据自己的应用来确定GATT应初始化为client还是server?

暂时先这么多吧,期待大神的回答!笔芯!

Viki Shi:

回复 Viki Shi:

这是我们官方的文档,英文的dev.ti.com/…/gatt.html

z z46:

回复 Viki Shi:

你好,我看了你给的资料,client应该是请求服务的一方,server应该是响应并提供服务的一方,比如手机端的蓝牙相当于client,而我们的蓝牙终端相当于server。

不知道这个理解对不对,按照这个理解,我又重新去看projectzero,发现里面调用了GATT_InitClient(); 这个函数不是把设备初始化为client吗,我理解的蓝牙终端应该是server啊,我又困惑了。。。。

Viki Shi:

回复 z z46:

手机可以是GATT server,也可以是GATT client。保有数据的那一方称之为GATT server,访问数据的那一方称之为GATT client,这个不是一成不变的。

z z46:

回复 Viki Shi:

你说的这个,我觉得我懂。但是projectzero不是保存数据的那一端吗?所有的LED灯,按键信息都在这里呀,手机或者(hosttest+Btool)通过命令/请求来配置/获取projectzero的设备状态信息,这时候projectzero不应该是server吗?为什么初始化为client呢?

Alvin Chen:

回复 z z46:

// Initialize GATT Client, used by GAPBondMgr to look for RPAO characteristic for network privacyGATT_InitClient();

The project_zero project implements a simple Bluetooth low energy peripheral device with GATT services and demonstrates how to integrate Over the Air Download and three custom services. This project can be a framework for developing many different peripheral-role applications.

z z46:

回复 Alvin Chen:

请问peripheral role不应该是提供服务的server吗,为central提供自身各项参数,并根据sentral要求修改配置 ,为什么又是client?

YiKai Chen:

回复 z z46:

建議你讀一下 dev.ti.com/…/ 蓝牙的部分

z z46:

回复 YiKai Chen:

好的,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » GATT层所谓client和server到底是什么概念
分享到: 更多 (0)