------=_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--