Add support for extended advertising via Rust-only API

* Extended functionality is gated on an "unstable" feature
* Designed for very simple use and minimal interferance with existing legacy implementation
* Intended to be temporary, until bumble can integrate extended advertising into its core functionality
* Dropped `HciCommandWrapper` in favor of using bumble's `HCI_Command.from_bytes` for converting from PDL into bumble implementation
* Refactored Address and Device constructors to better match what the python constructors expect
This commit is contained in:
Gabriel White-Vega
2023-10-10 11:46:59 -04:00
parent a1b55b94e0
commit 1051648ffb
16 changed files with 510 additions and 163 deletions

View File

@@ -1000,12 +1000,16 @@ class Controller:
'''
See Bluetooth spec Vol 4, Part E - 7.8.10 LE Set Scan Parameters Command
'''
self.le_scan_type = command.le_scan_type
self.le_scan_interval = command.le_scan_interval
self.le_scan_window = command.le_scan_window
self.le_scan_own_address_type = command.own_address_type
self.le_scanning_filter_policy = command.scanning_filter_policy
return bytes([HCI_SUCCESS])
ret = HCI_SUCCESS
if not self.le_scan_enable:
self.le_scan_type = command.le_scan_type
self.le_scan_interval = command.le_scan_interval
self.le_scan_window = command.le_scan_window
self.le_scan_own_address_type = command.own_address_type
self.le_scanning_filter_policy = command.scanning_filter_policy
else:
ret = HCI_COMMAND_DISALLOWED_ERROR
return bytes([ret])
def on_hci_le_set_scan_enable_command(self, command):
'''