Created
September 2, 2019 07:07
-
-
Save andrewleech/49c2a54313f57e544dc1b3a3360d6dc3 to your computer and use it in GitHub Desktop.
ble advertising data example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BLE_GAP_AD_TYPE_FLAGS = 0x01 # Flags for discoverability. | |
BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE = 0x02 # Partial list of 16 bit service UUIDs. | |
BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE = 0x03 # Complete list of 16 bit service UUIDs. | |
BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE = 0x04 # Partial list of 32 bit service UUIDs. | |
BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE = 0x05 # Complete list of 32 bit service UUIDs. | |
BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE = 0x06 # Partial list of 128 bit service UUIDs. | |
BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE = 0x07 # Complete list of 128 bit service UUIDs. | |
BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME = 0x08 # Short local device name. | |
BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME = 0x09 # Complete local device name. | |
BLE_GAP_AD_TYPE_TX_POWER_LEVEL = 0x0A # Transmit power level. | |
BLE_GAP_AD_TYPE_CLASS_OF_DEVICE = 0x0D # Class of device. | |
BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C = 0x0E # Simple Pairing Hash C. | |
BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R = 0x0F # Simple Pairing Randomizer R. | |
BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE = 0x10 # Security Manager TK Value. | |
BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS = 0x11 # Security Manager Out Of Band Flags. | |
BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE = 0x12 # Slave Connection Interval Range. | |
BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT = 0x14 # List of 16-bit Service Solicitation UUIDs. | |
BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT = 0x15 # List of 128-bit Service Solicitation UUIDs. | |
BLE_GAP_AD_TYPE_SERVICE_DATA = 0x16 # Service Data - 16-bit UUID. | |
BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS = 0x17 # Public Target Address. | |
BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS = 0x18 # Random Target Address. | |
BLE_GAP_AD_TYPE_APPEARANCE = 0x19 # Appearance. | |
BLE_GAP_AD_TYPE_ADVERTISING_INTERVAL = 0x1A # Advertising Interval. | |
BLE_GAP_AD_TYPE_LE_BLUETOOTH_DEVICE_ADDRESS = 0x1B # LE Bluetooth Device Address. | |
BLE_GAP_AD_TYPE_LE_ROLE = 0x1C # LE Role. | |
BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C256 = 0x1D # Simple Pairing Hash C-256. | |
BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R256 = 0x1E # Simple Pairing Randomizer R-256. | |
BLE_GAP_AD_TYPE_SERVICE_DATA_32BIT_UUID = 0x20 # Service Data - 32-bit UUID. | |
BLE_GAP_AD_TYPE_SERVICE_DATA_128BIT_UUID = 0x21 # Service Data - 128-bit UUID. | |
BLE_GAP_AD_TYPE_LESC_CONFIRMATION_VALUE = 0x22 # LE Secure Connections Confirmation Value | |
BLE_GAP_AD_TYPE_LESC_RANDOM_VALUE = 0x23 # LE Secure Connections Random Value | |
BLE_GAP_AD_TYPE_URI = 0x24 # URI | |
BLE_GAP_AD_TYPE_3D_INFORMATION_DATA = 0x3D # 3D Information Data. | |
BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA = 0xFF # Manufacturer Specific Data. | |
BLE_ADV_AD_TYPE_FIELD_SIZE = 1 | |
BLE_ADV_LENGTH_FIELD_SIZE = 1 | |
BLE_AD_TYPE_FLAGS_DATA_SIZE = 1 | |
BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE = (0x01) # LE Limited Discoverable Mode. | |
BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE = (0x02) # LE General Discoverable Mode. | |
BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED = (0x04) # BR/EDR not supported. | |
BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER = (0x08) # Simultaneous LE and BR/EDR, Controller. | |
BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST = (0x10) # Simultaneous LE and BR/EDR, Host. | |
BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE = (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) # LE Limited Discoverable Mode, BR/EDR not supported. | |
BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE = (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED) # LE General Discoverable Mode, BR/EDR not supported. | |
def adv_data(device_name=None): | |
data = [] | |
if device_name: | |
data.append(BLE_ADV_AD_TYPE_FIELD_SIZE+len(device_name)) | |
data.append(BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME) | |
data.extend((ord(c) for c in device_name)) | |
data.append(BLE_ADV_AD_TYPE_FIELD_SIZE + BLE_AD_TYPE_FLAGS_DATA_SIZE) | |
data.append(BLE_GAP_AD_TYPE_FLAGS) | |
data.append(BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE) | |
return bytearray(data) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment