Hi,
Thanks for your comments, in the past several days I got some information that the peripheral needs to be bonded before communication, so I'm confused that does QLowEnergyController or any agent support it? The host needs to send a request with a passkey for bonding, and confirm with a auth token on bonding response. B.R. Jie 在 2018-11-02 02:22:38,"Jérôme Godbout" <godbo...@amotus.ca> 写道: >A good reference for the BLE snoops is here: >http://www.fte.com/WebHelp/BPA600/Content/Documentation/WhitePapers/BPA600/Encryption/GettingAndroidLinkKey/RetrievingHCIlog.htm > >Note: take care, Samsung device (yet again) have a different path form all >other devices. > >-----Original Message----- >From: Alex Blasche <alexander.blas...@qt.io> >Sent: November 1, 2018 11:11 AM >To: Jérôme Godbout <godbo...@amotus.ca>; nus1998 <nus1...@yeah.net> >Cc: interest@qt-project.org >Subject: Re: [Interest] QLowEnergyController always disconnected after service >discovery finished > >Hi, > >all the comments from Jérôme apply and unfortunately I have had similar issues >with early Android devices/versions. > >I wanted to add one more way you can debug on Linux (since that's what you are >using). You may use wireshark which can log the traffic on your local bt >device. Maybe this reveals sth... > >In this case the error message says that the cause is somewhere on the >peripheral side. Therefore you may even want to enable some sort of logging on >the peripheral side. If it happens to be an Android device you can for example >enable HCI logging in the developer options. > >-- >Alex > >________________________________________ >From: Interest <interest-bounces+alexander.blasche=qt...@qt-project.org> on >behalf of Jérôme Godbout <godbo...@amotus.ca> >Sent: Wednesday, 31 October 2018 3:16:01 PM >To: nus1998 >Cc: interest@qt-project.org >Subject: Re: [Interest] QLowEnergyController always disconnected after service >discovery finished > >Hi, >I'm still having some trouble with some particular Android device running >5.0.1 to 5.1.1 that I could not figure out so far. I have trouble attaching >adb to those devices (thanks Samsung for the missing commands). But I have >seen some MTU badly handled on devices making the disconnection. > >If you connect successfully and do nothing else and the connection reset, it >might be a message that is badly handled by the device and the BLE stack on >old Android seem picky about thoses error. The 15 seconds if constant after >connection probably point to some exchange at lower level. > >You might want to test with NRFConnect and monitor the whole exchange with the >console into that application. This might give you some hint for the device >side fixes (if you can control that part). The unknown problems mention above >I can repeat them with NRFConnect but I'm still not sure why the BlueZ want to >disconnect even if MTU is handled properly by device (as per specification at >least). > >If you have any information we could share the information and maybe I could >finally find a fix (or a workaround) for this. Here's my list of device that >display the problem for me and the information I have gather so far: > > > * Open nRFConnect application > * Connect to the device > * Into the top right options (3 dots icon) select show log > * Use the debug level from the lower left corner > * Once the device connect and the device finish discovering application > services and characteristic, it will display the following error: Error 34 > (0x22) GATT CONN LMP TIMEOUT >Device that show th problems: > > * Google Nexus 7", Android 6.0.1 (the only one I could test out). > * Galaxy S4, Android 5.0.1 (debug impossible from Qt Creator) > * Galaxy Tab A, Android 5.1.1 (debug impossible from Qt Creator) > * LG K4 LTE, Android 5.1.1 (I don't have this device, it's a client that > had it) >Deives that doesn't show this behavior that I have tested and debugged: > > * Google LG Nexus 5, Android 6.0.1 > * All iOS device > * LG (multiples one with Android 8.0) > * Google Pixel 2 Android 9.0 > >Good luck, >Jerome > >From: nus1998 <nus1...@yeah.net> >Sent: October 30, 2018 9:16 PM >To: Jérôme Godbout <godbo...@amotus.ca> >Cc: interest@qt-project.org >Subject: Re:RE: [Interest] QLowEnergyController always disconnected after >service discovery finished > >Hi Jerome, > >Thanks for your advice, I seperated charateristics reading with service >discovery and Error1:"no attribute in ..." is disappeared. > >However, the QLowEnergyController is still disconnected several seconds after >service discovery is finished, still there is error of "Connection timed out" >or "Connection reset by peer". I wonder is this BLE feature and is it normal? >as when I use "BLE analyser" on android phone to read BLE devices, there are >all automatically disconnected in several seconds after connection is >estabilished. > >B.R. >Jie > > >At 2018-10-30 21:10:34, "Jérôme Godbout" ><godbo...@amotus.ca<mailto:godbo...@amotus.ca>> wrote: > >Hi, > >You should find and resolve the first error, any error could lead to >disconnection: >qt.bluetooth.bluez: Error1: "no attribute in given range found" last command: >10 handle: 1 m_controller discoveryFinished Also make sure you finish the >discovery before you start doing any other services/characteristics discovery >with BlueZ. > >Side note: In the case of the Bluez (especially the Android one), give it some >delay between your request and avoid sending multiple request at the same >time. After you connect put a sleep delay of a few hundred ms and always >request a single services and characteristic at a time. > >The stack is so buggy it's the only way to make it work properly and reliably. >Don't base your "it work" with BlueZ on a single test run, the results change >a lot with the device load and BLE usage by other application. iOS and OS X on >the other hand seem t work just fine, they do not need the artificial delay, >so it's a delay festival with ifdef. > >Jerome > >From: Interest ><interest-bounces+godboutj=amotus...@qt-project.org<mailto:amotus...@qt-project.org>> > On Behalf Of nus1998 >Sent: October 30, 2018 4:42 AM >To: interest@qt-project.org<mailto:interest@qt-project.org> >Subject: [Interest] QLowEnergyController always disconnected after service >discovery finished > >Hi, >When I use QLowEnergyController to scan the service, it's always disconnected >about 15 seconds after services discovery is finished. the error is not >certain, sometimes it's "Connection reset by peer", sometimes it's "Connection >timeout". > >The log is attached, can anyone have a look at it and give me some advice? >thanks in advance. > >qt.bluetooth.bluez: Bluez 5 detected. >qt.bluetooth.bluez: Creating QtBluezDiscoveryManager m_discoveryAgent is active >qt.bluetooth.bluez: BluetoothManagement: Ignored event: 13 >qt.bluetooth.bluez: Discovered: "00:07:80:2E:9B:85" "BLE Module" Num UUIDs 0 >total device 0 cached RSSI -94 Class 0 "00:07:80:2E:9B:85" "00:07:80:2E:9B:85" >"BLE Module" QFlags(0x1) >qt.bluetooth.bluez: void QBluetoothDeviceDiscoveryAgentPrivate::stop() >found lead MkIII >qt.bluetooth.bluez: Enabling GATT request timeout behavior 20000 >qt.bluetooth.bluez: addresstypeToUse: "Public" >qt.bluetooth.bluez: No settings found for peer device. >qt.bluetooth.bluez: BluetoothManagement: Ignored event: 13 >qt.bluetooth.bluez: HCI event triggered, type: f >qt.bluetooth.bluez: HCI event triggered, type: 3e >qt.bluetooth.bluez: received connection complete event, handle: 1025 >qt.bluetooth.bluez: BluetoothManagement: Ignored event: b >qt.bluetooth.bluez: Current l2cp sec level: 1 >qt.bluetooth.bluez: Exchanging MTU >m_controller connected >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 1 >endHandle: ffff 2800 >qt.bluetooth.bluez: Received size: 3 data: "031700" >qt.bluetooth.bluez: Server MTU: 23 resulting mtu: 23 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: Received size: 8 data: "1106010005000018" >qt.bluetooth.bluez: Found uuid: "{00001800-0000-1000-8000-00805f9b34fb}" start >handle: 1 end handle: 5 service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 6 >endHandle: ffff 2800 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: Received size: 22 data: >"111406001200e34bc643730f1e930e7fe83ae1b11fab" >qt.bluetooth.bluez: Found uuid: "{ab1fb1e1-3ae8-7f0e-931e-0f7343c64be3}" start >handle: 6 end handle: 12 service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 13 >endHandle: ffff 2800 >qt.bluetooth.bluez: Received size: 14 data: "1106130017000a1818001a000518" >qt.bluetooth.bluez: Found uuid: "{0000180a-0000-1000-8000-00805f9b34fb}" start >handle: 13 end handle: 17 service discovered >qt.bluetooth.bluez: Found uuid: "{00001805-0000-1000-8000-00805f9b34fb}" start >handle: 18 end handle: 1a service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 1b >endHandle: ffff 2800 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: Received size: 22 data: >"11141b002d00e8b84b71b98489ab01fb06bec3bad7af" >qt.bluetooth.bluez: Found uuid: "{afd7bac3-be06-fb01-ab89-84b9714bb8e8}" start >handle: 1b end handle: 2d service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 2e >endHandle: ffff 2800 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: Received size: 22 data: >"11142e0044000adea862315e215dbab961a5b3dc493c" >qt.bluetooth.bluez: Found uuid: "{3c49dcb3-a561-b9ba-5d21-5e3162a8de0a}" start >handle: 2e end handle: 44 service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 45 >endHandle: ffff 2800 >qt.bluetooth.bluez: Received size: 22 data: >"11144500fffffac79ce402ae50e53c3c6b32ffba88f7" >qt.bluetooth.bluez: Found uuid: "{f788baff-326b-3c3c-e550-ae02e49cc7fa}" start >handle: 45 end handle: ffff service discovered >qt.bluetooth.bluez: Sending read_by_group_type request, startHandle: 1 >endHandle: ffff 2801 >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: Received size: 5 data: "011001000a" >qt.bluetooth.bluez: Error1: "no attribute in given range found" last command: >10 handle: 1 m_controller discoveryFinished >qt.bluetooth.bluez: HCI event triggered, type: 13 >qt.bluetooth.bluez: HCI event triggered, type: 5 >qt.bluetooth.bluez: void QBluetoothSocketPrivate::_q_readNotify() 19 error: -1 >"Connection reset by peer" >m_controller disconnected >qt.bluetooth.bluez: BluetoothManagement: Ignored event: c B.R. >Jie > > > > >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest