Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / src / controller / python / chip / ble / get_adapters.py
1 from typing import List
2 from dataclasses import dataclass
3 from chip.ble.library_handle import _GetBleLibraryHandle
4
5
6 @dataclass
7 class AdapterInfo:
8   index: int
9   address: str
10   name: str
11   alias: str
12   powered_on: bool
13
14
15 def GetAdapters() -> List[AdapterInfo]:
16   """Get a list of BLE adapters available on the system. """
17   handle = _GetBleLibraryHandle()
18
19   result = []
20   nativeList = handle.pychip_ble_adapter_list_new()
21   if nativeList == 0:
22     raise Exception('Failed to get BLE adapter list')
23
24   try:
25     while handle.pychip_ble_adapter_list_next(nativeList):
26       result.append(
27           AdapterInfo(
28               index=handle.pychip_ble_adapter_list_get_index(nativeList),
29               address=handle.pychip_ble_adapter_list_get_address(
30                   nativeList).decode('utf8'),
31               name=handle.pychip_ble_adapter_list_get_name(nativeList).decode(
32                   'utf8'),
33               alias=handle.pychip_ble_adapter_list_get_alias(nativeList).decode(
34                   'utf8'),
35               powered_on=handle.pychip_ble_adapter_list_is_powered(nativeList),
36           ))
37
38   finally:
39     handle.pychip_ble_adapter_list_delete(nativeList)
40
41   return result