forked from auracaster/bumble_mirror
Support Interlaced Scan config
This commit is contained in:
@@ -51,6 +51,7 @@ from typing_extensions import Self
|
|||||||
|
|
||||||
from pyee import EventEmitter
|
from pyee import EventEmitter
|
||||||
|
|
||||||
|
from bumble import hci
|
||||||
from .colors import color
|
from .colors import color
|
||||||
from .att import ATT_CID, ATT_DEFAULT_MTU, ATT_PDU
|
from .att import ATT_CID, ATT_DEFAULT_MTU, ATT_PDU
|
||||||
from .gatt import Characteristic, Descriptor, Service
|
from .gatt import Characteristic, Descriptor, Service
|
||||||
@@ -168,6 +169,7 @@ from .hci import (
|
|||||||
OwnAddressType,
|
OwnAddressType,
|
||||||
LeFeature,
|
LeFeature,
|
||||||
LeFeatureMask,
|
LeFeatureMask,
|
||||||
|
LmpFeatureMask,
|
||||||
Phy,
|
Phy,
|
||||||
phy_list_to_bits,
|
phy_list_to_bits,
|
||||||
)
|
)
|
||||||
@@ -1583,6 +1585,7 @@ class DeviceConfiguration:
|
|||||||
classic_ssp_enabled: bool = True
|
classic_ssp_enabled: bool = True
|
||||||
classic_smp_enabled: bool = True
|
classic_smp_enabled: bool = True
|
||||||
classic_accept_any: bool = True
|
classic_accept_any: bool = True
|
||||||
|
classic_interlaced_scan_enabled: bool = True
|
||||||
connectable: bool = True
|
connectable: bool = True
|
||||||
discoverable: bool = True
|
discoverable: bool = True
|
||||||
advertising_data: bytes = bytes(
|
advertising_data: bytes = bytes(
|
||||||
@@ -1895,6 +1898,7 @@ class Device(CompositeEventEmitter):
|
|||||||
self.classic_sc_enabled = config.classic_sc_enabled
|
self.classic_sc_enabled = config.classic_sc_enabled
|
||||||
self.classic_ssp_enabled = config.classic_ssp_enabled
|
self.classic_ssp_enabled = config.classic_ssp_enabled
|
||||||
self.classic_smp_enabled = config.classic_smp_enabled
|
self.classic_smp_enabled = config.classic_smp_enabled
|
||||||
|
self.classic_interlaced_scan_enabled = config.classic_interlaced_scan_enabled
|
||||||
self.discoverable = config.discoverable
|
self.discoverable = config.discoverable
|
||||||
self.connectable = config.connectable
|
self.connectable = config.connectable
|
||||||
self.classic_accept_any = config.classic_accept_any
|
self.classic_accept_any = config.classic_accept_any
|
||||||
@@ -2268,6 +2272,21 @@ class Device(CompositeEventEmitter):
|
|||||||
await self.set_connectable(self.connectable)
|
await self.set_connectable(self.connectable)
|
||||||
await self.set_discoverable(self.discoverable)
|
await self.set_discoverable(self.discoverable)
|
||||||
|
|
||||||
|
if self.classic_interlaced_scan_enabled:
|
||||||
|
if self.host.supports_lmp_features(LmpFeatureMask.INTERLACED_PAGE_SCAN):
|
||||||
|
await self.send_command(
|
||||||
|
hci.HCI_Write_Page_Scan_Type_Command(page_scan_type=1),
|
||||||
|
check_result=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
if self.host.supports_lmp_features(
|
||||||
|
LmpFeatureMask.INTERLACED_INQUIRY_SCAN
|
||||||
|
):
|
||||||
|
await self.send_command(
|
||||||
|
hci.HCI_Write_Inquiry_Scan_Type_Command(scan_type=1),
|
||||||
|
check_result=True,
|
||||||
|
)
|
||||||
|
|
||||||
# Done
|
# Done
|
||||||
self.powered_on = True
|
self.powered_on = True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user