0

我正在使用 BLE 设备。并使用带有 bluez 5.4 代码的 nrf 控制器。我正在自定义 gatttool 源代码,以便多个设备可以连接和断开连接。

我现在的重点是如何使用 gatttool api 断开 ble 设备。

我在代码中找到了一种我们可以使用的解决方案:

g_io_channel_shutdown();
g_io_channel_unref();

这 2 个 API 用于断开 ble 设备。

我在我的手机中使用 nrf 连接应用程序来连接生成虚拟设备,以便我可以执行操作。

当我使用它来断开设备时,两者之间是否需要任何其他手续,或者只有这些 API 可以?

我无法使用这些 API 断开连接。有时它会生效,有时它不起作用。

如果有人对此有任何想法,请回复。

提前致谢。

4

1 回答 1

1

您是指Bluez 5.4还是Bluez 5.40?无论哪种方式,它们都是相当旧的版本。

gatttool 是 BlueZ 中已弃用的 BlueZ 工具之一。

理想情况下,您将使用 BlueZ DBus API 与 BlueZ 进行交互。

不确定您是在创建 GATT 服务器(外围设备)还是 GATT 客户端(中央设备),但 BlueZ 源代码中有这两种示例:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-client

这些示例使用 Python,但大多数语言都有 DBus 库来帮助访问 API,这些库记录在:

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/adapter-api.txt

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/device-api.txt

https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt

于 2020-07-28T11:38:27.783 回答