简体   繁体   中英

How to make sense of the Manufacturer Data retrieved from bluez + pydbus discovery?

I have written a simple python script with pydbus and bluez and run it on raspberry pi to discover devices and their information in proximity. For some issues I cannot provide the script here.

After the discovery I would be able to collect a list of device and each of them looks like the following:

{'Address': '66:FB:0B:FC:82:57', 'AddressType': 'random', 'Alias': '66-FB-0B-FC-82-57', 'Paired': False, 'Trusted': False, 'Blocked': False, 'LegacyPairing': False, 'RSSI': -94, 'Connected': False, 'UUIDs':[], 'Adapter': '/org/bluez/hci0', 'ManufacturerData': {76: [16, 5, 7, 24, 186, 175, 161]}, 'TxPower': 12, 'ServicesResolved': False}

I would like to know how to make sense of the value from the key 'ManufacturerData'? I currently know that the first number represents the company identifier, in this case "76" means it is a device comes from the Apple Inc. But I have no clue on how to make sense of the latter ones [16, 5, 7, 24, 186, 175, 161].

Is there an official specification/doc that provides guide on decrypting these numbers?

Many Thanks

Manufacturer Specific Data is used to include custom data in advertisements. The data is identified by a documented company identifier but the structure of the data in the data field is freely definable by the manufacturer.

Manufacturer data is one of the fields that have been used for BLE beacons with some of the more popular formats being documented in the following "cheat sheet": https://twitter.com/josryke/status/763006284052463617

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM