我正在将工具/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或其他地方不变。