通过扫描蓝牙设备并获取原始广播数据的功能实现。通过异步编程和回调函数,可以实时处理扫描到的设备和广播数据,并将其打印输出
- 引入必要的模块和库:
import asyncio from bleak import BleakScanner import binascii import datetime这里使用了
asyncio库来实现异步编程,BleakScanner用于扫描蓝牙设备,binascii用于将字节转换为十六进制字符串,datetime用于获取当前时间。 - 定义函数
run_scan_rawdata(self),该函数用于执行蓝牙设备扫描,并处理广播数据:async def scan_callback(device, advertisement_data): # 如果扫描到目标设备,则将广播数据处理打印 if device.address == target_mac_address: self.thread.update_signal.emit(str(datetime.datetime.now()) + "\t" + f"{device.name} {device.address}" + "\t") manufacturer_data = advertisement_data.manufacturer_data # manufacturer_data服务下原始数据,bytes转16进制再转字符串 for key, value in manufacturer_data.items(): hex_data: str = binascii.hexlify(value).decode("utf-8") self.thread.update_signal.emit(f"{hex_data.up

文章介绍了如何通过异步编程和BleakScanner库实现在Python中扫描蓝牙设备并获取原始广播数据,包括处理制造商数据和服务数据的过程。
最低0.47元/天 解锁文章
2298





