BlueZ 5.30:D-Bus GATT API - 只需发现并连接到C语言的BLE设备

s2c*_*c97 5 dbus bluetooth-lowenergy bluez gatt gdbus

随着BlueZ(5.30)的最后一个版本,亮点是GATT D-Bus apis的完成.我的目标是以编程方式(在C中)作为BLE客户端:

  1. 扫描ble设备(我可以用hci层做)
  2. 连接到广告BLE设备
  3. 获取UUID
  4. 对句柄执行读写操作

BlueZ社区强烈建议使用GATT-Dbus api来实现这一目标.经过多次搜索和头部刮擦后,我没有成功找到通过GATT-DBUs api执行此操作的正确方法或示例.看起来比直接使用GATT层更复杂.不幸的是,BlueZ删除了直接访问来调用gatt.

我非常接近将GATT源文件从Bluez中取出,将其编译为它自己的独立库并直接使用GATT层并调用连接并执行对ble设备服务器的读/写操作.我知道与DBUS-GATT api相比,它不是建议的方式,但我没有选择.

如果有人对此或建议有任何意见(有一些示例代码),请告知.

先感谢您!

Jor*_*nez 6

开始使用DBUS GATT API的最佳方法是在这里查看源代码:http://git.kernel.org/cgit/bluetooth/bluez.git/tree/

在client文件夹下,您可以找到有关如何使用DBUS GATT API的完整示例.实际上这是bluetoothctl工具的来源.

请注意,DBUS GATT API仍处于试验阶段,但您可以启用它并运行带有-E标志的蓝牙服务.