[TEST REQUEST] Windows Bluetooth LE build

Dirk Hohndel dirk at hohndel.org
Sun Sep 30 17:38:25 PDT 2018


Again, top posting from Windows.

I get the same errors in Subsurface that I get with your app. Here’s a cut and paste of the output:

press <enter> to start discovery...

discovery started...
entering main loop...
qt.bluetooth.windows: Emit:  "E4:3B:31:49:F5:D0"
qt.bluetooth.windows: Emit:  "DB:3B:75:83:D8:6E"
discovery finished
enumerate devices
-------------------------------
device # 0
 addr: "E4:3B:31:49:F5:D0"
 name: "Perdix"
 coreConfiguration: QFlags(0x1)
-------------------------------
device # 1
 addr: "DB:3B:75:83:D8:6E"
 name: "Teric"
 coreConfiguration: QFlags(0x1)
-------------------------------
done enumerating devices

enter a device # to connect to:
1
device suppots BTLE.
Unimplemented code.
to enable random addresses, type "yes" and press <enter>. empty input means - no:
yes
random addresses enabled!
connecting to device # 1 ; address: "DB:3B:75:83:D8:6E"
controller state changed: QLowEnergyController::ControllerState(ConnectingState)
controller state changed: QLowEnergyController::ControllerState(ConnectedState)
press <enter> to discover services for this device...
controller state changed: QLowEnergyController::ControllerState(DiscoveringState)
qt.bluetooth.windows: Found uuid: "{00001800-0000-1000-8000-00805f9b34fb}"
qt.bluetooth.windows: Found uuid: "{00001801-0000-1000-8000-00805f9b34fb}"
qt.bluetooth.windows: Found uuid: "{fe25c237-0ece-443c-b0aa-e02033e7029d}"
controller state changed: QLowEnergyController::ControllerState(DiscoveredState)
-------------------------------
service # 0
uuid: "{00001800-0000-1000-8000-00805f9b34fb}"
-------------------------------
service # 1
uuid: "{00001801-0000-1000-8000-00805f9b34fb}"
-------------------------------
service # 2
uuid: "{fe25c237-0ece-443c-b0aa-e02033e7029d}"
-------------------------------
done enumerating services

select a service # to list its characteristics:
2
creating service object for UUID: "{fe25c237-0ece-443c-b0aa-e02033e7029d}" ...
discovering service details...
serviceStateChanged: QLowEnergyService::ServiceState(DiscoveringServices)
qt.bluetooth.windows: Unable to get value for characteristic "{27b7570b-359e-45a3-91bb-cf7e70049bd2}" of the service "{fe25c237-0ece-443c-b0aa-e02033e7029d}" : "No attribute found within the given attribute handle range."
serviceStateChanged: QLowEnergyService::ServiceState(ServiceDiscovered)
listing characteristics for service UUID: "{fe25c237-0ece-443c-b0aa-e02033e7029d}"
-------------------------------
characteristic # 0
name: ""
uuid: "{27b7570b-359e-45a3-91bb-cf7e70049bd2}"
descriptors:
        descriptor # 0
        name: "Client Characteristic Configuration"
        uuid: "{00002902-0000-1000-8000-00805f9b34fb}"
        descriptor # 1
        name: "Characteristic User Description"
        uuid: "{00002901-0000-1000-8000-00805f9b34fb}"
-------------------------------
done enumerating characteristics for service

actions:
        wc - write char
        rc - read char
        wd - write desc
        rd - read desc
type an action (e.g. "wc") and press <enter>:
wd
enter desc #:
0
enter new desc value in HEX (e.g. "BB"):
0100
writing "\x01\x00" to desc # 0
press <enter> to continue...
qt.bluetooth.windows: Unable to set value for descriptor "{00002902-0000-1000-8000-00805f9b34fb}" for characteristic "{27b7570b-359e-45a3-91bb-cf7e70049bd2}" of the service "{fe25c237-0ece-443c-b0aa-e02033e7029d}" : "The semaphore timeout period has expired."

The crazy thing is that this morning I successfully downloaded from this very dive computer. And I have not the faintest clue what I have changed. I have gone back to the same binary that I am pretty sure is the one that I used… doesn’t work.

First we have this: 
qt.bluetooth.windows: Unable to get value for characteristic "{27b7570b-359e-45a3-91bb-cf7e70049bd2}" of the service "{fe25c237-0ece-443c-b0aa-e02033e7029d}" : "No attribute found within the given attribute handle range."

And then the whole “semaphore timeout period has expired” thing…

Ring any bells, Lubomir?

/D

From: Lubomir I. Ivanov
Sent: Sunday, September 30, 2018 3:18 PM
To: Dirk Hohndel
Cc: Linus Torvalds; Subsurface Mailing List
Subject: Re: [TEST REQUEST] Windows Bluetooth LE build

On Sun, 30 Sep 2018 at 20:28, Dirk Hohndel <dirk at hohndel.org> wrote:
>
>
> > On Sep 30, 2018, at 10:23 AM, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
> >
> > i think you've mentioned that only the Shearwater DCs worked.
> > based on the conversation history, i don't think the Teric worked yet.
>
> The Teric is the Shearwater Teric :-)
>
> I have been testing with three dive computers so far
>
> Shearwater Petrel (BT classic only)
> Shearwater Perdix AI (BLE only)
> Shearwater Teric (BLE only)
>
> my other BLE dive computer (Suunto EON Steel) tries very hard
> to be invisible and requires some trickery to pair to - I haven't
> figured out how to do this on Windows.
>

this link contains updated testing app for the WIN32 BLE stack:
https://www.dropbox.com/s/ehkoklydtnrvzxg/_qt-bt-discovery.zip?dl=0

using this app i can:
1) discover the OSTC+
2) list it's services
3) list characteristics and descriptors for a service
4) it has a prompt that asks if you want to write / read descriptors /
characteristics
- using the prompt i can enable notifications by writing 0100 to a
certain descriptor.
- i can then enter the dive computer into download mode by writing BB
to a certain characteristic.

this app can be used to debug if the Qt WIN32 stack works for the
devices we are having problems with.
next step would be to attach libdivecomputer to this and debug a
complete download, but i'm not sure where i would have the time to do
that.

lubomir
--

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.subsurface-divelog.org/pipermail/subsurface/attachments/20180930/29f67291/attachment-0001.html>


More information about the subsurface mailing list