连接状态事件

通过API获取设备连接状态事件。

参考 Get Device Connection Status

备注

  • 注意如果设备已经处于连接状态时,连接API响应成功,连接事件并不会上报

示例

 1import asyncio
 2import cassiablue
 3
 4
 5async def stater():
 6    print("start recv state event")
 7    ok, _ = await cassiablue.start_recv_connection_state()
 8    print(type(ok), ok)
 9    if not ok:
10        return
11
12    async for evt in cassiablue.connection_result():
13        print(type(evt), evt)
14
15
16async def connector():
17    print("start connect")
18
19    params = '{"type": "random"}'
20    addr = "20:00:00:00:00:01"
21    ok, ret = await cassiablue.connect(addr, params)
22    print("connect done:", type(ok), ok, type(ret), ret)
23
24    await asyncio.sleep(3)
25
26    ok, ret = await cassiablue.disconnect(addr)
27    print("disconnect done:", type(ok), ok, type(ret), ret)
28
29
30async def main():
31    print("start")
32    await asyncio.gather(stater(), connector())
33
34
35print("hello")
36asyncio.run(main())

API

async cassiablue.start_recv_connection_state() tuple[ok: bool, result: str]

开启获取设备连接状态事件,用于实时获取设备连接状态变化,目前支持同时开启1个

返回:

  • ok: 是否执行成功

  • result: 执行结果,消息数据请参考 BLEConnectionResult

async cassiablue.connection_result() BLEConnectionResult

获取连接状态事件

返回:

class BLEConnectionResult

class BLEConnectionResult

异步可迭代对象,用于流式接收 BLE 连接状态事件。

async __aiter__() BLEConnectionResult

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

async __anext__() dict

从全局 state_sse_client.queue 中异步获取下一条消息并返回。

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

数据字段说明

字段

类型

说明

示例

connectionState

str

事件类型

connected disconnected

rssi

int

RSSI

-65

handle

str

设备MAC地址

20:00:00:00:00:01

reason

str

断连原因(disconnected有效)

host disconnect

packetLossRate

int

丢包率(disconnected有效)

3

备注