我正在扩展 Bluez 的 tools/gatt_service.c 来为我的设备创建一些自定义读取特征。
但其中一些可能需要一段时间才能处理,例如扫描 wifi SSID。 当我的服务器收到来自客户端的读取请求时,我开始 wifi 扫描(最多需要 15sc),并且我想在同一请求的响应中返回 SSID 列表。但是使用 D-Bus API,我的请求总是在 5sc 后结束,而无需等到 wifi 扫描结束,就像超时一样。有什么办法可以管理这个超时吗?
我还尝试了低级 Bluez API,并且成功了,但我真的很想使用 D-BUS API。
谢谢!
最佳答案
我最终通过直接修补 Bluez 代码找到了解决方法。
我更改了 src/shared/gatt-db.c 中的 ATTRIBUTE_TIMEOUT
#define ATTRIBUTE_TIMEOUT 28000
到目前为止没有副作用。我只是不知道为什么这个值是硬编码的并且不能从 bluethodctl 或其他地方更改。
关于c - 使用 D-Bus API 读取时 Bluez 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754322/