使用D-Bus API读取Bluez超时

时间:2016-11-23 00:54:24

标签: c bluetooth-lowenergy dbus bluez

我正在扩展Bluez的tools / gatt_service.c,为我的设备创建一些自定义读取特性。

但其中一些可能需要一段时间才能像扫描无线SSID一样处理。 当我的服务器从客户端收到读取请求时,我启动了wifi扫描(最多可能需要15sc),我想在同一请求的响应中返回SSID列表。但是使用D-Bus API,我的请求总是在5sc之后结束,而不是等到wifi扫描结束,就像超时一样。有没有办法管理这个超时?

我也尝试使用低级Bluez API并且它成功了,但我真的想使用D-BUS API。

谢谢!

1 个答案:

答案 0 :(得分:2)

我终于通过直接修补Bluez代码来解决了这个问题。

我更改了src / shared / gatt-db.c

中的ATTRIBUTE_TIMEOUT
#define ATTRIBUTE_TIMEOUT 28000
到目前为止没有副作用。我只是不知道为什么这个值是硬编码的,不能从bluethodctl或其他地方改变。