| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Task-number: QTBUG-70162
Change-Id: I4556cbf1965121b042a55e3e36e24383f8fa8dc9
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-69700
Change-Id: Ib8082156f81949926380e4e296d91c8dfc01b231
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Having d_ptr as a shared pointer in a copyable q-object, and a q_ptr
in this d-object was probably the dumbest idea ever, not sure how
this happened at all.
Task-number: QTBUG-69857
Change-Id: I845394604d42879ca36f0b376ba94819e223df77
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I0407e6c1d2074e7102763002d94fc7170f5926d4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
by checking the service passed to QBluetoothSocket::connectToService,
instead of the previous protocol of the socket
fixes up 21e7cb1bafdfc06c263e10067d02f9b103ff660f
Change-Id: I2aa30cdd618f834e718508c5f492fc211d328565
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-67958
Change-Id: I26118eeee95bebd6f28364b0eea69e8ed2e6b6b2
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only happens with Bluez 5.42 or later versions as the DBus based GATT
central client is used. The peripheral disconnects in the middle of a char
or descriptor write request. The disconnect triggers the cleanup of all
internal states. The write char/descriptor dbus request returns after the
disconnect and executes in the context of an already reset
QLowEnergyController instance.
The fix ensures that the call back code does not make the assumption
of operating with a connected peripheral. In fact the code had the
relevant asserts already.
[ChangeLog][QtBluetooth][PLatform Specific Changes] Fixed crash in
DBus gatt central backend (BlueZ5) caused by device disconnecting
and pending dbus call watcher returning later after disconnect.
Task-number: QTBUG-68890
Change-Id: Iad9b8a1cfc8d916d49fd9b71b2d8f03b9c90639b
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-67958
Change-Id: I03dbf411d6a1b2a710d13c1eb5f1f75d594d2a9a
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: André Klitzing <aklitzing@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
This can allegedly happen when executing write with notification.
While never observed so far, can easily be predicted/emulated,
resulting in QLEC stuck in queued write/read requests and not
progressing any futher.
Task-number: QTBUG-68707
Change-Id: I3321257bb84a83a8ea25f9ae4e8acbdb95568cfa
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-68933
Change-Id: I51d80cbc5ab1b3c8938e5004e399a9df4e7af5e0
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the desired remote peripheral is already connected, the next call to
connectToDevice() does not succeed. The code path to handle this situation
already exists it was forgotten to emit the relevant connected() signal.
This patch fixes the problem.
The problem only exists on Bluez 5.42+ platforms which use the DBus
central implementation.
[ChangeLog][Platform Specific Changes][Linux] Fixed missing emission of
QLEController::connected() upon reconnect to already connected device.
This affected platforms with Bluez 5.42+ only.
Task-number: QTBUG-68911
Change-Id: Ife2f3b41c33a142d6627e433cb3b141ce9b1ff8a
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While we're discovering service's details (included services,
characteristics, descriptors, etc.) some operations can result
in timeout, without CoreBluetooth reporting any error back.
To cope with this we need an additional logic - all such
operations must be guarded with a 'watchdog' timer (OSXBTGCDTimer).
Fortunately enough, we can re-use CBPeripheralDelegate's callbacks
to handle these timeouts. As a micro-bonus - a couple of bugs
in callbacks: whenever we are in service details discovery,
after having some error we have to finish with discovery anyway,
not to stick in 'discovering' state forever.
Task-number: QTBUG-68422
Change-Id: I13a377ebec3983ac48a33d6b89b67223d5ec412f
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
And remove some essentially duplicated code.
Task-number: QTBUG-68422
Change-Id: I677581ebb0998d64a0081f568479efb7e8156474
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QtBluetooth is using its own dispatch queue in CoreBluetooth
back-end - this is where CoreBluetooth is executing all callbacks
we're providing in delegate classes. Some operations like service
discovery/characteristic or descriptor read(s) amd write(s) e.t.c.
may sometimes fail to finish - no value read, no error reported
(so delegate's method - callback - is never called). To deal with
this we introduce the class OSXBTGCDTimer and GCDTimerDelegate
protocol; GCDTimer periodically inserts blocks into the serial
LE queue and checks for timeouts upon their execution.
Task-number: QTBUG-68422
Change-Id: Ic17bf91d4223ad1ffc7b9808da36c902a4158227
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While the central role implementation properly invalidates all the
LowEnergyServicePrivate instances, peripheral mode was leaking service
instances. This is triggered when the peripheral disconnects from a client
or when the user calls disconnectService(). On the other hand
stopAdvertising() does not do that.
This patch fixes the service instance leak and ensures that the class
docs specifically state the behavior difference between stopAdvertising()
and disconnectService().
Change-Id: Ia52b141096dc1db3d0cefe3ed18c230eecccd9c0
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: Iae1cde9f313d6d97858e2bf9de974b0e09bad1b4
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This function is called as part of
QBluetoothLocalDevice::requestPairing(..., Unpaired). On heavy I/O
systems this may be a rather slow function call. This patch ensures that
the function is called asynchronously.
Task-number: QTBUG-64735
Change-Id: I7e3b4ab3e9dca26a33af4d13bcc0ea64c44e1540
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Denis Shienkov <denis.shienkov@gmail.com>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
| |
This fixes the problem for all supported platforms.
Task-number: QTBUG-67672
Change-Id: I9cecfbe8a73df46070293eba1870ea3bee738b7b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The patch fixes the obvious problem of the crash. The question is however
what might have caused entries to be empty. The only theoretical explanation
is the remote device being disconnected (which resets most internal data).
Task-number: QTBUG-65826
Change-Id: I6b3509248f795d9cee5dcfe0c6e0caf06405b4e4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
| |
Change-Id: If31e244e44106af1550e572acb9a172497467b20
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch addresses two bugs. Firstly it ensures that the correct Java
function is executed when disconectFromDevice() is called on Android
peripheral.
Secondly, it turned out that calling disconnectFromDevice() while a
connection to a central exists and restarting the advertisement
resulted in a non-functional QLEController instance because
BluetoothGattServer was not properly restarted. As a side effects
the controller's state tracking stopped as well.
Change-Id: I98851fc974ceff2a1fcb03fe754dbda9c4aba271
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
This fixes the problem for the custom GATT stack on Bluez4 and older
Bluez5 versions (below 5.42).
Task-number: QTBUG-67651
Change-Id: Ia3c64c06777c8d357f615d681838bcdc83b92236
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
The values were never obtained on the Java side.
Task-number: QTBUG-67651
Change-Id: Ifceb124b07cf505c4e96fe7ba9d58364b3923c3a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The jobs list might be empty and calling last() causes an assert in QVector.
This implies the current process under discovery does not have any
descriptors or characteristics which are readable. In such cases no
async read requests have to be put forward and the discovery is already done.
Change-Id: I8417bfcd146866cb16c295c9e9d4890270574a56
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
It caused problems for the code model
Change-Id: I57978be203b24a44c67ce826ec9957755029cfd1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
Make qdbusxml2cpp include bluez5_helper_p.h to make definitions
available to device1_bluez5_p.h and objectmanager_p.h.
Task-number: QTBUG-66936
Change-Id: If700aeba7c67c10030f3d0fe2ac4e6bc0aeca3ed
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
BTLE scanning requires Android's ACCESS_FINE_LOCATION or
ACCESS_COARSE_LOCATION. The permission must be requested at runtime
(assuming it was declared in the manifest file). So far, Qt only
ever requested coarse location although FINE location is a perfectly
OK substitute and the manifest may only declare FINE location.
Task-number: QTBUG-66490
Change-Id: I4ce6a25735cb7cdf939f94f8fa545676d391ca2d
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
|
|
|
|
|
|
|
|
| |
qlowenergycontroller.cpp:295:82: warning: unused parameter 'role' [-Wunused-parameter]
static QLowEnergyControllerPrivate *privateController(QLowEnergyController::Role role)
Change-Id: I4d3d2ad1e2dbabd0101efd6294a2481491587926
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
qbluetoothsocket.h: In member function 'void QBluetoothSocket::connectToService(
const QBluetoothAddress&, QBluetoothUuid::ServiceClassUuid, QIODevice::OpenMode)':
qbluetoothsocket.h:111:5: error: declaration of 'openMode' shadows a member of 'this' [-Werror=shadow]
Change-Id: Ib9478027799b287430721d99bebee4002a1e5896
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The manual override env variable was renamed. The new name is
more fitting for the use case.
Task-number: QTBUG-46819
Task-number: QTBUG-66908
Change-Id: I9202ebf3f847d5c7dcc9e3c84b060b35343dd2fd
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qmetaobject.cpp:1483 (static bool QMetaObject::invokeMethod(QObject*,
const char*, Qt::ConnectionType, QGenericReturnArgument,
QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument)): QMetaObject::invokeMethod: No such method
NearFieldTarget::ndefMessageRead(QNdefMessage&)
Remove the reference symbols since Q_ARG data parameter is already treated as a Reference.
Task-number: QTBUG-64415
Change-Id: I4eb83c34cfbc06ac85e5579c690c9562fbc82841
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
| |
qdeclarativendeffilter.cpp:78: (qdoc) warning: Multiple topic commands found in comment: \qmlproperty and \enum.
Task-number: QTBUG-60644
Change-Id: I57418d83a74234da6a64fa1b88a65dea1a4a5f2f
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ibbdf40f5cf2bdb174e5a7d5efc90e880fc0b2edc
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
In theory each time a new connection is established, central and
peripheral device should renegotiate the mtu. However this is not always
happening which leads to wrong MTU assumptions. The most likely assumption
is the default size of 23 bytes.
Task-number: QTBUG-66056
Change-Id: I27d2cd89558b0c08925d31e2c7ed42ee45c303a4
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
As the winrt backend is the only available Windows backend atm, it
probably causes least confusion if we state that the class is not
available when using Windows.
Change-Id: Ide9a1ad799c1bc19f0d503ac78e9f6b32f44b574
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
|
|
|
|
| |
Change-Id: I3ab1a8a474d33d3831e125e7f2760cc464c2437f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If I understand the documentation correctly, the socket's onCompleted
callback should be called manually (with a proper status) before calling
Close on its read operation (see
https://docs.microsoft.com/en-us/uwp/api/windows.foundation.iasyncoperationwithprogress_tresult_tprogress_).
Additionally all logic could be cut from the callback as soon as
shutdown is initiated as we might run into dangling pointers otherwise.
Change-Id: I3b7969f1aae16c453bc450b652746c8e21b2ef8f
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
|
|
|
|
| |
Change-Id: I73650a766eb667b254f32ddab7bcf26e7c42f847
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
qbluetoothlocaldevice.cpp:272: (qdoc) warning: Undocumented parameter 'confirmation' in QBluetoothLocalDevice::pairingConfirmation()
qbluetoothlocaldevice.cpp:272: (qdoc) warning: No such parameter 'accept' in QBluetoothLocalDevice::pairingConfirmation()
Change-Id: Ice53e3a965b2d38a2d81d9b1a77292bd43c93967
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I0a35d5584c2c4364c6987d9add5e66f996647403
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|\
| |
| |
| | |
Change-Id: I56f791fcfdbc60562c6a10b163f721da3a9d4386
|
| |\
| | |
| | |
| | | |
Change-Id: Ia3172f663412eb9df0b1c41fc114699813039c43
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since it is possible that after calling Cancel() on the IAsyncInfo that
it will still call the Completed() callback, we need to ensure that
it has a chance to process the pending events before it is deleted.
Change-Id: I7d6fbb5bf6344098048b147c9d361c1fe7923b55
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ief783e899cde02ae033be8cd3af61ab5572d81a5
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-65801
Change-Id: I32be0262165d963ba5fb933c73414451431b2242
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the device does not give access to obtain the list of services, then
it should not throw an assert as the connection still succeeded, but
the device cannot be used.
Change-Id: I650eaba085f30c3cdc9980dd53de63482c7e7531
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In addition the patch adds a few improvements making the tests
somewhat more reliable.
1.) The 0x1800 BTLE Generic Access service is not exposed by
BlueZ's API. That's a deliberate decision by the devs. The patch
removes the service from the list of to-be-checked services.
2.) QTBUG-42519 is a limitation of the non-DBus BTLE implementation
and cannot be fixed. The new DBus API does permit concurrent
QLowEnergyController instances. However the instances share a platform
wide singleton which means that if one instance is connected
then the other instances connects as well. Other platforms
separate the connectivity between instances. Therefore
tst_concurrentDiscovery() has to offer three different behavior patterns
3.) Consecutive calls to writeDescriptor() in tst_readWriteDescriptor()
cause a crash of bluetoothd (version 5.47 or below) and a premature
disconnect from the BLE device in version BlueZ 5.48. To avoid the
problem qWait calls were introduced to delay the time between individual
calls.
4.) Improves the robustness of the tst_writeCharacteristicNoResponse()
test which relied on notifications being enabled for two of its
characteristics. So far the notifications for one characteristic were
enabled but not for the other. For some magical reason this happened to
be the case on all platforms but the new DBUS BTLE implementation.
5.) Swapped out some QVERIFY statements in favor of QCOMPARE. This
provides better error visibility when a test fails.
6.) The patch adds a time limitation of BTLE discovery which reduces
the time the entire test run takes. This is API that was recently added.
Change-Id: Ib633a87614af9cbccdb0253ba47fd059a2013358
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This feature depends on ClientCharacteristicConfiguration descriptor
types which determine whether changed signals are sent or not.
The patch also ensures that cached char values are not
updated/cached when the char is not readable.
Task-number: QTBUG-46819
Change-Id: I841bcaaca60c588eae7d4067b6ead6af28f957e3
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In addition there is a minor debug cleanup in the reading
of descriptor code.
Task-number: QTBUG-46819
Change-Id: I3f65c7d113b306b5b4892fa5df189476c06df0e9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Read/write is limited to central role support. Peripheral role support
will follow at a later stage.
Task-number: QTBUG-46819
Change-Id: Idc27ea31cf0629470dc46490235c57f64b51498d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|