BLE 的 BluezV5.42 DBUS C API?

BluezV5.42 DBUS C API for BLE?

我已经使用 BLUEZV5.30openwrt 开发了 BLE 应用程序。我能够通过提取源代码 gatttoolhcitool 创建应用程序。我还添加了一些由这些工具提供的功能(比如阅读 rssi)。

但是,我已经将我的 bluez 堆栈升级到 5.42,并且我计划将 DBUS 接口用于所有 BLE 相关操作。我想要的功能:

  1. 读取 RSSI
  2. 连接和断开连接
  3. 绑定
  4. 配对
  5. 正在删除绑定信息
  6. 发现
  7. 正在扫描
  8. 广告
  9. Write/Reading 到特征
  10. 通知和指示

我能够使用用 C++ 编写的代码执行上述所有操作(绑定和配对除外)。但是,由于我现有代码的一些问题以及无法 pair/bond,我想迁移到 dbus 接口。但是,我不确定 BLUEZ DBUS API 中的错误和 API 提供的功能。我读过这个 API Doc 但它没有给出 DBUS 接口的任何清晰图片。

我的问题是我不确定是否可以使用 dbus api 获得所有必需的功能?我已经阅读了文档 (bluez dbus api),但我仍然不确定。

正如您在其他 post I updated gattlib 中提到的那样支持 Bluez DBUS API。
gattlib 是用 C 语言编写的。如果您不想使用它,查看它的代码应该可以帮助您进步。

自 Bluez v5.42 起,GATT D-BUS API is not longer mark as experimental

此处描述了 DBUS API:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc. There are also (python) examples 演示了 API。