mirror of
https://github.com/google/bumble.git
synced 2026-05-09 04:08:02 +00:00
Merge pull request #360 from zxzxwu/hci
Remove # type: ignore[call-arg] in HCI_Command builders
This commit is contained in:
112
bumble/device.py
112
bumble/device.py
@@ -1432,7 +1432,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.host.reset()
|
await self.host.reset()
|
||||||
|
|
||||||
# Try to get the public address from the controller
|
# Try to get the public address from the controller
|
||||||
response = await self.send_command(HCI_Read_BD_ADDR_Command()) # type: ignore[call-arg]
|
response = await self.send_command(HCI_Read_BD_ADDR_Command())
|
||||||
if response.return_parameters.status == HCI_SUCCESS:
|
if response.return_parameters.status == HCI_SUCCESS:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
color(f'BD_ADDR: {response.return_parameters.bd_addr}', 'yellow')
|
color(f'BD_ADDR: {response.return_parameters.bd_addr}', 'yellow')
|
||||||
@@ -1455,7 +1455,7 @@ class Device(CompositeEventEmitter):
|
|||||||
HCI_Write_LE_Host_Support_Command(
|
HCI_Write_LE_Host_Support_Command(
|
||||||
le_supported_host=int(self.le_enabled),
|
le_supported_host=int(self.le_enabled),
|
||||||
simultaneous_le_host=int(self.le_simultaneous_enabled),
|
simultaneous_le_host=int(self.le_simultaneous_enabled),
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.le_enabled:
|
if self.le_enabled:
|
||||||
@@ -1465,7 +1465,7 @@ class Device(CompositeEventEmitter):
|
|||||||
if self.host.supports_command(HCI_LE_RAND_COMMAND):
|
if self.host.supports_command(HCI_LE_RAND_COMMAND):
|
||||||
# Get 8 random bytes
|
# Get 8 random bytes
|
||||||
response = await self.send_command(
|
response = await self.send_command(
|
||||||
HCI_LE_Rand_Command(), check_result=True # type: ignore[call-arg]
|
HCI_LE_Rand_Command(), check_result=True
|
||||||
)
|
)
|
||||||
|
|
||||||
# Ensure the address bytes can be a static random address
|
# Ensure the address bytes can be a static random address
|
||||||
@@ -1486,7 +1486,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Random_Address_Command(
|
HCI_LE_Set_Random_Address_Command(
|
||||||
random_address=self.random_address
|
random_address=self.random_address
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1499,12 +1499,12 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Address_Resolution_Enable_Command(
|
HCI_LE_Set_Address_Resolution_Enable_Command(
|
||||||
address_resolution_enable=1
|
address_resolution_enable=1
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.cis_enabled:
|
if self.cis_enabled:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Host_Feature_Command( # type: ignore[call-arg]
|
HCI_LE_Set_Host_Feature_Command(
|
||||||
bit_number=(
|
bit_number=(
|
||||||
HCI_CONNECTED_ISOCHRONOUS_STREAM_LE_SUPPORTED_FEATURE
|
HCI_CONNECTED_ISOCHRONOUS_STREAM_LE_SUPPORTED_FEATURE
|
||||||
),
|
),
|
||||||
@@ -1514,20 +1514,20 @@ class Device(CompositeEventEmitter):
|
|||||||
|
|
||||||
if self.classic_enabled:
|
if self.classic_enabled:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Local_Name_Command(local_name=self.name.encode('utf8')) # type: ignore[call-arg]
|
HCI_Write_Local_Name_Command(local_name=self.name.encode('utf8'))
|
||||||
)
|
)
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Class_Of_Device_Command(class_of_device=self.class_of_device) # type: ignore[call-arg]
|
HCI_Write_Class_Of_Device_Command(class_of_device=self.class_of_device)
|
||||||
)
|
)
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Simple_Pairing_Mode_Command(
|
HCI_Write_Simple_Pairing_Mode_Command(
|
||||||
simple_pairing_mode=int(self.classic_ssp_enabled)
|
simple_pairing_mode=int(self.classic_ssp_enabled)
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Secure_Connections_Host_Support_Command(
|
HCI_Write_Secure_Connections_Host_Support_Command(
|
||||||
secure_connections_host_support=int(self.classic_sc_enabled)
|
secure_connections_host_support=int(self.classic_sc_enabled)
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
await self.set_connectable(self.connectable)
|
await self.set_connectable(self.connectable)
|
||||||
await self.set_discoverable(self.discoverable)
|
await self.set_discoverable(self.discoverable)
|
||||||
@@ -1551,7 +1551,7 @@ class Device(CompositeEventEmitter):
|
|||||||
self.address_resolver = smp.AddressResolver(resolving_keys)
|
self.address_resolver = smp.AddressResolver(resolving_keys)
|
||||||
|
|
||||||
if self.address_resolution_offload:
|
if self.address_resolution_offload:
|
||||||
await self.send_command(HCI_LE_Clear_Resolving_List_Command()) # type: ignore[call-arg]
|
await self.send_command(HCI_LE_Clear_Resolving_List_Command())
|
||||||
|
|
||||||
for irk, address in resolving_keys:
|
for irk, address in resolving_keys:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
@@ -1560,7 +1560,7 @@ class Device(CompositeEventEmitter):
|
|||||||
peer_identity_address=address,
|
peer_identity_address=address,
|
||||||
peer_irk=irk,
|
peer_irk=irk,
|
||||||
local_irk=self.irk,
|
local_irk=self.irk,
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def supports_le_feature(self, feature):
|
def supports_le_feature(self, feature):
|
||||||
@@ -1595,7 +1595,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Advertising_Data_Command(
|
HCI_LE_Set_Advertising_Data_Command(
|
||||||
advertising_data=self.advertising_data
|
advertising_data=self.advertising_data
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1604,7 +1604,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Scan_Response_Data_Command(
|
HCI_LE_Set_Scan_Response_Data_Command(
|
||||||
scan_response_data=self.scan_response_data
|
scan_response_data=self.scan_response_data
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1630,13 +1630,13 @@ class Device(CompositeEventEmitter):
|
|||||||
peer_address=peer_address,
|
peer_address=peer_address,
|
||||||
advertising_channel_map=7,
|
advertising_channel_map=7,
|
||||||
advertising_filter_policy=0,
|
advertising_filter_policy=0,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Enable advertising
|
# Enable advertising
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Advertising_Enable_Command(advertising_enable=1), # type: ignore[call-arg]
|
HCI_LE_Set_Advertising_Enable_Command(advertising_enable=1),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1649,7 +1649,7 @@ class Device(CompositeEventEmitter):
|
|||||||
# Disable advertising
|
# Disable advertising
|
||||||
if self.advertising:
|
if self.advertising:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Advertising_Enable_Command(advertising_enable=0), # type: ignore[call-arg]
|
HCI_LE_Set_Advertising_Enable_Command(advertising_enable=0),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1716,7 +1716,7 @@ class Device(CompositeEventEmitter):
|
|||||||
secondary_advertising_phy=1, # LE 1M
|
secondary_advertising_phy=1, # LE 1M
|
||||||
advertising_sid=0,
|
advertising_sid=0,
|
||||||
scan_request_notification_enable=0,
|
scan_request_notification_enable=0,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1728,7 +1728,7 @@ class Device(CompositeEventEmitter):
|
|||||||
operation=HCI_LE_Set_Extended_Advertising_Data_Command.Operation.COMPLETE_DATA,
|
operation=HCI_LE_Set_Extended_Advertising_Data_Command.Operation.COMPLETE_DATA,
|
||||||
fragment_preference=0x01, # Should not fragment
|
fragment_preference=0x01, # Should not fragment
|
||||||
advertising_data=advertising_data,
|
advertising_data=advertising_data,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1740,7 +1740,7 @@ class Device(CompositeEventEmitter):
|
|||||||
operation=HCI_LE_Set_Extended_Advertising_Data_Command.Operation.COMPLETE_DATA,
|
operation=HCI_LE_Set_Extended_Advertising_Data_Command.Operation.COMPLETE_DATA,
|
||||||
fragment_preference=0x01, # Should not fragment
|
fragment_preference=0x01, # Should not fragment
|
||||||
scan_response_data=scan_response,
|
scan_response_data=scan_response,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1752,7 +1752,7 @@ class Device(CompositeEventEmitter):
|
|||||||
HCI_LE_Set_Advertising_Set_Random_Address_Command(
|
HCI_LE_Set_Advertising_Set_Random_Address_Command(
|
||||||
advertising_handle=adv_handle,
|
advertising_handle=adv_handle,
|
||||||
random_address=self.random_address,
|
random_address=self.random_address,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1763,13 +1763,13 @@ class Device(CompositeEventEmitter):
|
|||||||
advertising_handles=[adv_handle],
|
advertising_handles=[adv_handle],
|
||||||
durations=[0], # Forever
|
durations=[0], # Forever
|
||||||
max_extended_advertising_events=[0], # Infinite
|
max_extended_advertising_events=[0], # Infinite
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
except HCI_Error as error:
|
except HCI_Error as error:
|
||||||
# When any step fails, cleanup the advertising handle.
|
# When any step fails, cleanup the advertising handle.
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Remove_Advertising_Set_Command(advertising_handle=adv_handle), # type: ignore[call-arg]
|
HCI_LE_Remove_Advertising_Set_Command(advertising_handle=adv_handle),
|
||||||
check_result=False,
|
check_result=False,
|
||||||
)
|
)
|
||||||
raise error
|
raise error
|
||||||
@@ -1791,12 +1791,12 @@ class Device(CompositeEventEmitter):
|
|||||||
advertising_handles=[adv_handle],
|
advertising_handles=[adv_handle],
|
||||||
durations=[0],
|
durations=[0],
|
||||||
max_extended_advertising_events=[0],
|
max_extended_advertising_events=[0],
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
# Remove advertising set
|
# Remove advertising set
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Remove_Advertising_Set_Command(advertising_handle=adv_handle), # type: ignore[call-arg]
|
HCI_LE_Remove_Advertising_Set_Command(advertising_handle=adv_handle),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
self.extended_advertising_handles.remove(adv_handle)
|
self.extended_advertising_handles.remove(adv_handle)
|
||||||
@@ -1864,7 +1864,7 @@ class Device(CompositeEventEmitter):
|
|||||||
scan_types=[scan_type] * scanning_phy_count,
|
scan_types=[scan_type] * scanning_phy_count,
|
||||||
scan_intervals=[int(scan_window / 0.625)] * scanning_phy_count,
|
scan_intervals=[int(scan_window / 0.625)] * scanning_phy_count,
|
||||||
scan_windows=[int(scan_window / 0.625)] * scanning_phy_count,
|
scan_windows=[int(scan_window / 0.625)] * scanning_phy_count,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1875,7 +1875,7 @@ class Device(CompositeEventEmitter):
|
|||||||
filter_duplicates=1 if filter_duplicates else 0,
|
filter_duplicates=1 if filter_duplicates else 0,
|
||||||
duration=0, # TODO allow other values
|
duration=0, # TODO allow other values
|
||||||
period=0, # TODO allow other values
|
period=0, # TODO allow other values
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
@@ -1893,7 +1893,7 @@ class Device(CompositeEventEmitter):
|
|||||||
le_scan_window=int(scan_window / 0.625),
|
le_scan_window=int(scan_window / 0.625),
|
||||||
own_address_type=own_address_type,
|
own_address_type=own_address_type,
|
||||||
scanning_filter_policy=HCI_LE_Set_Scan_Parameters_Command.BASIC_UNFILTERED_POLICY,
|
scanning_filter_policy=HCI_LE_Set_Scan_Parameters_Command.BASIC_UNFILTERED_POLICY,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1901,7 +1901,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Scan_Enable_Command(
|
HCI_LE_Set_Scan_Enable_Command(
|
||||||
le_scan_enable=1, filter_duplicates=1 if filter_duplicates else 0
|
le_scan_enable=1, filter_duplicates=1 if filter_duplicates else 0
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1914,12 +1914,12 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Extended_Scan_Enable_Command(
|
HCI_LE_Set_Extended_Scan_Enable_Command(
|
||||||
enable=0, filter_duplicates=0, duration=0, period=0
|
enable=0, filter_duplicates=0, duration=0, period=0
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_LE_Set_Scan_Enable_Command(le_scan_enable=0, filter_duplicates=0), # type: ignore[call-arg]
|
HCI_LE_Set_Scan_Enable_Command(le_scan_enable=0, filter_duplicates=0),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1939,7 +1939,7 @@ class Device(CompositeEventEmitter):
|
|||||||
|
|
||||||
async def start_discovery(self, auto_restart: bool = True) -> None:
|
async def start_discovery(self, auto_restart: bool = True) -> None:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Inquiry_Mode_Command(inquiry_mode=HCI_EXTENDED_INQUIRY_MODE), # type: ignore[call-arg]
|
HCI_Write_Inquiry_Mode_Command(inquiry_mode=HCI_EXTENDED_INQUIRY_MODE),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1948,7 +1948,7 @@ class Device(CompositeEventEmitter):
|
|||||||
lap=HCI_GENERAL_INQUIRY_LAP,
|
lap=HCI_GENERAL_INQUIRY_LAP,
|
||||||
inquiry_length=DEVICE_DEFAULT_INQUIRY_LENGTH,
|
inquiry_length=DEVICE_DEFAULT_INQUIRY_LENGTH,
|
||||||
num_responses=0, # Unlimited number of responses.
|
num_responses=0, # Unlimited number of responses.
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
if response.status != HCI_Command_Status_Event.PENDING:
|
if response.status != HCI_Command_Status_Event.PENDING:
|
||||||
self.discovering = False
|
self.discovering = False
|
||||||
@@ -1959,7 +1959,7 @@ class Device(CompositeEventEmitter):
|
|||||||
|
|
||||||
async def stop_discovery(self) -> None:
|
async def stop_discovery(self) -> None:
|
||||||
if self.discovering:
|
if self.discovering:
|
||||||
await self.send_command(HCI_Inquiry_Cancel_Command(), check_result=True) # type: ignore[call-arg]
|
await self.send_command(HCI_Inquiry_Cancel_Command(), check_result=True)
|
||||||
self.auto_restart_inquiry = True
|
self.auto_restart_inquiry = True
|
||||||
self.discovering = False
|
self.discovering = False
|
||||||
|
|
||||||
@@ -2007,7 +2007,7 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Write_Extended_Inquiry_Response_Command(
|
HCI_Write_Extended_Inquiry_Response_Command(
|
||||||
fec_required=0, extended_inquiry_response=self.inquiry_response
|
fec_required=0, extended_inquiry_response=self.inquiry_response
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
await self.set_scan_enable(
|
await self.set_scan_enable(
|
||||||
@@ -2196,7 +2196,7 @@ class Device(CompositeEventEmitter):
|
|||||||
supervision_timeouts=supervision_timeouts,
|
supervision_timeouts=supervision_timeouts,
|
||||||
min_ce_lengths=min_ce_lengths,
|
min_ce_lengths=min_ce_lengths,
|
||||||
max_ce_lengths=max_ce_lengths,
|
max_ce_lengths=max_ce_lengths,
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if HCI_LE_1M_PHY not in connection_parameters_preferences:
|
if HCI_LE_1M_PHY not in connection_parameters_preferences:
|
||||||
@@ -2225,7 +2225,7 @@ class Device(CompositeEventEmitter):
|
|||||||
supervision_timeout=int(prefs.supervision_timeout / 10),
|
supervision_timeout=int(prefs.supervision_timeout / 10),
|
||||||
min_ce_length=int(prefs.min_ce_length / 0.625),
|
min_ce_length=int(prefs.min_ce_length / 0.625),
|
||||||
max_ce_length=int(prefs.max_ce_length / 0.625),
|
max_ce_length=int(prefs.max_ce_length / 0.625),
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
# Save pending connection
|
# Save pending connection
|
||||||
@@ -2242,7 +2242,7 @@ class Device(CompositeEventEmitter):
|
|||||||
clock_offset=0x0000,
|
clock_offset=0x0000,
|
||||||
allow_role_switch=0x01,
|
allow_role_switch=0x01,
|
||||||
reserved=0,
|
reserved=0,
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if result.status != HCI_Command_Status_Event.PENDING:
|
if result.status != HCI_Command_Status_Event.PENDING:
|
||||||
@@ -2261,10 +2261,10 @@ class Device(CompositeEventEmitter):
|
|||||||
)
|
)
|
||||||
except asyncio.TimeoutError:
|
except asyncio.TimeoutError:
|
||||||
if transport == BT_LE_TRANSPORT:
|
if transport == BT_LE_TRANSPORT:
|
||||||
await self.send_command(HCI_LE_Create_Connection_Cancel_Command()) # type: ignore[call-arg]
|
await self.send_command(HCI_LE_Create_Connection_Cancel_Command())
|
||||||
else:
|
else:
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Create_Connection_Cancel_Command(bd_addr=peer_address) # type: ignore[call-arg]
|
HCI_Create_Connection_Cancel_Command(bd_addr=peer_address)
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -2378,7 +2378,7 @@ class Device(CompositeEventEmitter):
|
|||||||
try:
|
try:
|
||||||
# Accept connection request
|
# Accept connection request
|
||||||
await self.send_command(
|
await self.send_command(
|
||||||
HCI_Accept_Connection_Request_Command(bd_addr=peer_address, role=role) # type: ignore[call-arg]
|
HCI_Accept_Connection_Request_Command(bd_addr=peer_address, role=role)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Wait for connection complete
|
# Wait for connection complete
|
||||||
@@ -2445,7 +2445,7 @@ class Device(CompositeEventEmitter):
|
|||||||
|
|
||||||
# Request a disconnection
|
# Request a disconnection
|
||||||
result = await self.send_command(
|
result = await self.send_command(
|
||||||
HCI_Disconnect_Command(connection_handle=connection.handle, reason=reason) # type: ignore[call-arg]
|
HCI_Disconnect_Command(connection_handle=connection.handle, reason=reason)
|
||||||
)
|
)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -2476,7 +2476,7 @@ class Device(CompositeEventEmitter):
|
|||||||
connection_handle=connection.handle,
|
connection_handle=connection.handle,
|
||||||
tx_octets=tx_octets,
|
tx_octets=tx_octets,
|
||||||
tx_time=tx_time,
|
tx_time=tx_time,
|
||||||
), # type: ignore[call-arg]
|
),
|
||||||
check_result=True,
|
check_result=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2522,7 +2522,7 @@ class Device(CompositeEventEmitter):
|
|||||||
supervision_timeout=supervision_timeout,
|
supervision_timeout=supervision_timeout,
|
||||||
min_ce_length=min_ce_length,
|
min_ce_length=min_ce_length,
|
||||||
max_ce_length=max_ce_length,
|
max_ce_length=max_ce_length,
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
if result.status != HCI_Command_Status_Event.PENDING:
|
if result.status != HCI_Command_Status_Event.PENDING:
|
||||||
raise HCI_StatusError(result)
|
raise HCI_StatusError(result)
|
||||||
@@ -2850,7 +2850,7 @@ class Device(CompositeEventEmitter):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
result = await self.send_command(
|
result = await self.send_command(
|
||||||
HCI_Switch_Role_Command(bd_addr=connection.peer_address, role=role) # type: ignore[call-arg]
|
HCI_Switch_Role_Command(bd_addr=connection.peer_address, role=role)
|
||||||
)
|
)
|
||||||
if result.status != HCI_COMMAND_STATUS_PENDING:
|
if result.status != HCI_COMMAND_STATUS_PENDING:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@@ -2892,7 +2892,7 @@ class Device(CompositeEventEmitter):
|
|||||||
page_scan_repetition_mode=HCI_Remote_Name_Request_Command.R2,
|
page_scan_repetition_mode=HCI_Remote_Name_Request_Command.R2,
|
||||||
reserved=0,
|
reserved=0,
|
||||||
clock_offset=0, # TODO investigate non-0 values
|
clock_offset=0, # TODO investigate non-0 values
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if result.status != HCI_COMMAND_STATUS_PENDING:
|
if result.status != HCI_COMMAND_STATUS_PENDING:
|
||||||
@@ -2938,7 +2938,7 @@ class Device(CompositeEventEmitter):
|
|||||||
num_cis = len(cis_id)
|
num_cis = len(cis_id)
|
||||||
|
|
||||||
response = await self.send_command(
|
response = await self.send_command(
|
||||||
HCI_LE_Set_CIG_Parameters_Command( # type: ignore[call-arg]
|
HCI_LE_Set_CIG_Parameters_Command(
|
||||||
cig_id=cig_id,
|
cig_id=cig_id,
|
||||||
sdu_interval_c_to_p=sdu_interval[0],
|
sdu_interval_c_to_p=sdu_interval[0],
|
||||||
sdu_interval_p_to_c=sdu_interval[1],
|
sdu_interval_p_to_c=sdu_interval[1],
|
||||||
@@ -2982,7 +2982,7 @@ class Device(CompositeEventEmitter):
|
|||||||
)
|
)
|
||||||
|
|
||||||
result = await self.send_command(
|
result = await self.send_command(
|
||||||
HCI_LE_Create_CIS_Command( # type: ignore[call-arg]
|
HCI_LE_Create_CIS_Command(
|
||||||
cis_connection_handle=[p[0] for p in cis_acl_pairs],
|
cis_connection_handle=[p[0] for p in cis_acl_pairs],
|
||||||
acl_connection_handle=[p[1] for p in cis_acl_pairs],
|
acl_connection_handle=[p[1] for p in cis_acl_pairs],
|
||||||
),
|
),
|
||||||
@@ -3015,9 +3015,7 @@ class Device(CompositeEventEmitter):
|
|||||||
@experimental('Only for testing.')
|
@experimental('Only for testing.')
|
||||||
async def accept_cis_request(self, handle: int) -> CisLink:
|
async def accept_cis_request(self, handle: int) -> CisLink:
|
||||||
result = await self.send_command(
|
result = await self.send_command(
|
||||||
HCI_LE_Accept_CIS_Request_Command( # type: ignore[call-arg]
|
HCI_LE_Accept_CIS_Request_Command(connection_handle=handle),
|
||||||
connection_handle=handle
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
if result.status != HCI_COMMAND_STATUS_PENDING:
|
if result.status != HCI_COMMAND_STATUS_PENDING:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@@ -3045,9 +3043,7 @@ class Device(CompositeEventEmitter):
|
|||||||
reason: int = HCI_REMOTE_USER_TERMINATED_CONNECTION_ERROR,
|
reason: int = HCI_REMOTE_USER_TERMINATED_CONNECTION_ERROR,
|
||||||
) -> None:
|
) -> None:
|
||||||
result = await self.send_command(
|
result = await self.send_command(
|
||||||
HCI_LE_Reject_CIS_Request_Command( # type: ignore[call-arg]
|
HCI_LE_Reject_CIS_Request_Command(connection_handle=handle, reason=reason),
|
||||||
connection_handle=handle, reason=reason
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
if result.status != HCI_COMMAND_STATUS_PENDING:
|
if result.status != HCI_COMMAND_STATUS_PENDING:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
@@ -3439,7 +3435,7 @@ class Device(CompositeEventEmitter):
|
|||||||
try:
|
try:
|
||||||
if await connection.abort_on('disconnection', method()):
|
if await connection.abort_on('disconnection', method()):
|
||||||
await self.host.send_command(
|
await self.host.send_command(
|
||||||
HCI_User_Confirmation_Request_Reply_Command( # type: ignore[call-arg]
|
HCI_User_Confirmation_Request_Reply_Command(
|
||||||
bd_addr=connection.peer_address
|
bd_addr=connection.peer_address
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -3448,7 +3444,7 @@ class Device(CompositeEventEmitter):
|
|||||||
logger.warning(f'exception while confirming: {error}')
|
logger.warning(f'exception while confirming: {error}')
|
||||||
|
|
||||||
await self.host.send_command(
|
await self.host.send_command(
|
||||||
HCI_User_Confirmation_Request_Negative_Reply_Command( # type: ignore[call-arg]
|
HCI_User_Confirmation_Request_Negative_Reply_Command(
|
||||||
bd_addr=connection.peer_address
|
bd_addr=connection.peer_address
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -3469,7 +3465,7 @@ class Device(CompositeEventEmitter):
|
|||||||
)
|
)
|
||||||
if number is not None:
|
if number is not None:
|
||||||
await self.host.send_command(
|
await self.host.send_command(
|
||||||
HCI_User_Passkey_Request_Reply_Command( # type: ignore[call-arg]
|
HCI_User_Passkey_Request_Reply_Command(
|
||||||
bd_addr=connection.peer_address, numeric_value=number
|
bd_addr=connection.peer_address, numeric_value=number
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -3478,7 +3474,7 @@ class Device(CompositeEventEmitter):
|
|||||||
logger.warning(f'exception while asking for pass-key: {error}')
|
logger.warning(f'exception while asking for pass-key: {error}')
|
||||||
|
|
||||||
await self.host.send_command(
|
await self.host.send_command(
|
||||||
HCI_User_Passkey_Request_Negative_Reply_Command( # type: ignore[call-arg]
|
HCI_User_Passkey_Request_Negative_Reply_Command(
|
||||||
bd_addr=connection.peer_address
|
bd_addr=connection.peer_address
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -2018,6 +2018,7 @@ class HCI_Command(HCI_Packet):
|
|||||||
hci_packet_type = HCI_COMMAND_PACKET
|
hci_packet_type = HCI_COMMAND_PACKET
|
||||||
command_names: Dict[int, str] = {}
|
command_names: Dict[int, str] = {}
|
||||||
command_classes: Dict[int, Type[HCI_Command]] = {}
|
command_classes: Dict[int, Type[HCI_Command]] = {}
|
||||||
|
op_code: int
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def command(fields=(), return_parameters_fields=()):
|
def command(fields=(), return_parameters_fields=()):
|
||||||
@@ -2103,7 +2104,11 @@ class HCI_Command(HCI_Packet):
|
|||||||
return_parameters.fields = cls.return_parameters_fields
|
return_parameters.fields = cls.return_parameters_fields
|
||||||
return return_parameters
|
return return_parameters
|
||||||
|
|
||||||
def __init__(self, op_code, parameters=None, **kwargs):
|
def __init__(self, op_code=-1, parameters=None, **kwargs):
|
||||||
|
# Since the legacy implementation relies on an __init__ injector, typing always
|
||||||
|
# complains that positional argument op_code is not passed, so here sets a
|
||||||
|
# default value to allow building derived HCI_Command without op_code.
|
||||||
|
assert op_code != -1
|
||||||
super().__init__(HCI_Command.command_name(op_code))
|
super().__init__(HCI_Command.command_name(op_code))
|
||||||
if (fields := getattr(self, 'fields', None)) and kwargs:
|
if (fields := getattr(self, 'fields', None)) and kwargs:
|
||||||
HCI_Object.init_from_fields(self, fields, kwargs)
|
HCI_Object.init_from_fields(self, fields, kwargs)
|
||||||
|
|||||||
@@ -1926,7 +1926,7 @@ class ChannelManager:
|
|||||||
supervision_timeout=request.timeout,
|
supervision_timeout=request.timeout,
|
||||||
min_ce_length=0,
|
min_ce_length=0,
|
||||||
max_ce_length=0,
|
max_ce_length=0,
|
||||||
) # type: ignore[call-arg]
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self.send_control_frame(
|
self.send_control_frame(
|
||||||
|
|||||||
@@ -1090,7 +1090,7 @@ class Session:
|
|||||||
# We can now encrypt the connection with the short term key, so that we can
|
# We can now encrypt the connection with the short term key, so that we can
|
||||||
# distribute the long term and/or other keys over an encrypted connection
|
# distribute the long term and/or other keys over an encrypted connection
|
||||||
self.manager.device.host.send_command_sync(
|
self.manager.device.host.send_command_sync(
|
||||||
HCI_LE_Enable_Encryption_Command( # type: ignore[call-arg]
|
HCI_LE_Enable_Encryption_Command(
|
||||||
connection_handle=self.connection.handle,
|
connection_handle=self.connection.handle,
|
||||||
random_number=bytes(8),
|
random_number=bytes(8),
|
||||||
encrypted_diversifier=0,
|
encrypted_diversifier=0,
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ async def main() -> None:
|
|||||||
HCI_Enhanced_Setup_Synchronous_Connection_Command(
|
HCI_Enhanced_Setup_Synchronous_Connection_Command(
|
||||||
connection_handle=connections[0].handle,
|
connection_handle=connections[0].handle,
|
||||||
**ESCO_PARAMETERS[DefaultCodecParameters.ESCO_CVSD_S3].asdict(),
|
**ESCO_PARAMETERS[DefaultCodecParameters.ESCO_CVSD_S3].asdict(),
|
||||||
# type: ignore[call-args]
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user