1. 前言
本文我们将源码里面的例子 scanner_byname.py 来做介绍,里面的内容是通过指定设备名字来对低功耗蓝牙设备扫描。
2. 手机模拟设备广播
首先我们在手机上模拟一个名为"da bai"的心率带设备,然后运行例子看看能不能扫描到,方法请看nRF Connect。
3. 源码解析
可以看到例子中在一个协程里运行了 Bleak 的 BleakScanner 接口, 通过find_device_by_filter来指定设备名字。
注意:运行例子的时候需要填一个参数,该参数为你的设备名字。
"""
Bleak Scanner
-------------
Updated on 2020-08-12 by hbldh <henrik.blidh@nedomkull.com>
"""
import asyncio
import sys
from bleak import BleakScanner
async def main(wanted_name):
device = await BleakScanner.find_device_by_filter(
lambda d, ad: d.name and d.name.lower() == wanted_name.lower()
)
print(device)
if __name__ == "__main__":
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} name")
sys.exit(1)
asyncio.run(main(sys.argv[1]))
4. 运行结果
可以搜索到刚刚模拟的"da bai"设备,可以看到设备地址和设备名字 。
PS E:\Bleak\bleak-develop\examples> python .\scanner_byname.py "da bai"
73:9F:52:36:34:40: da bai
5. 写在最后
不积跬步无以至千里,不积小流无以成江海。今天我们学会了Windows 上通过指定设备名字对低功耗蓝牙的扫描。