diff options
author | Alex Blasche <alexander.blasche@digia.com> | 2014-09-08 11:26:07 +0200 |
---|---|---|
committer | Alex Blasche <alexander.blasche@digia.com> | 2014-09-08 14:40:34 +0200 |
commit | 381604c616a95c051dbf0e4d881fc98fbaa54b35 (patch) | |
tree | 266c022a8afa82a7ca391b726a3303903238d17d /src/bluetooth/qlowenergyservice.cpp | |
parent | 877420119f320136f72e70c456b504c5f8af24f8 (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.cpp | 4 |
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; |