mirror of
https://github.com/esphome/aioesphomeapi.git
synced 2025-02-07 00:11:32 +01:00
Include Bluetooth connection slot allocations in connections free message (#1038)
This commit is contained in:
parent
13c71fc52c
commit
a7758314f1
@ -1404,6 +1404,7 @@ message BluetoothConnectionsFreeResponse {
|
||||
|
||||
uint32 free = 1;
|
||||
uint32 limit = 2;
|
||||
repeated uint64 allocated = 3;
|
||||
}
|
||||
|
||||
message BluetoothGATTErrorResponse {
|
||||
|
File diff suppressed because one or more lines are too long
@ -521,7 +521,8 @@ class APIClient:
|
||||
return partial(self._unsub_bluetooth_advertisements, unsub_callback)
|
||||
|
||||
def subscribe_bluetooth_connections_free(
|
||||
self, on_bluetooth_connections_free_update: Callable[[int, int], None]
|
||||
self,
|
||||
on_bluetooth_connections_free_update: Callable[[int, int, list[int]], None],
|
||||
) -> Callable[[], None]:
|
||||
return self._get_connection().send_message_callback_response(
|
||||
SubscribeBluetoothConnectionsFreeRequest(),
|
||||
|
@ -71,10 +71,10 @@ def on_bluetooth_le_advertising_response(
|
||||
|
||||
|
||||
def on_bluetooth_connections_free_response(
|
||||
on_bluetooth_connections_free_update: Callable[[int, int], None],
|
||||
on_bluetooth_connections_free_update: Callable[[int, int, list[int]], None],
|
||||
msg: BluetoothConnectionsFreeResponse,
|
||||
) -> None:
|
||||
on_bluetooth_connections_free_update(msg.free, msg.limit)
|
||||
on_bluetooth_connections_free_update(msg.free, msg.limit, list(msg.allocated))
|
||||
|
||||
|
||||
def on_bluetooth_gatt_notify_data_response(
|
||||
|
@ -1858,15 +1858,19 @@ async def test_subscribe_bluetooth_connections_free(
|
||||
client, connection, transport, protocol = api_client
|
||||
connections = []
|
||||
|
||||
def on_bluetooth_connections_free(free: int, limit: int) -> None:
|
||||
connections.append((free, limit))
|
||||
def on_bluetooth_connections_free(
|
||||
free: int, limit: int, allocated: list[int]
|
||||
) -> None:
|
||||
connections.append((free, limit, allocated))
|
||||
|
||||
unsub = client.subscribe_bluetooth_connections_free(on_bluetooth_connections_free)
|
||||
await asyncio.sleep(0)
|
||||
response: message.Message = BluetoothConnectionsFreeResponse(free=2, limit=3)
|
||||
response: message.Message = BluetoothConnectionsFreeResponse(
|
||||
free=2, limit=3, allocated=[1234, 5678]
|
||||
)
|
||||
mock_data_received(protocol, generate_plaintext_packet(response))
|
||||
|
||||
assert connections == [(2, 3)]
|
||||
assert connections == [(2, 3, [1234, 5678])]
|
||||
unsub()
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user