C语言 Bluez Timeout on read with D-Bus API



我正在将工具/gatt_service.c从bluez扩展到我的设备创建一些自定义读取特征。

但是,其中一些可能需要一段时间才能像扫描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或其他地方不变。

最新更新