Cleaned up and rebased "libdivecomputer-NG" branch

Lubomir I. Ivanov neolit123 at gmail.com
Fri Apr 27 14:49:22 PDT 2018


On 28 April 2018 at 00:03, Dirk Hohndel <dirk at hohndel.org> wrote:
>
>> On Apr 27, 2018, at 1:48 PM, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
>>>
>>> I switched to a newer Qt version - it would be strange for them to disable
>>> something as critical as this, but definitely worth investigating further.
>
> It seems that I DIDN’T switch to a newer Qt after all. Strange. Something is mixed
> up in my build script it seems.
>
>> i don't see any changes here that disable debugging output:
>> https://github.com/qt/qtconnectivity/blob/5.10/src/bluetooth/qlowenergycontroller_android.cpp
>> (same goes for 5.10.1 and the 5.11 branches)
>> .
>> the log entry "Service discovery initiated" can be seen and it's
>> visibility is controlled by the same logging rules as those for
>> reading and writing of characteristics and descriptors.
>>
>>> Service "fe25c237-0ece-443c-b0aa-e02033e7029d" discovered (start: 9 end: 9 ) QLowEnergyServicePrivate(0xc5271c00)
>>
>> ^ so a non-standard service is found here.
>>
>>> .. done discovering services
>>> .. discovering details
>>> .. enabling notifications
>>
>> https://github.com/Subsurface-divelog/subsurface/blob/master/core/qt-ble.cpp#L377
>>
>> at this point given this isn't a HW DC (Shearwater instead?) it should
>> list the descriptors for this service's last characteristic if the
>> service has characteristics.
>> i think the list of characteristics is empty.
>
> It doesn’t seem impossible, given all the issues with their BT/BLE stack
>
>

> Service "fe25c237-0ece-443c-b0aa-e02033e7029d" discovered (start: 9 end: 9 ) QLowEnergyServicePrivate(0xc5271c00)

just realized that 9 / 9 mean the start and end handle for this service.
so i guess that also confirms that the service has no characteristics
if they are equal.

the origin of the handles comes from the java backend.
the file hasn't seen activity since July 2017.

it might be hard to figure out what's going on unless some debug code
is added in this java file near the callers of this function:
https://github.com/qt/qtconnectivity/blob/5.10.1/src/android/bluetooth/src/org/qtproject/qt5/android/bluetooth/QtBluetoothLE.java#L867

the comment on top of the function says:
"//TODO function not yet used"

yet, i see that's it's being used to make this JNI call
"leServiceDetailDiscoveryFinished()" which reaches the C++ methods
that trigger the debug messages such as the one above:
"Service XXXX discovered (..."

>> i guess this can be confirmed by this slot which should trigger when
>> we start the service details discovery:
>> https://github.com/Subsurface-divelog/subsurface/blob/master/core/qt-ble.cpp#L47
>>
>> does the same service UUID have characteristics on iOS?
>> if yes, i think this might be a bug in qt-ble-android.
>>
>> btw, what Qt version is this for Android?
>
> We are still on 5.9.3.
> I need to figure out why 5.10.1 didn’t build as intended
>

i think that the issue comes from the java backend which hasn't seen
new contributions, so this could still be present in the latest Qt
too.
i would try with another device to narrow down if this is an issue
with the Android OS version with the Android device BLE hardware.

lubomir
--


More information about the subsurface mailing list