gpt4 book ai didi

ubuntu - bluez-tools bt-adapter -d 需要在下次使用前重置 USB 加密狗

转载 作者:行者123 更新时间:2023-12-04 19:16:51 27 4
gpt4 key购买 nike

我正在编写一个 BLE 应用程序来读取/写入外围特性,并以 bluez-tools 为例。这样做的要求之一是发现附近的 BLE 设备,如果此过程在每次应用启动时都有效,那将是首选。

但是,像这样第一次使用 bt-adapter -d 之后

$ bt-adapter -d
Searching...
[69:F6:C6:1E:2F:B2]
Name: 69E90E1E
Alias: 69E90E1E
Address: 69:F6:C6:1E:2F:B2
Icon: (null)
Class: 0x0
LegacyPairing: 0
Paired: 0
RSSI: -63

^C
$

然后第二次我没有得到任何结果。
$ bt-adapter -d
Searching...
^C
$

同时 hcitool lescan 成功找到外设。

如果我拔下并重新插入我的 ble 加密狗,我会收到此错误:
$ bt-adapter -d
Searching...
Error: GDBus.Error:org.bluez.Error.NotReady: Resource Not Ready
$

在我重置 hci0 之后
$ sudo hciconfig hci0 down
$ sudo hciconfig hci0 up

该发现再次起作用。

如何让 bt-adapter -d 在每次应用启动后无需重置 ble 加密狗即可正常工作?

我在装有 Ubuntu 15.10 的 Mac 上使用 Parallels 11

最佳答案

现在我已经对 bluez 进行了更多研究,我了解到它将先前发现的设备保存在缓存中,因此不会在 ObjectManager 上调用 InterfacesAdded 信号。

我关注了this在 StartDiscovery 之前使用 g_dbus_object_manager_get_objects 来检查 bluez 是否有缓存设备的示例。

关于ubuntu - bluez-tools bt-adapter -d 需要在下次使用前重置 USB 加密狗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675153/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com