连接状态事件
通过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
备注
reason参考 Error Messages