On 11-01-18 09:03, Christian Schneider wrote:
Thx for looking into this!
Hm, is there some possibility to test/debug qt ble then? Or should I
check (and how) if there is an even lower level problem (kernel/bluez)?
BR, Christian
There is a suspicious line in your log: "Cannot connect due to pending active LE connections". This is related to an old (but open) Qt bug (https://bugreports.qt.io/browse/QTBUG-42519), and the Qt manual says this on this subject: "It is important to mention that some platforms such as a BlueZ based Linux cannot maintain two connected instances of QLowEnergyController to the same remote device. In such cases the second call to connectToDevice() may fail."

As the Subsurface code works fine for other BLE devices like HW OSTC, Shearwater and some Scubapro's, I do not believe that we try to connect to the device twice (or more).

Could it be that something else on your computer tries to connect to it before we do?

And with respect to test/debug ... well ... you probably have to start with building Subsurface yourself (the easy part), and build Qt from source (the bit harder part). And as BLE is not standard, I'm not sure that when passing the currently open fail, you are out of the woods. When you search on BLE OSTC in our email archive, you will find long threads related to BLE development.

--jan


Am 10.01.2018 um 22:02 schrieb Linus Torvalds:
On Wed, Jan 10, 2018 at 10:58 AM, Christian Schneider
<[email protected]> wrote:

I attached the log from libdc and from Subsurface itself, as the libdc
log isn't very long and the Subsurface log seems to contain some
communication.

Subsurface finds the service, but then when it tries to discover the
details, we never seem to finish service discovery.

You can see the "discovering details" phase in the log, but then it
doesn't get to "enabling notifications" which is where we start to
really talk to the device.

It fails with "failed to find suitable service on 00:1A:85:E0:0B:FA",
which just means that the Qt BLE service state never went to
ServiceDiscovered.

(Well, "never" here means "within BLE_TIMEOUT", which is 12 seconds).

So it never gets to the actual communication phase.

I'm not sure why that happens. This is all still pretty much entirely
the QT BLE connection phase, there's not really any subsurface or
libdivecomputer part to it all.

             Linus
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface

Reply via email to