【发布时间】:2021-02-16 16:56:11
【问题描述】:
我有一台 Ubuntu PC,我想使用 python 连接到广告微控制器 (nrf52840)。
当 PC 已经使用 bluetoothctl 等命令行工具发现微控制器时,它们就可以正常连接。问题在于设备第一次交互的时间。
根据Bluezero docs,似乎 near_discovery() 只是这项工作的功能。问题是,除非我将超时设置得非常长,比如约 45 秒,否则无法创建 Central,因为它尚未被发现。
我现在正在采取的步骤:
from bluezero import adapter, central
dongles = adapter.list_adapters()
dongle = adapter.Adapter(dongles[0])
dongle.nearby_discovery(timeout=45)
myCentral = central.Central(adapter_addr=dongle.address, device_addr="AA:BB:CC:DD:EE:FF")
有没有更可靠的方法来发现/连接到新设备?
不管怎样,bluetoothctl scan on 似乎几乎可以立即发现设备。
【问题讨论】:
-
使用 bluetoothctl 发现需要多长时间? nrf52840上的广告间隔是多少?
标签: bluetooth bluetooth-lowenergy bluez pybluez