Skip to content

Commit 58d8852

Browse files
committed
Add is_disconnected property
1 parent d112901 commit 58d8852

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

bumble/device.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,10 @@ async def disconnect(
14471447
) -> None:
14481448
await self.device.disconnect(self, reason)
14491449

1450+
@property
1451+
def is_disconnected(self) -> bool:
1452+
return self not in self.device.sco_links.values()
1453+
14501454

14511455
# -----------------------------------------------------------------------------
14521456
class _IsoLink:
@@ -1644,6 +1648,10 @@ async def disconnect(
16441648
) -> None:
16451649
await self.device.disconnect(self, reason)
16461650

1651+
@property
1652+
def is_disconnected(self) -> bool:
1653+
return self not in self.device.cis_links.values()
1654+
16471655

16481656
# -----------------------------------------------------------------------------
16491657
@dataclass
@@ -1870,7 +1878,11 @@ def is_encrypted(self) -> bool:
18701878

18711879
@property
18721880
def is_incomplete(self) -> bool:
1873-
return self.handle is None
1881+
return self.handle == 0
1882+
1883+
@property
1884+
def is_disconnected(self) -> bool:
1885+
return self not in self.device.connections.values()
18741886

18751887
def send_l2cap_pdu(self, cid: int, pdu: bytes) -> None:
18761888
self.device.send_l2cap_pdu(self.handle, cid, pdu)
@@ -1913,6 +1925,9 @@ async def switch_role(self, role: hci.Role) -> None:
19131925

19141926
async def sustain(self, timeout: Optional[float] = None) -> None:
19151927
"""Idles the current task waiting for a disconnect or timeout"""
1928+
if self.is_disconnected:
1929+
# Connection already disconnected
1930+
return
19161931

19171932
abort = asyncio.get_running_loop().create_future()
19181933
self.on(self.EVENT_DISCONNECTION, abort.set_result)

0 commit comments

Comments
 (0)