Skip to content

Commit e186dd5

Browse files
committed
L2CAP: Enhanced Retransmission Mode
1 parent 34e0f29 commit e186dd5

File tree

4 files changed

+616
-49
lines changed

4 files changed

+616
-49
lines changed

bumble/device.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2072,6 +2072,10 @@ class DeviceConfiguration:
20722072
io_capability: int = pairing.PairingDelegate.IoCapability.NO_OUTPUT_NO_INPUT
20732073
gap_service_enabled: bool = True
20742074
gatt_service_enabled: bool = True
2075+
enhanced_retransmission_supported: bool = False
2076+
l2cap_extended_features: Sequence[int] = (
2077+
l2cap.L2CAP_Information_Request.ExtendedFeatures.FIXED_CHANNELS,
2078+
)
20752079

20762080
def __post_init__(self) -> None:
20772081
self.gatt_services: list[dict[str, Any]] = []
@@ -2343,14 +2347,18 @@ def __init__(
23432347
) -> None:
23442348
super().__init__()
23452349

2350+
# Use the initial config or a default
2351+
config = config or DeviceConfiguration()
2352+
self.config = config
2353+
23462354
self._host = None
23472355
self.powered_on = False
23482356
self.auto_restart_inquiry = True
23492357
self.command_timeout = 10 # seconds
23502358
self.gatt_server = gatt_server.Server(self)
23512359
self.sdp_server = sdp.Server(self)
23522360
self.l2cap_channel_manager = l2cap.ChannelManager(
2353-
[l2cap.L2CAP_Information_Request.EXTENDED_FEATURE_FIXED_CHANNELS]
2361+
config.l2cap_extended_features
23542362
)
23552363
self.advertisement_accumulators = {} # Accumulators, by address
23562364
self.periodic_advertising_syncs = []
@@ -2385,10 +2393,6 @@ def __init__(
23852393
# Own address type cache
23862394
self.connect_own_address_type = None
23872395

2388-
# Use the initial config or a default
2389-
config = config or DeviceConfiguration()
2390-
self.config = config
2391-
23922396
self.name = config.name
23932397
self.public_address = hci.Address.ANY
23942398
self.random_address = config.address

0 commit comments

Comments
 (0)