扫描BLE设备

通过API扫描BLE设备,支持自定义扫描参数。

示例

 1import asyncio
 2import cassiablue
 3
 4
 5async def main():
 6    print("start scan")
 7    ok, _ = await cassiablue.start_scan("active=1&filter_duplicates=1000")
 8    print(type(ok), ok)
 9    if not ok:
10        return
11
12    async for dev in cassiablue.scan_result():
13        print(type(dev), dev)
14        await asyncio.sleep_ms(5)
15
16
17asyncio.run(main())

API

async cassiablue.start_scan(query: str | None = None) tuple[ok: bool, result: str]

开启扫描,用于扫描周围的BLE设备,目前支持同时开启1个

Parameters:
返回:

  • ok: 是否执行成功

  • result: 执行结果,扫描数据请参考 BLEScanResult

async cassiablue.scan_result() BLEScanResult

获取扫描数据

返回:

class BLEScanResult

class BLEScanResult

异步可迭代对象,用于流式接收 BLE 扫描数据。

async __aiter__() BLEScanResult

返回自身,使实例可直接用于 async for 循环。

async __anext__() dict

从全局 scan_sse_client.queue 中异步获取下一条扫描结果并返回。

当队列为空时会一直等待,直到有新数据到达。

数据字段说明

字段

类型

说明

示例

bdaddr

str

设备MAC地址

20:00:00:00:00:02

bdaddrType

str

设备地址类型

random

rssi

int

RSSI

-65

evtType

int

Event Type

3

name

str

广播名称

M2000

adData

str

广播包

0201060D…

scanData

str

扫描响应包

11094D…