Source code for bleak.assigned_numbers

"""
Bluetooth Assigned Numbers
--------------------------

This module contains useful assigned numbers from the Bluetooth spec.

See <https://www.bluetooth.com/specifications/assigned-numbers/>.
"""

from enum import IntEnum
from typing import Literal


[docs] class AdvertisementDataType(IntEnum): """ Generic Access Profile advertisement data types. `Source <https://btprodspecificationrefs.blob.core.windows.net/assigned-numbers/Assigned%20Number%20Types/Generic%20Access%20Profile.pdf>`. .. versionadded:: 0.15 """ FLAGS = 0x01 INCOMPLETE_LIST_SERVICE_UUID16 = 0x02 COMPLETE_LIST_SERVICE_UUID16 = 0x03 INCOMPLETE_LIST_SERVICE_UUID32 = 0x04 COMPLETE_LIST_SERVICE_UUID32 = 0x05 INCOMPLETE_LIST_SERVICE_UUID128 = 0x06 COMPLETE_LIST_SERVICE_UUID128 = 0x07 SHORTENED_LOCAL_NAME = 0x08 COMPLETE_LOCAL_NAME = 0x09 TX_POWER_LEVEL = 0x0A CLASS_OF_DEVICE = 0x0D SERVICE_DATA_UUID16 = 0x16 SERVICE_DATA_UUID32 = 0x20 SERVICE_DATA_UUID128 = 0x21 MANUFACTURER_SPECIFIC_DATA = 0xFF
# NOTE: these must match BlueZ name mapping CharacteristicPropertyName = Literal[ "broadcast", "read", "write-without-response", "write", "notify", "indicate", "authenticated-signed-writes", "extended-properties", "reliable-write", "writable-auxiliaries", "encrypt-read", "encrypt-write", # "encrypt-notify" and "encrypt-indicate" are server-only "encrypt-authenticated-read", "encrypt-authenticated-write", # "encrypt-authenticated-notify", "encrypt-authenticated-indicate", # "secure-read", "secure-write", "secure-notify", "secure-indicate" # are server-only "authorize", ] CHARACTERISTIC_PROPERTIES: dict[int, CharacteristicPropertyName] = { 0x1: "broadcast", 0x2: "read", 0x4: "write-without-response", 0x8: "write", 0x10: "notify", 0x20: "indicate", 0x40: "authenticated-signed-writes", 0x80: "extended-properties", 0x100: "reliable-write", 0x200: "writable-auxiliaries", }
[docs] def gatt_char_props_to_strs( props: int, ) -> frozenset[CharacteristicPropertyName]: """ Convert a GATT characteristic properties bitmask to a set of strings. Args: props: The GATT characteristic properties bitmask. Returns: A set of strings representing the GATT characteristic properties. """ return frozenset( CHARACTERISTIC_PROPERTIES[i] for i in (1 << n for n in range(16)) if props & i )