繁体   English   中英

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

[英]Python: How to connect BLE device when i use bleak module

我正在尝试惨淡的开发团队的例子。 但是设备昨天连接了两次,但是从昨天下午开始就连接不上了。 根据宣传其 10.248s 的文档。 我尝试了 20 秒但仍然无法连接到 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))

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

我想你可以检查:

  • 设备是否使用固定 MAC 地址
  • 您的设备是否可见(例如使用 nRFConnect 从您的手机并行扫描)。 有些设备只能管理一个连接,如果您已经连接(例如,如果您绑定到它)则不可见。 此外,Bleak 不会检索已连接的设备列表
  • 您是否可以在简单扫描中看到您的设备(不过滤设备 BLE 地址)。 如果是这样,您可以验证设备是否具有相同的 MAC 地址。 如果 Mac 地址发生变化,您可以找到另一个过滤条件(可用服务、名称...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM