summaryrefslogtreecommitdiffstats
path: root/src/bluetooth/qlowenergyservice.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Make it more obvious that QLowEnergy* classes are Tech previewAlex Blasche2014-09-261-0/+3
| | | | | | | | Although no larger changes are expected the QLowEnergy* classes only provide a limited API commitment. Change-Id: I244403b8818c2b34a97c8d6f2633e4b94646e49b Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Add limitations to the API documentationAlex Blasche2014-09-081-0/+5
| | | | | | | | | These limitations are not expected to be fixed during Qt 5.4 release. They are tracked by QTBUG-41174 & QTBUG-41175 Change-Id: Ibc102e35fe5d459f424a704572ec78436ca9d6d6 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Add support for long descriptor value writesAlex Blasche2014-09-081-4/+0
| | | | | | | | | | | | | | | | | | 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>
* Misc TODO and test fixesAlex Blasche2014-09-081-1/+0
| | | | | | | | | | | | | | 1.) Use updateValueOf*() where possible to channel all value changes through the same gate. 2.) BTLE connects have a much larger timeout when the remote device is not present. The device discovery could still turn up this device due to existing pairing information. 3.) Remove obsolete write long characteristic TODO Change-Id: I5b5815b0c3b99f8c4f87e0f1747ac6f1e274e592 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Improve documentation on how to enable characteristic notificationsAlex Blasche2014-09-021-1/+19
| | | | | Change-Id: I87575fb7b5115a536e12c0a00374cc0e67428706 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add QLES::characteristicWritten() signalAlex Blasche2014-09-021-14/+27
| | | | | | | | | | | | The previous characteristicChanged() signal was emitted when the characteristic was updated due to a notification and when the value was changed using writeCharacteristic(). This meant that it was not possible to distinguish the two use cases. The new signal is only emitted in response to writeCharacteristic() whereas the old signal is only emitted when the peripheral indicates a change. Change-Id: Ie8797090f9463ae0e7fb053a42a79afa6829ca75 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Rename descriptorChanged() to descriptorWritten()Alex Blasche2014-09-021-5/+7
| | | | | | | | | | | | | | | | | This is the part of a change to be able to distinguish characteristic write confirmations from characteristic change notifications. Since descriptors cannot receive notifications they won't have a changed() signal and all existing descriptorChanged() signals become descriptorWritten() signals. The changed() signal is emitted when a value notification is received from the device. The written() signal is emitted when a write request from the API user was successful. Change-Id: Ief2491ead4723eaa1bca65a09a09c34458f33630 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for BTLE write command (BlueZ/Linux)Alex Blasche2014-09-021-13/+58
| | | | | | | | So far, we only supported write requests which reply with write responses. Change-Id: Ibdad36dcf18dec23260f003911b9361cc4ab1e3d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Merge the ServiceNotValidError and OperationError of QLEServiceAlex Blasche2014-08-251-4/+3
| | | | | | | | | | | | The invalid service error is essentially the same as the operation error. The OperationError remains and the ServiceNotValidError is removed. Remove an unrelated but obsolete TODO from the source code. We can read larger than MTU values already. That's what the Blob requests are for. Change-Id: I3ed496194d55cd05f8e9e09680e962a2b7638702 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Update license headers and add new licensesJani Heikkinen2014-08-241-18/+10
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I7a8b8b787fcae9a178794364efdefe1021d10b1b Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Update QLowEnergyCharacteristic class documentation.Alex Blasche2014-08-181-1/+2
| | | | | Change-Id: I9f8a2cc1b833e91f05434e68ad3b5b4757eac786 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Add class documentation for QLowEnergyServiceAlex Blasche2014-08-181-26/+220
| | | | | | | This class is part of the new Bluetooth Low Energy feature in Qt 5.4 Change-Id: If10cac1ac1312cb63137c854a4456bf2d646f630 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
* Implement support for QLowEnergyService include hierarchies.Alex Blasche2014-08-131-4/+16
| | | | | Change-Id: Id11d2dcb06bd04bc1d911d746002fbbc53326ffa Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Detect secondary services and display service type in lowenergyscannerAlex Blasche2014-07-231-1/+13
| | | | | | | | QLowEnergyService::ServiceState was converted to a flag because a primary and secondary service can be included by other services. Change-Id: I425ce8e3f39ee07cccee2763b57a049a624f6178 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Rename QLowEnergyControllerNew -> QLowEnergyControllerAlex Blasche2014-07-231-3/+3
| | | | | | | | Moves the new API into its place and completes the removal of the old API. Change-Id: I10a285e24e288aeb747cb1606574e27a4bf57308 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Remove old GATT APIAlex Blasche2014-07-231-1/+0
| | | | | | | | | The subsequent patches will rename QLowEnergyControllerNew to QLowEnergyController and fix up the documentation fragments which still point to the old API. Change-Id: I084e6b1a85a17f424702018f3ad7047bda35d46a Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Add simpler API to retrieve descriptor/characteristic for certain uuidAlex Blasche2014-07-161-1/+24
| | | | | | | | This new API is mostly syntactic sugar and reduces the amount of code to be written by API users. Change-Id: I51ff1ea706ac97199646d211e39e79c8140ee74b Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Support writing of descriptorsAlex Blasche2014-07-151-0/+35
| | | | | Change-Id: I6c93ed820d8532f5540f23faefc7d82a2798667c Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Add QLowEnergyService::contains(QLowEnergyDescriptor)Alex Blasche2014-07-151-1/+29
| | | | | | | | The patch adds extensive test code for the two contains() functions in QLowEnergyService. Change-Id: I640767b55ccad63e390478ccf14f2b47eb24de7f Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Improve qlowenergyscanner example UIAlex Blasche2014-07-151-1/+3
| | | | | | | | This patch improves the UI. The changes will be validated against a high DPI device at a later stage. Change-Id: Iac15941dd983fb65cc5f3ccf6803c2e95d43c3b4 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Support writing of characteristicAlex Blasche2014-07-021-0/+54
| | | | | | | | Right now we assume that the target characteristic is writable with confirmation response. WriteNoResponse support is still missing. Change-Id: Ie584db43f80a0bf90ec67499772488f509fc3d29 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Read characteristic values on BluezAlex Blasche2014-06-261-3/+11
| | | | | Change-Id: I6427c6dad133ca11852f5295cf37720addec7644 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Send and process ReadByType request/responsesAlex Blasche2014-06-201-3/+9
| | | | | | | | | | | | The characteristic information is not yet incorporated into the internal QLEService data strcutures. This change introduces the concept of a pending request queue to be able to refer to the request's context information when processing the response. Change-Id: Id699856543b0fd3a8471721b48679f917096a99b Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
* Unify the shared data types between controller and service classAlex Blasche2014-06-191-52/+9
| | | | | | | This reduces the overhead and simplifies the data structures Change-Id: Iddf184a6d3de5ac253c889f2223a09f2fe08ce15 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Connect QLowEnergyService and QLowEnergyControllerNew classesAlex Blasche2014-06-191-2/+64
| | | | | | | | | | | Ensures that the two classes have sufficient references to each other. When the controller disconnects the related QLES classes should become invalid. Introduces an error flag for QLowEnergyService. Change-Id: I28aee49e45f93c68c4ac69a5e489c0a3cc33dbf5 Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Push improved API.Alex Blasche2014-06-171-0/+124
QLowEnergyService represents each single service on the remote BTLE device. QLowEnergyControllerNew acts as factory for QLowEnergyService instances. Change-Id: I07c6bfae6d14b73a80e8314f6e8471285fccf069 Reviewed-by: Fabian Bumberger <fbumberger@rim.com>