diff options
| author | Jim Mussared <jim.mussared@gmail.com> | 2019-10-22 12:31:40 +1100 |
|---|---|---|
| committer | Jim Mussared <jim.mussared@gmail.com> | 2019-10-22 13:54:09 +1100 |
| commit | 3e1af5b36fc181231b6c7b7603b21490fb9b22e6 (patch) | |
| tree | ce723e2b30e14728cc49e6e99c70f6839b32467c /examples/bluetooth/ble_advertising.py | |
| parent | 56fc3edf989e1216b1a00d8ab75ebefff33a67e8 (diff) | |
examples/bluetooth: Use UUIDs directly to add services to adv payload.
Diffstat (limited to 'examples/bluetooth/ble_advertising.py')
| -rw-r--r-- | examples/bluetooth/ble_advertising.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/examples/bluetooth/ble_advertising.py b/examples/bluetooth/ble_advertising.py index f52598a62..b57d5e031 100644 --- a/examples/bluetooth/ble_advertising.py +++ b/examples/bluetooth/ble_advertising.py @@ -11,8 +11,14 @@ import struct _ADV_TYPE_FLAGS = const(0x01) _ADV_TYPE_NAME = const(0x09) _ADV_TYPE_UUID16_COMPLETE = const(0x3) +_ADV_TYPE_UUID32_COMPLETE = const(0x5) +_ADV_TYPE_UUID128_COMPLETE = const(0x7) +_ADV_TYPE_UUID16_MORE = const(0x2) +_ADV_TYPE_UUID32_MORE = const(0x4) +_ADV_TYPE_UUID128_MORE = const(0x6) _ADV_TYPE_APPEARANCE = const(0x19) + # Generate a payload to be passed to gap_advertise(adv_data=...). def advertising_payload(limited_disc=False, br_edr=False, name=None, services=None, appearance=0): payload = bytearray() @@ -28,8 +34,13 @@ def advertising_payload(limited_disc=False, br_edr=False, name=None, services=No if services: for uuid in services: - # TODO: Support bluetooth.UUID class. - _append(_ADV_TYPE_UUID16_COMPLETE, struct.pack('<h', uuid)) + b = bytes(uuid) + if len(b) == 2: + _append(_ADV_TYPE_UUID16_COMPLETE, b) + elif len(b) == 4: + _append(_ADV_TYPE_UUID32_COMPLETE, b) + elif len(b) == 16: + _append(_ADV_TYPE_UUID128_COMPLETE, b) # See org.bluetooth.characteristic.gap.appearance.xml _append(_ADV_TYPE_APPEARANCE, struct.pack('<h', appearance)) |
