导入
类
函数
Central 类
Central 类提供 BLE 扫描和连接发起功能。
Central(loop=None)
创建一个 BLE 中心设备实例。
scan(scan_time=5.0, name=None, address=None)
扫描附近的 BLE 设备。
返回:
list - 发现的 BLE 设备列表
connect(address)
按地址连接一台 BLE 设备。
返回:
Client - 已连接的 BLE 客户端
pair(address)
与一台 BLE 设备配对。
Client 类
Client 类对已连接的 BLE 设备提供 GATT 操作。
创建 Client
connect()
建立与该 BLE 设备的连接。
disconnect()
断开与该 BLE 设备的连接。
pair()
与已连接的设备配对。
get_services()
发现并获取全部 GATT 服务。
BleakGATTServiceCollection - 已发现服务的集合
has_characteristic(uuid)
检查设备上是否存在某个特征。
返回:
bool - 该特征存在时为 True
read_gatt_char(char_specifier)
读取一个特征的值。
返回:
bytearray - 该特征的值
write_gatt_char(char_specifier, data)
向一个特征写入值。
start_notify(char_specifier, callback=noop_handler, max_messages=None, timeout=None)
订阅某个特征的通知。
返回:
tuple[bool, list] - (timed_out, messages),其中 timed_out 在超时时为 True
stop_notify(char_specifier)
取消订阅某个特征的通知。
sleep(timeout)
休眠一段时间(异步安全)。
辅助函数
noop_handler(handle, data)
一个空操作的通知处理函数。
notify_handler(evt, messages, callback, max_messages, handle, data)
内部通知处理函数,负责收集消息并发出完成信号。
waiter(event, timeout)
用于通知事件的异步等待辅助函数。
示例
扫描设备
连接并读取特征
订阅通知
写入命令并读取响应
检查设备固件版本
BLE 产线测试
硬件要求
依赖
BLE 模块底层使用 Bleak 作为 BLE 库,它提供跨平台的 BLE 支持。说明
- BLE 操作是对 Bleak 异步操作的同步封装
- Client 类支持上下文管理器(
with语句),可自动清理 - 通知回调函数接收
(handle, data)参数 - 请把
max_messages和timeout配合使用,以控制通知的收集 - MAC 地址的常见格式为
AA:BB:CC:DD:EE:FF - 有些 BLE 操作必须先完成配对才能工作
- 扫描得到的设备对象上可以读取信号强度(RSSI)

