------=_Part_11290822_464786907.1712915498403 MIME-Version: 1.0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi there,
 
I am trying to read the BLE service data from QBluetoothDevice= Info via the serviceData() method, but I believe= I have discovered a bug.
 
serviceData() -> Dict[= QBluetoothUuid, QByteArray]

The function returns an empty dict= ionary for discovered devices that have no service data available (correct= behaviour). However, when the device does have service d= ata, a TypeError is raised.
 
TypeError: unhash= able type: 'QBluetoothUuid'
 
I have attached a min= imal reproducible example that scans for all Bluetooth Low Energy devices = and tries to read the service data using serviceData(). Obviously to repro= duce this error you will need to be in range of some BLE devices that have= non-empty service data.
 
I am using Python 3.1= 0.11 and PyQt 6.6.1.
 
= A work around is to use the serviceUuids() method, then use = serviceData(uuid) for each UUID. However as per the documentation this onl= y return the "first" item in service data, not all of it.
 
Any support would be = greatly appreciated.
 
Many thanks,
 
Ben
------=_Part_11290822_464786907.1712915498403 Content-Type: text/x-python; charset=UTF-8; name=ble_service_data_bug.py Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=ble_service_data_bug.py X-Part-Id: d8cee14fd0644017bd619de0608b3bd8 IiIiDQoiIiINCmltcG9ydCBzeXMNCg0KZnJvbSBQeVF0Ni5RdEJsdWV0b290aCBpbXBvcnQgUUJs dWV0b290aERldmljZURpc2NvdmVyeUFnZW50LCBRQmx1ZXRvb3RoRGV2aWNlSW5mbw0KZnJvbSBQ eVF0Ni5RdFdpZGdldHMgaW1wb3J0IFFBcHBsaWNhdGlvbiwgUU1haW5XaW5kb3cNCg0KDQpjbGFz cyBNYWluKFFNYWluV2luZG93KToNCiAgICBkZWYgX19pbml0X18oc2VsZik6DQogICAgICAgIFFN YWluV2luZG93Ll9faW5pdF9fKHNlbGYpDQogICAgICAgIHNlbGYuc2hvdygpDQoNCiAgICAgICAg c2VsZi5hZ2VudCA9IFFCbHVldG9vdGhEZXZpY2VEaXNjb3ZlcnlBZ2VudCgpDQogICAgICAgIHNl bGYuYWdlbnQuZGV2aWNlRGlzY292ZXJlZC5jb25uZWN0KHNlbGYub25fZGV2aWNlX2Rpc2NvdmVy ZWQpDQogICAgICAgIHNlbGYuYWdlbnQuc3RhcnQoUUJsdWV0b290aERldmljZURpc2NvdmVyeUFn ZW50LkRpc2NvdmVyeU1ldGhvZC5Mb3dFbmVyZ3lNZXRob2QpDQoNCiAgICBkZWYgb25fZGV2aWNl X2Rpc2NvdmVyZWQoc2VsZiwgZGV2aWNlOiBRQmx1ZXRvb3RoRGV2aWNlSW5mbykgLT4gTm9uZToN CiAgICAgICAgIyBjaGVjayBpZiBkZXZpY2UgaXMgbG93LWVuZXJneQ0KICAgICAgICBpZiAoDQog ICAgICAgICAgICBkZXZpY2UuY29yZUNvbmZpZ3VyYXRpb25zKCkNCiAgICAgICAgICAgIGFuZCBR Qmx1ZXRvb3RoRGV2aWNlSW5mby5Db3JlQ29uZmlndXJhdGlvbi5Mb3dFbmVyZ3lDb3JlQ29uZmln dXJhdGlvbg0KICAgICAgICApOg0KICAgICAgICAgICAgc2VydmljZV9kYXRhID0gZGV2aWNlLnNl cnZpY2VEYXRhKCkNCiAgICAgICAgICAgIHByaW50KCJTZXJ2aWNlIERhdGE6Iiwgc2VydmljZV9k YXRhKQ0KDQoNCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6DQogICAgYXBwID0gUUFwcGxpY2F0 aW9uKHN5cy5hcmd2KQ0KICAgIG1haW4gPSBNYWluKCkNCiAgICBzeXMuZXhpdChhcHAuZXhlYygp KQ0K ------=_Part_11290822_464786907.1712915498403--