Python:使用Bloom模块时如何连接BLE设备

jhkqcmku  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(246)

我尝试了暗淡的开发团队的例子。但是设备昨天连接了两次,但是从昨天下午开始就不能再连接了。根据文档广告,它是10.248s。我尝试了20s,但是仍然不能连接到asyncTimeouterror

import asyncio
import platform
import sys

import bleak.exc
from bleak import BleakClient, BleakScanner
from bleak.exc import BleakError

ADDRESS = (
    "F5:8B:A2:4C:AD:9C"
    if platform.system() != "Darwin"
    else "B9EA5233-37EF-4DD6-87A8-2A875E821C46"
)

async def main(ble_address: str):
    try:
        device = await BleakScanner.find_device_by_address(ble_address, timeout=10.0)
        if not device:
            raise BleakError(f"A device with address {ble_address} could not be found.")
        async with BleakClient(device, timeout=22.0) as client:
            print("Services:")
            for service in client.services:
                print(service)
    except bleak.exc.BleakError as e:
        print(e)

while True:
    asyncio.run(main(sys.argv[1] if len(sys.argv) == 2 else ADDRESS))

我认为问题出在广告时间上,但我尝试过许多不同的超时,但都不起作用

ohfgkhjo

ohfgkhjo1#

我想你可以查一下:

  • 设备是否使用恒定MAC地址
  • 您的设备是否可见(例如,使用nRFConnect从您的移动的并行扫描)。某些设备只能管理单个连接,如果您已连接(例如,如果您绑定到它),则不可见。此外,Bleak不会检索已连接设备的列表
  • 您是否可以在简单扫描中看到您的设备(不过滤设备BLE地址)。如果可以,您可以验证设备是否具有相同的MAC地址。如果Mac地址更改,您可以找到其他过滤条件(可用服务、名称...)

相关问题