Source code for bleak.args.bluez

"""
-----------------------
BlueZ backend arguments
-----------------------
"""

from typing import NamedTuple, TypedDict, Union

from bleak.assigned_numbers import AdvertisementDataType


[docs] class BlueZDiscoveryFilters(TypedDict, total=False): """ Dictionary of arguments for the ``org.bluez.Adapter1.SetDiscoveryFilter`` D-Bus method. https://github.com/bluez/bluez/blob/master/doc/org.bluez.Adapter.rst#void-setdiscoveryfilterdict-filter """ UUIDs: list[str] """ Filter by service UUIDs, empty means match _any_ UUID. Normally, the ``service_uuids`` argument of :class:`bleak.BleakScanner` is used instead. """ RSSI: int """ RSSI threshold value. """ Pathloss: int """ Pathloss threshold value. """ Transport: str """ Transport parameter determines the type of scan. This should not be used since it is required to be set to ``"le"``. """ DuplicateData: bool """ Disables duplicate detection of advertisement data. This does not affect the ``Filter Duplicates`` parameter of the ``LE Set Scan Enable`` HCI command to the Bluetooth adapter! Although the default value for BlueZ is ``True``, Bleak sets this to ``False`` by default. """ Discoverable: bool """ Make adapter discoverable while discovering, if the adapter is already discoverable setting this filter won't do anything. """ Pattern: str """ Discover devices where the pattern matches either the prefix of the address or device name which is convenient way to limited the number of device objects created during a discovery. """
[docs] class OrPattern(NamedTuple): """ BlueZ advertisement monitor or-pattern. https://github.com/bluez/bluez/blob/master/doc/org.bluez.AdvertisementMonitor.rst#arrayuint8-uint8-arraybyte-patterns-read-only-optional """ start_position: int ad_data_type: AdvertisementDataType content_of_pattern: bytes
# Windows has a similar structure, so we allow generic tuple for cross-platform compatibility OrPatternLike = Union[OrPattern, tuple[int, AdvertisementDataType, bytes]]
[docs] class BlueZScannerArgs(TypedDict, total=False): """ :class:`BleakScanner` args that are specific to the BlueZ backend. """ adapter: str """ Bluetooth adapter to use for discovery, e.g. "hci0". .. tip:: If you have multiple Bluetooth adapters, they may not always be assigned the same ``hciX`` name across reboots. In that case, you can use udev to look up the name based on other properties like the USB vendor and product ID. .. versionadded:: 3.0 """ filters: BlueZDiscoveryFilters """ Filters to pass to the adapter SetDiscoveryFilter D-Bus method. Only used for active scanning. """ or_patterns: list[OrPatternLike] """ Or patterns to pass to the AdvertisementMonitor1 D-Bus interface. Only used for passive scanning. """
[docs] class BlueZClientArgs(TypedDict, total=False): """ :class:`bleak.BleakClient` args that are specific to the BlueZ backend. .. versionadded:: 3.0 """ adapter: str """ Bluetooth adapter to use for connection, e.g. "hci0". .. tip:: If you have multiple Bluetooth adapters, they may not always be assigned the same ``hciX`` name across reboots. In that case, you can use udev to look up the name based on other properties like the USB vendor and product ID. """
[docs] class BlueZNotifyArgs(TypedDict, total=False): """ :meth:`bleak.BleakClient.start_notify` method args that are specific to the BlueZ backend. .. versionadded:: 2.1 """ use_start_notify: bool """ If false, use the "AcquireNotify" D-Bus method instead of "StartNotify" to subscribe to notifications. The default is to use "StartNotify" for better compatibility with most BLE devices. see :ref:`linux-start-notify` for more details. .. versionchanged:: 3.0.2 The default value was changed from ``False`` to ``True``. """