前言:
本章节我们继续介绍GATT Client Profile的实现,参考的程序是tools\btgatt-client.c,需要注意的一点,在./configure时,需要添加 --enable-test --enable-testing才会编译该c文件,编译完成后,生成的可执行程序为btgatt-client。本文主要以btgatt-client运行时可能会出现的各种问题为切入点,介绍bluez的gatt client实现难点。对于btgatt-client的源码,无需过多介绍,都是开源的。
运行btgatt-client命令:
btgatt-client程序中,没有扫描代码的实现,因此在运行时要指定“建立连接的对端peripheral设备”,另外需要提前将BLE或者BT的Dongle挂载好,我这里是hci0设备,连接成功后,会打印service,character,descriptor的attribute信息,然后可以根据help的提示信息,输入支持的执行命令,如图1。
图1
难点:
通过阅读源码可知,btgatt-client.c的l2cap_le_att_connect函数,创建了一个BTPROTO_L2CAP类型的socket,bind设备本地的蓝牙地址,然后调用connect函数连接对端设备,这里涉及4个参数,本地蓝牙地址









![[足式机器人]Part2 Dr. CAN学习笔记- Kalman Filter卡尔曼滤波器Ch05-1+2](https://img-blog.csdnimg.cn/direct/1eb0c3c819a841db808d26d9f452f2ab.png#pic_center)
![[力扣 Hot100]Day7 接雨水](https://img-blog.csdnimg.cn/direct/31cfe09692c34bdfa031bd7fe5323b7c.png)






![[bat]0基础实现自动化办公-基于start实现一键打开常用软件/文档](https://img-blog.csdnimg.cn/direct/2a3e846a658d41acb7e20a1a488738ad.png)

