| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This disables the gatttool based controller as well. While it might
compile on older systems they are likely to not have a
gatttool and why would a Bluez version without BTLE symbols ever
work anyway.
Change-Id: I761e482d3dd1e99008c5d170053e19a1a3a51e6c
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
|
|
|
|
|
|
| |
This improves conversion performance.
Change-Id: Ib78b2a6e24d0f44723be0bfb63b6aafc965188a6
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
|
|
|
|
| |
Change-Id: I83d88412319c34cf6c8cf0c6e841458226c9d073
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
|
|
|
|
|
| |
Change-Id: Iaae61b6a872124d17855d80d106f2b10996501de
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Bluez implementation is the only working implementation for BTLE.
However the current approach of using gatttool via QProcess is not
viable going forward. The tool output is not standardized, the Bluez
developers don't recommend it for anything but debugging and some
Linux distros don't even ship it. Since Bluez does not have any high
level API for BTLE GATT we have to use L2CP sockets to communicate
with the GATT server of the peer device.
The current QLowEnergyController API needs a lot of API changes
going forward as some elements cause problems in the long term.
In summary we need a new internal implementation and a new API for
QLowEnergyController. It is far too much effort to change both elements
at the same time. Hence QLowEnergyControllerNew was added with first
simple API elements. Ultimately it should replace the existing class.
For now the old API stays as is for reference purposes. All other
BTLE classes work just fine for now.
Last but not least a unit test was added. The test assumes the existence
of the TI Sensor tag and verifies all its known characteristics
and descriptors. Ultimately it will help to verify the proper
detection of all details. Right now the test detects all services
and characteristics but not all descriptors.
Change-Id: I6ff1a16da1604be57f5564ae99919ffe7187d02e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ATT protocol defines them as int and just because Bluez5 happens to parse
them from command line doesn't mean all other platforms have to
deal with strings too. This avoids a lot of string to int conversions
and vice versa.
Handles should probably fit into short as well but this needs further
verification. For we play safe.
Change-Id: If75ca539b4b2956b9a65ee2a9ef738b0fe3aa2ee
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
| |
Also, this patch fixes the uninitialised m_type member in the
QLowEnergyDescriptorInfo private implementation
Change-Id: I6736d5f38738490bc4f0f53908f925361f1843bd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
| |
It seems they were added but never enabled. Due to recent API changes
they didn't even compile.
Change-Id: Ia2d8f6c87f5f02728b1e6451e828ff88bb4527d0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
| |
Function name was slightly adjusted to reflect the fact that it's a
flag.
Change-Id: I9c1a2fe64b93c7ae7bd826d856f8b87f985d7473
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1.) Rename QLowEnergyCharacteristicInfo::Property to
QLowEnergyCharacteristicInfo::PropertyType
2.) Rename permissions() to properties()
3.) Return PropertyTypes as return value for
permissions()/properties()
Change-Id: I5c4037876047354fd691cadc54d3ac6098db4522
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
| |
Change-Id: Id1a56b0ed050fd9cebee8738351e560b442d748f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
- Sort enum values based on their hex values
- Add QBluetoothUuid::characteristicToString(CharacteristicType)
- Rename QBluetoothUuid::CharacteristicDescriptor -> DescriptorType
- Add a couple of missing \since tags
Change-Id: I9724eb2f43c6978f07420bf6ec4c8557ad9efbaf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
| |
There are a lot of unused internal variables and helper functions which
are left-overs from the last code rearrangement.
Change-Id: I48d6e6aa015dea628d2467141ea1e44814d228c0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. QLowEnergyDescriptorInfo::type() added
2. QLowEnergyDescriptorInfo ctor signature modified
3. QBluetoothUuid::DescriptorId enum renamed
4. QLowEnergyDescriptorInfo::uuid() changed its meaning
5. QBluetoothUuid(CharacteristicDescriptor) ctor added
Starting from this change QNX is going to be broken. In particular
point 2 cause breaks or bug. The focus is on santizing the API at
this point in time.
Change-Id: I7838f550410b6a0f94026b68ecf0751533eba3cb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is caused when the BTLE service has read-only characteristics
only. This prevented the controller from ever emitting the connected()
signal for the particular service.
The patch further improves the comments and debugging capabilities
of QLowEnergyController on Linux/Bluez4.
Change-Id: Ic8f92e8fce964ac562ca4a01de06902f2da5d437
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
|
|
|
|
| |
Change-Id: I83a99666b8b16ae80ad7712785ee294cb340add1
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/bluetooth/bluetooth.pro
src/bluetooth/bluez/bluez.pri
src/bluetooth/doc/src/bluetooth-index.qdoc
src/bluetooth/qbluetoothdevicediscoveryagent_bluez.cpp
src/bluetooth/qbluetoothdeviceinfo.cpp
src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp
src/bluetooth/qbluetoothservicediscoveryagent_p.h
src/bluetooth/qbluetoothservicediscoveryagent_qnx.cpp
Change-Id: I88b22c51a4ee95b067ef8d2b2fddb5cbff4566f8
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-32085
Change-Id: I9fe63f3291a10a195d460720cd1821913a63b25b
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QtBluetooth][General] Added
QBluetoothUuid::protocolToString(QBluetoothUuid::ProtocolUuid) which
returns a human-readable string for the given protocol uuid.
Change-Id: I26b9a1b47b1254ac8a49091c2854d1cfab0c66d6
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bluez5 docs recommend to use the Alias rather than the Name property.
This ensures that a potentially user chosen device name is used rather
than the actual device name. If no Alias is set the property
automatically reverts back to the Name value.
Change-Id: If2b397cf49df6dc78bb205c1136b8d1dd5e7c02f
Reviewed-by: Bea Lam <bea.lam@jollamobile.com>
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| | |
They can be found in /usr/include
Change-Id: I734fd72c52d2b78aca6388d79e59c973e8d99a73
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This was triggered when the stop() call was made while the SDP thread
was talking to the SDP server.
Change-Id: If6624dce21ca4a099d5beae064685b6b3a907989
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| | |
Change-Id: I00701e9103a6acfdfc2697949280f8a7de8bcdfe
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QtBluezDiscoveryManager manges the global discovery session for all Qt
classes. This was introduced when implementing the device discovery.
QBluetoothLocalDevice was not using this mechanism yet which could lead
to discovery sessions being killed while still required.
Change-Id: I4229cb2aa34df35cf4d0650c828c8cfa11040d4a
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
This avoids unnecessary code duplication.
Change-Id: I9e49cf3c5e524cf7b3ef811b4640d5248c2ba1b0
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the discovery process was started by QBluetoothDeviceDiscoveryAgent
and Bluez wasn't already in discovery mode then the RSSI values
are 0. The retrieval of RSSI data takes a bit more time.
To find a compromise between speedy return of device scan information
and the delayed RSSI information we continue to monitor the device scan
and update RSSI information as the values are propagated by Bluez.
However the deviceDiscovered() signal is not emitted again after an
update. Only re-calling discoveredDevices() will return the most
up-to-date RSSI values.
Task-number: QTBUG-32085
Change-Id: Icb6566d51503a6004fa3f25c499fc7f941bd7fee
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
At the same time we shift the ServiceClassUUID to service name mapping
to QBluetoothUuid. It was used by Android and now Bluez 5 uses it too.
Task-number: QTBUG-32085
Change-Id: I9f2d4dc4e2997683485f2ba7aaefb646cb72fb75
Reviewed-by: Aaron McCarthy <mccarthy.aaron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This operator is new in Qt 5.4 and therefore can be changed at this
stage.
Change-Id: I679707515fd7053aae6077460f99921c18717578
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The only exception are generated files and cases where
QLatin1String based overloads are used (e.g. during QString comparisons)
Change-Id: I6f36789fb8acb3b30c1dc1f8a920b118a979d74f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-32085
Change-Id: I31ae0dc9f0d09f3979797eb95eb87ed7bd181ae3
Reviewed-by: Oleg Shparber <trollixx@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/bluetooth/qbluetoothlocaldevice_bluez.cpp
src/bluetooth/qbluetoothserver_p.h
src/bluetooth/qbluetoothsocket_qnx.cpp
Change-Id: I08792f10155f9b4e6af30066b70e24b48985ddd6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is required for static builds.
Change-Id: Ia6861685ff2845dc6c3998079cf10019ea9fbdd7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
With new OS 10.3 some PPS object paths are changed. Therefore BB C API
was used intead of PPS communication in some parts of QtConnectivity.
The BB C API is introduced for OS 10.2.1 and newer.
Change-Id: I94a21ed61a49a94dd2101990df4801a6925a3ce6
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
[ChangeLog][QtBluetooth] QDebug helper for QBluetoothUuid became
aware of QT_NO_DEBUG_STREAM define.
Change-Id: I20941c32560bfc6beaa8f4f465799af987d0b0cd
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iee11fdfe3b57fbe94d7e3362454851867d25e98a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a partial revert of 9615e7fbf439d0b2b9476ea7cb15ad145e675583.
The CI does not test a combined developer-build and example
configuration. Ensuring the snippet compiles is mostly a private test.
This patch drops the additional example condition to provide an
increased chance of compiling the snippets on the CI.
So far the condition never triggered and hence the CI couldn't ensure
a compiling snippet.
Task-number: QTBUG-37638
Change-Id: I8d815c6ddeaa2955c2824697a937d3b08729b979
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I1d76c50d84a0c33e56c2e197e5eb528b00082949
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | |\
| | | |
| | | |
| | | | |
Change-Id: Ic86710cdf2550f5cf70c81af3f351d6712cd1b0e
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The discovery of services happens in a sequentiali per-device order.
Once the first device's services were found, the results are processed
and the discovery is started on the next device. Unfortunately
if the search didn't create any results due to the remote device
refusing the SDP discovery or because the given remote Bluetooth
address was not valid, the discovery agent didn't continue with
the next device.
Now the error handling ensures that the discovery process is continued
with the next device (if there is any).
Task-number: QTBUG-38362
Change-Id: Ie27bbc5327eadc4bcc31b589227c51dc4fa2c7c1
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
1.) If we find a custom and SPP uuid we create only on service
using custom uuid as service uuid and SPP as service class uuid.
THis is the recommended way. Any remote service should really
advertise a custom uuid. Unfortunately this is not always the
case on some embedded devices. Hence we need to cover the cases
below.
2.) If we find a custom uuid only we create a service which uses
the custom uuid as service uuid but we do not set a service class.
3.) If we find a SPP uuid only, we create a service which uses SPP
as service uuid and as service class uuid. This is no problem as
Android's connectToRfcommService() call explicitly permits an SPP
uuid as connection parameter.
4.) We find none of the above the problem doesn't exist in the
first place and no service was found.
Task-number: QTBUG-38140
Change-Id: I2e9080f65b98db23782264ef9e62a410ab9f91f1
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The crash was caused by the listen() always returning -1 because the
condition m_service->socketProtocol() == UnknownProtocol was always true.
Change-Id: I13725bb13db3e7000e01a80601fdcb3380710798
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ConnectionChange signals were never emitted for
remote devices which already existed at class instanciation time.
At the same time this patch removes the delayed creation of the
connectedDevices set. This simplifies the code and the caching did
not save much effort.
Task-number: QTBUG-38402
Change-Id: Ic871f919435c0d42ce2d79fd54f0da693816010a
Reviewed-by: Oleg Shparber <trollixx@gmail.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I8b975a2f55833c58479edac5d62809c1e83ea417
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Ensure a native socket is obtained after QBluetoothSocket has been closed.
[ChangeLog][QtBluetooth][QBluetoothSocket] Fixed a crash on reconnect.
Change-Id: I9f470d23366250dc20ad3305ddec16300c1ad8ec
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When _q_readNotify() is called and no data is available (e.g. in case
of timeout), then the internal buffer grows indefinitely, causing a
one time corruption of the following good data.
Change-Id: I75929382db73953bbccdd86b9ae248329df879fa
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes duplicate switching to the unconnected state in case
the disconnect() signal is used to reconnect.
[ChangeLog][QtBluetooth][QBluetoothSocket] Fixed duplicate emission
of unconnected state in the reconnection case.
Change-Id: If449420d936c96e62518fc408e6a1e35b79988a8
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Convention is that calling QBluetoothServiceDiscoveryAgent
maintains an internal list of discovered services. When start() is called
already discovered services are kept unless clear() was called. The Bluez
code never checked which services were already discovered by previous
discovery runs. This patch fixes this problem.
Change-Id: I3987d6ea65ea41aefc9726acc31f6abaa478c72c
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The model always resets the model content when starting a new service
discovery. However QBluetoothServiceDiscovery doesn't do that. It adds
newly discovered services and maintains the existing services. Since
the model updates its content based on the serviceDiscovered signal,
every second run created an empty list or only ever added services.
Change-Id: I9c1d29562b9178678ab42bee98d5d1e3d0c4367f
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This replaces an earlier Android specific solution against
a more generic solution.
Task-number: QTBUG-37638
Change-Id: I472ea48567e872c658094a5576b9260bf2d02c89
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The pairing signals are not yet implemented. For details
see QTBUG-38401.
Task-number: QTBUG-32085
Change-Id: I2b4e9a97b880801ebbffe367a8ab98320dd7ef2f
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|