summaryrefslogtreecommitdiffstats
path: root/src/bluetooth
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-09 15:26:50 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-08-09 15:26:50 +0200
commit7d75db90cc22ca02a30b1c15e7c684ff0b4f6d5f (patch)
treed1386f720c4fe985c05ce11b6e55dcd54c5af86f /src/bluetooth
parent03dec8534776881d6a0f03f3e468efe5e805de6a (diff)
parentadfed1222fbe73267f4a3be149d9acff158ddfa1 (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Diffstat (limited to 'src/bluetooth')
-rw-r--r--src/bluetooth/qlowenergycontroller_bluez.cpp5
-rw-r--r--src/bluetooth/qlowenergycontroller_p.h2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp
index bb490ba9..8906eb06 100644
--- a/src/bluetooth/qlowenergycontroller_bluez.cpp
+++ b/src/bluetooth/qlowenergycontroller_bluez.cpp
@@ -478,7 +478,7 @@ QLowEnergyHandle parseReadByTypeCharDiscovery(
QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]);
charData->properties =
- (QLowEnergyCharacteristic::PropertyTypes)data[2];
+ (QLowEnergyCharacteristic::PropertyTypes)(data[2] & 0xff);
charData->valueHandle = bt_get_le16(&data[3]);
if (elementLength == 7) // 16 bit uuid
@@ -672,6 +672,7 @@ void QLowEnergyControllerPrivate::processReply(
lastHandle = parseReadByTypeCharDiscovery(
&characteristic, &data[offset], elementLength);
p->characteristicList[lastHandle] = characteristic;
+ offset += elementLength;
} else if (attributeType == GATT_INCLUDED_SERVICE) {
QList<QBluetoothUuid> includedServices;
lastHandle = parseReadByTypeIncludeDiscovery(
@@ -1222,7 +1223,7 @@ void QLowEnergyControllerPrivate::readServiceValues(
starting the next read request.
*/
void QLowEnergyControllerPrivate::readServiceValuesByOffset(
- quint16 handleData, quint16 offset, bool isLastValue)
+ uint handleData, quint16 offset, bool isLastValue)
{
const QLowEnergyHandle charHandle = (handleData & 0xffff);
const QLowEnergyHandle descriptorHandle = ((handleData >> 16) & 0xffff);
diff --git a/src/bluetooth/qlowenergycontroller_p.h b/src/bluetooth/qlowenergycontroller_p.h
index bb26a538..810f0ff4 100644
--- a/src/bluetooth/qlowenergycontroller_p.h
+++ b/src/bluetooth/qlowenergycontroller_p.h
@@ -173,7 +173,7 @@ private:
void sendReadValueRequest(QLowEnergyHandle attributeHandle, bool isDescriptor);
void readServiceValues(const QBluetoothUuid &service,
bool readCharacteristics);
- void readServiceValuesByOffset(quint16 handleData, quint16 offset,
+ void readServiceValuesByOffset(uint handleData, quint16 offset,
bool isLastValue);
void discoverServiceDescriptors(const QBluetoothUuid &serviceUuid);