Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.15.0
-
None
-
I'm developing under Qt Creator on Windows 10 (last release)
The remote device is a embedded system developped with a chip from u-blox (this is not a Qt code)
Description
Is it possible to connect multiple peripheral devices to a Qt app on Windows 10 ?
Using "connectToDevice()" is successful for both devices.
Then I have no problem exchanging with the first one.
But when I write in the characteristic of the second remote device, the connection with this device is immediately lost (Invalid service : loss of connection with the underlying device). The connection with the first device remains active.
My QlowEnergyController(s) are separated for every device. Indeed, I duplicated every Qt Bluetooth class (QlowEnergyController, QLowEnergyService, QBluetoothDeviceDiscoveryAgent...) to confirm it is not the problem.
Some more information I can give you :
Here are the messages I got from the Bluetooth stack when I try to send the first message to the second remote device (the first one is already connected) :
internal\sdk\inc\wil\opensource/wil/winrt.h(1587)\Windows.Devices.Bluetooth.dll!00007FFEE636E54B: (caller: 00007FFEE639262E) Exception(1) tid(3a08) 80004004 Opération abandonnée Exception at 0x7fff0a413b29, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) in Windows_Devices_Bluetooth Exception at 0x7fff0a413b29, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) (first chance) in Windows_Devices_Bluetooth onecoreuap\drivers\wdm\bluetooth\user\winrt\gatt\gattcharacteristic.cpp(1119)\Windows.Devices.Bluetooth.dll!00007FFEE643DD9B: (caller: 00007FFEE638FB90) ReturnHr(73) tid(3a08) 80004004 Opération abandonnée onecoreuap\drivers\wdm\bluetooth\user\winrt\gatt\gattcharacteristic.cpp(368)\Windows.Devices.Bluetooth.dll!00007FFEE638FC9B: (caller: 00007FFEE63993EC) ReturnHr(74) tid(3a08) 80004004 Opération abandonnée
The signal "QLowEnergyService::stateChanged" is emitted when I write in the characteristic. The state sent is : QLowEnergyService::InvalidService.
Moreover, I can confirm that I can write in the descriptor of both devices (descriptorWritten signal is emitted) : m_pFifoService->writeDescriptor(notificationDesc, QByteArray::fromHex("0100"));