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