summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qlowenergyservice.cpp
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-09-08 11:26:07 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-09-08 14:40:34 +0200
commit381604c616a95c051dbf0e4d881fc98fbaa54b35 (patch)
tree266c022a8afa82a7ca391b726a3303903238d17d /src/bluetooth/qlowenergyservice.cpp
parent877420119f320136f72e70c456b504c5f8af24f8 (diff)
Add support for long descriptor value writes
Use the combination of prepare/execute commands to implement writing of descriptor values which are longer than ATT MTU size. Long characteristic writes are already implemented and the related code was adopted to cater for descriptor writes. At the same time we remove related TODO's from the code base. Last but not least ensure that writing of a descriptor with the same value as the pre-existing value is possible. This restriction is not helpful as some BTLE devices use writing of values as trigger for internal events and notifications. This was encountered on a test device when implementing the long write support. Change-Id: If765dc9393239dbbd1bb6a9bc942287b28d65cd6 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Diffstat (limited to 'src/bluetooth/qlowenergyservice.cpp')
-rw-r--r--src/bluetooth/qlowenergyservice.cpp4
1 files changed, 0 insertions, 4 deletions
diff --git a/src/bluetooth/qlowenergyservice.cpp b/src/bluetooth/qlowenergyservice.cpp
index f52f2dc3..e9da7941 100644
--- a/src/bluetooth/qlowenergyservice.cpp
+++ b/src/bluetooth/qlowenergyservice.cpp
@@ -562,15 +562,11 @@ bool QLowEnergyService::contains(const QLowEnergyDescriptor &descriptor) const
void QLowEnergyService::writeDescriptor(const QLowEnergyDescriptor &descriptor,
const QByteArray &newValue)
{
- //TODO not all descriptors are writable (how to deal with write errors)
Q_D(QLowEnergyService);
if (!contains(descriptor))
return;
- if (descriptor.value() == newValue)
- return;
-
if (state() != ServiceDiscovered || !d->controller) {
d->setError(QLowEnergyService::OperationError);
return;