linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* low energy: does gatt client/server work in current version? How to test?
@ 2018-10-01 10:24 Pavel Machek
  2018-10-01 13:53 ` Barry Byford
  0 siblings, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2018-10-01 10:24 UTC (permalink / raw)
  To: luiz.dentz, linux-bluetooth, marcel

[-- Attachment #1: Type: text/plain, Size: 2917 bytes --]

Hi!

I'm trying to get gatt client/server to run; my ultimate goal is to
turn Linux machine into "low-energy device", providing services
similar to heartbeat measurement.

I do have existing qt application (running on Android and PC) I'd like
"device" to talk to.

TODO says:

- Add complete GATT test coverage in unit/test-gatt following the GATT
  test
    spec. This could use shared/gatt-client and shared/gatt-server at
  the same
    time to test both against each other. We should definitely have
  tests for
    gatt-server and gatt-client simultaneously on one side of the
  connection.

  Priority: High
    Complexity: C4

Which tells me that maybe I should consider helping with that. But so
far I was not able to get it to work...

I can use gatt-server and connect to it using gatttool, but depending
on details during the server start (?) and phase of moon, either
device is not enumerated by the QT code, or it is not detected as
low-energy device, or no UUIDs are detected.

My attempt at launching server is below (using python gatt-server, (1)
). I was doing "hciconfig leadv 0" manually at some point.

Using hciconfig while bluetoothd is running sounds kind-of
dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
things got slightly different, but did not start to work for me. Is
there documentation how to get this to work somewhere?

Thanks and best regards,
							Pavel

(3)
sudo tools/btmgmt -i hci0 power off
sudo tools/btmgmt -i hci0 le on
sudo tools/btmgmt -i hci0 connectable on
sudo tools/btmgmt -i hci0 name "some friendly name"
sudo tools/btmgmt -i hci0 advertising on
sudo tools/btmgmt -i hci0 power on
tools/btgatt-server -i hci0 -s low -t public -r -v

(2)
https://stackoverflow.com/questions/29128586/bluetooth-low-energy-in-c-using-bluez-to-create-a-gatt-server#31030321

(1)
#!/usr/bin/python3
# -*- python -*-

import os
import re
import time

def pcmd(c):
    return os.popen(c).readline()[:-1]

class Ble:
    def down(m):
        print("Shutting down BLEE")
        os.system("sudo killall bluetoohd")
        os.system("sudo killall gatt-server")
        os.system("sudo hciconfig hci0 down")        

    def up(m):
        print("Starting up BLEE")
        os.system("sudo ../bluez/src/bluetoothd -d -n &")
        time.sleep(2)
        os.system("sudo ./gatt-server &")
        time.sleep(2)
        os.system("sudo hciconfig hci0 up")
        ##os.system("../bluez/test/example-gatt-server &")
        while True:
            #os.system("sudo hciconfig hci0 leadv 0")
            time.sleep(5)

    def run(m):
        m.down()
        time.sleep(1)
        m.up()
                
b = Ble()
b.run()



									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-01 10:24 low energy: does gatt client/server work in current version? How to test? Pavel Machek
@ 2018-10-01 13:53 ` Barry Byford
  2018-10-02  8:53   ` Luiz Augusto von Dentz
  2018-10-02 12:09   ` Pavel Machek
  0 siblings, 2 replies; 7+ messages in thread
From: Barry Byford @ 2018-10-01 13:53 UTC (permalink / raw)
  To: pavel; +Cc: Luiz Augusto von Dentz, Bluez mailing list, marcel

There has been a discussion on the mailing previously that covered some of this.

Is there anything in this thread that helps:
https://marc.info/?t=149208458400001&r=1&w=2

On Mon, 1 Oct 2018 at 11:25, Pavel Machek <pavel@ucw.cz> wrote:
>
> Hi!
>
> I'm trying to get gatt client/server to run; my ultimate goal is to
> turn Linux machine into "low-energy device", providing services
> similar to heartbeat measurement.
>
> I do have existing qt application (running on Android and PC) I'd like
> "device" to talk to.
>
> TODO says:
>
> - Add complete GATT test coverage in unit/test-gatt following the GATT
>   test
>     spec. This could use shared/gatt-client and shared/gatt-server at
>   the same
>     time to test both against each other. We should definitely have
>   tests for
>     gatt-server and gatt-client simultaneously on one side of the
>   connection.
>
>   Priority: High
>     Complexity: C4
>
> Which tells me that maybe I should consider helping with that. But so
> far I was not able to get it to work...
>
> I can use gatt-server and connect to it using gatttool, but depending
> on details during the server start (?) and phase of moon, either
> device is not enumerated by the QT code, or it is not detected as
> low-energy device, or no UUIDs are detected.
>
> My attempt at launching server is below (using python gatt-server, (1)
> ). I was doing "hciconfig leadv 0" manually at some point.
>
> Using hciconfig while bluetoothd is running sounds kind-of
> dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
> things got slightly different, but did not start to work for me. Is
> there documentation how to get this to work somewhere?
>
> Thanks and best regards,
>                                                         Pavel
>
> (3)
> sudo tools/btmgmt -i hci0 power off
> sudo tools/btmgmt -i hci0 le on
> sudo tools/btmgmt -i hci0 connectable on
> sudo tools/btmgmt -i hci0 name "some friendly name"
> sudo tools/btmgmt -i hci0 advertising on
> sudo tools/btmgmt -i hci0 power on
> tools/btgatt-server -i hci0 -s low -t public -r -v
>
> (2)
> https://stackoverflow.com/questions/29128586/bluetooth-low-energy-in-c-using-bluez-to-create-a-gatt-server#31030321
>
> (1)
> #!/usr/bin/python3
> # -*- python -*-
>
> import os
> import re
> import time
>
> def pcmd(c):
>     return os.popen(c).readline()[:-1]
>
> class Ble:
>     def down(m):
>         print("Shutting down BLEE")
>         os.system("sudo killall bluetoohd")
>         os.system("sudo killall gatt-server")
>         os.system("sudo hciconfig hci0 down")
>
>     def up(m):
>         print("Starting up BLEE")
>         os.system("sudo ../bluez/src/bluetoothd -d -n &")
>         time.sleep(2)
>         os.system("sudo ./gatt-server &")
>         time.sleep(2)
>         os.system("sudo hciconfig hci0 up")
>         ##os.system("../bluez/test/example-gatt-server &")
>         while True:
>             #os.system("sudo hciconfig hci0 leadv 0")
>             time.sleep(5)
>
>     def run(m):
>         m.down()
>         time.sleep(1)
>         m.up()
>
> b = Ble()
> b.run()
>
>
>
>                                                                         Pavel
> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-01 13:53 ` Barry Byford
@ 2018-10-02  8:53   ` Luiz Augusto von Dentz
  2018-10-02 12:26     ` Pavel Machek
                       ` (2 more replies)
  2018-10-02 12:09   ` Pavel Machek
  1 sibling, 3 replies; 7+ messages in thread
From: Luiz Augusto von Dentz @ 2018-10-02  8:53 UTC (permalink / raw)
  To: Barry Byford; +Cc: Pavel Machek, linux-bluetooth, Marcel Holtmann

Hi Barry, Pavel,

On Mon, Oct 1, 2018 at 4:53 PM Barry Byford <31baz66@gmail.com> wrote:
>
> There has been a discussion on the mailing previously that covered some of this.
>
> Is there anything in this thread that helps:
> https://marc.info/?t=149208458400001&r=1&w=2
>
> On Mon, 1 Oct 2018 at 11:25, Pavel Machek <pavel@ucw.cz> wrote:
> >
> > Hi!
> >
> > I'm trying to get gatt client/server to run; my ultimate goal is to
> > turn Linux machine into "low-energy device", providing services
> > similar to heartbeat measurement.
> >
> > I do have existing qt application (running on Android and PC) I'd like
> > "device" to talk to.
> >
> > TODO says:
> >
> > - Add complete GATT test coverage in unit/test-gatt following the GATT
> >   test
> >     spec. This could use shared/gatt-client and shared/gatt-server at
> >   the same
> >     time to test both against each other. We should definitely have
> >   tests for
> >     gatt-server and gatt-client simultaneously on one side of the
> >   connection.
> >
> >   Priority: High
> >     Complexity: C4
> >
> > Which tells me that maybe I should consider helping with that. But so
> > far I was not able to get it to work...

This is unit testing with a socket pair, so I don't think it has
anything to do with what follows bellow.

> > I can use gatt-server and connect to it using gatttool, but depending
> > on details during the server start (?) and phase of moon, either
> > device is not enumerated by the QT code, or it is not detected as
> > low-energy device, or no UUIDs are detected.
> >
> > My attempt at launching server is below (using python gatt-server, (1)
> > ). I was doing "hciconfig leadv 0" manually at some point.
> >
> > Using hciconfig while bluetoothd is running sounds kind-of
> > dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
> > things got slightly different, but did not start to work for me. Is
> > there documentation how to get this to work somewhere?

Have a look at bluetoothctl first, all the necessary commands are
there to enable to act as peripheral:

Menu advertise:
Available commands:
-------------------
uuids [uuid1 uuid2 ...]                           Set/Get advertise uuids
service [uuid] [data=xx xx ...]                   Set/Get advertise service data
manufacturer [id] [data=xx xx ...]                Set/Get advertise
manufacturer data
data [type] [data=xx xx ...]                      Set/Get advertise data
discoverable [on/off]                             Set/Get advertise discoverable
discoverable-timeout [seconds]                    Set/Get advertise
discoverable timeout
tx-power [on/off]                                 Show/Enable/Disable
TX power to be advertised
name [on/off/name]                                Configure local name
to be advertised
appearance [on/off/value]                         Configure custom
appearance to be advertised
duration [seconds]                                Set/Get advertise duration
timeout [seconds]                                 Set/Get advertise timeout
clear [uuids/service/manufacturer/config-name...] Clear advertise config

GATT Services can be registered with:

Menu gatt:
Available commands:
-------------------
list-attributes [dev]                             List attributes
select-attribute <attribute/UUID>                 Select attribute
attribute-info [attribute/UUID]                   Select attribute
read [offset]                                     Read attribute value
write <data=xx xx ...> [offset]                   Write attribute value
acquire-write                                     Acquire Write file descriptor
release-write                                     Release Write file descriptor
acquire-notify                                    Acquire Notify file descriptor
release-notify                                    Release Notify file descriptor
notify <on/off>                                   Notify attribute value
register-application [UUID ...]                   Register profile to connect
unregister-application                            Unregister profile
register-service <UUID>                           Register application service.
unregister-service <UUID/object>                  Unregister application service
register-includes <UUID>                          Register as Included
service in.
unregister-includes <Service-UUID><Inc-UUID>      Unregister Included service.
register-characteristic <UUID> <Flags=read,write,notify...>  Register
application characteristic
unregister-characteristic <UUID/object>           Unregister
application characteristic
register-descriptor <UUID> <Flags=read,write...>  Register application
descriptor
unregister-descriptor <UUID/object>               Unregister
application descriptor

> > Thanks and best regards,
> >                                                         Pavel
> >
> > (3)
> > sudo tools/btmgmt -i hci0 power off
> > sudo tools/btmgmt -i hci0 le on
> > sudo tools/btmgmt -i hci0 connectable on
> > sudo tools/btmgmt -i hci0 name "some friendly name"
> > sudo tools/btmgmt -i hci0 advertising on
> > sudo tools/btmgmt -i hci0 power on
> > tools/btgatt-server -i hci0 -s low -t public -r -v

No need to use btmgmt, applications should use the D-Bus API which has
pretty much everything you are doing with btmgmt.

> > (2)
> > https://stackoverflow.com/questions/29128586/bluetooth-low-energy-in-c-using-bluez-to-create-a-gatt-server#31030321
> >
> > (1)
> > #!/usr/bin/python3
> > # -*- python -*-
> >
> > import os
> > import re
> > import time
> >
> > def pcmd(c):
> >     return os.popen(c).readline()[:-1]
> >
> > class Ble:
> >     def down(m):
> >         print("Shutting down BLEE")
> >         os.system("sudo killall bluetoohd")
> >         os.system("sudo killall gatt-server")
> >         os.system("sudo hciconfig hci0 down")
> >
> >     def up(m):
> >         print("Starting up BLEE")
> >         os.system("sudo ../bluez/src/bluetoothd -d -n &")
> >         time.sleep(2)
> >         os.system("sudo ./gatt-server &")

bluetoothd is already acting as a GATT server.

> >         time.sleep(2)
> >         os.system("sudo hciconfig hci0 up")
> >         ##os.system("../bluez/test/example-gatt-server &")
> >         while True:
> >             #os.system("sudo hciconfig hci0 leadv 0")

You may want to use example-advertisement instead of calling hciconfig.

> >             time.sleep(5)
> >
> >     def run(m):
> >         m.down()
> >         time.sleep(1)
> >         m.up()
> >
> > b = Ble()
> > b.run()
> >
> >
> >
> >                                                                         Pavel
> > --
> > (english) http://www.livejournal.com/~pavelmachek
> > (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html



-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-01 13:53 ` Barry Byford
  2018-10-02  8:53   ` Luiz Augusto von Dentz
@ 2018-10-02 12:09   ` Pavel Machek
  1 sibling, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2018-10-02 12:09 UTC (permalink / raw)
  To: Barry Byford; +Cc: Luiz Augusto von Dentz, Bluez mailing list, marcel

[-- Attachment #1: Type: text/plain, Size: 520 bytes --]

Hi!

> There has been a discussion on the mailing previously that covered some of this.
> 
> Is there anything in this thread that helps:
> https://marc.info/?t=149208458400001&r=1&w=2

Thanks for the pointer; it indeed tells me how it is suppossed to
work. (It does not, but now I understand that advertising is quite
separate from the gatt protocol).

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-02  8:53   ` Luiz Augusto von Dentz
@ 2018-10-02 12:26     ` Pavel Machek
  2018-10-05  9:15     ` Pavel Machek
  2018-10-14 21:40     ` Pavel Machek
  2 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2018-10-02 12:26 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: Barry Byford, linux-bluetooth, Marcel Holtmann

[-- Attachment #1: Type: text/plain, Size: 985 bytes --]

Hi!

> > > dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
> > > things got slightly different, but did not start to work for me. Is
> > > there documentation how to get this to work somewhere?
> 
> Have a look at bluetoothctl first, all the necessary commands are
> there to enable to act as peripheral:

Thanks for the pointer. How are you getting the help? It looks to me
like machine is having fun with me:

[bluetooth]# help advertise
Too many arguments
[bluetooth]# advertise
Missing on/off/type argument
[bluetooth]# advertise help
Invalid argument help

Aha. "menu advertise" is the magic command.

Is this expected?

[bluetooth]# uuids advertise on
[bluetooth]#

Aha, thanks for hints. This looks like missing piece of puzzle... and
yes, communication seems to work now.

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-02  8:53   ` Luiz Augusto von Dentz
  2018-10-02 12:26     ` Pavel Machek
@ 2018-10-05  9:15     ` Pavel Machek
  2018-10-14 21:40     ` Pavel Machek
  2 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2018-10-05  9:15 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: Barry Byford, linux-bluetooth, Marcel Holtmann

[-- Attachment #1: Type: text/plain, Size: 3283 bytes --]

Hi!

> > > My attempt at launching server is below (using python gatt-server, (1)
> > > ). I was doing "hciconfig leadv 0" manually at some point.
> > >
> > > Using hciconfig while bluetoothd is running sounds kind-of
> > > dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
> > > things got slightly different, but did not start to work for me. Is
> > > there documentation how to get this to work somewhere?
> 
> Have a look at bluetoothctl first, all the necessary commands are
> there to enable to act as peripheral:

And indeed it does, and it does work when done this way.

> > > (3)
> > > sudo tools/btmgmt -i hci0 power off
> > > sudo tools/btmgmt -i hci0 le on
> > > sudo tools/btmgmt -i hci0 connectable on
> > > sudo tools/btmgmt -i hci0 name "some friendly name"
> > > sudo tools/btmgmt -i hci0 advertising on
> > > sudo tools/btmgmt -i hci0 power on
> > > tools/btgatt-server -i hci0 -s low -t public -r -v
> 
> No need to use btmgmt, applications should use the D-Bus API which has
> pretty much everything you are doing with btmgmt.

Yes, that works, thanks.

As far as I understand, with bluetoothd running, neither btmgmt nor
hciconfig should be used. Unfortunately they are easy to find and
"seem" to work.

[bluetooth]# agent KeyboardDisplay
Agent is already registered
[bluetooth]# info FC:CE:56:3B:D1:6C
Device FC:CE:56:3B:D1:6C not available
[NEW] Device FC:CE:56:3B:D1:6C FC-CE-56-3B-D1-6C
[FC-CE-56-3B-D1-6C]# info FC:CE:56:3B:D1:6C
Device FC:CE:56:3B:D1:6C (random)
	Alias: FC-CE-56-3B-D1-6C
	Paired: no
	Trusted: no
	Blocked: no
	Connected: yes
	LegacyPairing: no
[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C
Attempting to pair with FC:CE:56:3B:D1:6C
Request passkey
[agent] Enter passkey (number in 0-999999): 000000
[FC-CE-56-3B-D1-6C]# info FC:CE:56:3B:D1:6C
Device FC:CE:56:3B:D1:6C (random)
	Alias: FC-CE-56-3B-D1-6C
	Paired: no
	Trusted: no
	Blocked: no
	Connected: yes
	LegacyPairing: no
[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C

If I retry the pairing, nothing happens:

[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C
Attempting to pair with FC:CE:56:3B:D1:6C

If I retry, it is busy:

[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C
Attempting to pair with FC:CE:56:3B:D1:6C
Failed to pair: org.bluez.Error.InProgress
Failed to pair: org.freedesktop.DBus.Error.NoReply
Failed to pair: org.freedesktop.DBus.Error.NoReply

I tried power cycling the device, re-connect and re-pair.

[CHG] Device FC:CE:56:3B:D1:6C Connected: no
[bluetooth]#
[CHG] Device FC:CE:56:3B:D1:6C Connected: no
[CHG] Device FC:CE:56:3B:D1:6C Connected: yes
[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C
Attempting to pair with FC:CE:56:3B:D1:6C
[FC-CE-56-3B-D1-6C]# info FC:CE:56:3B:D1:6C
Device FC:CE:56:3B:D1:6C (random)
	Alias: FC-CE-56-3B-D1-6C
	Paired: no
	Trusted: no
	Blocked: no
	Connected: yes
	LegacyPairing: no
[FC-CE-56-3B-D1-6C]# pair FC:CE:56:3B:D1:6C
Attempting to pair with FC:CE:56:3B:D1:6C
Failed to pair: org.bluez.Error.InProgress
[FC-CE-56-3B-D1-6C]# 

Which does not work :-(.

Best regards,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: low energy: does gatt client/server work in current version? How to test?
  2018-10-02  8:53   ` Luiz Augusto von Dentz
  2018-10-02 12:26     ` Pavel Machek
  2018-10-05  9:15     ` Pavel Machek
@ 2018-10-14 21:40     ` Pavel Machek
  2 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2018-10-14 21:40 UTC (permalink / raw)
  To: Luiz Augusto von Dentz; +Cc: Barry Byford, linux-bluetooth, Marcel Holtmann

[-- Attachment #1: Type: text/plain, Size: 1910 bytes --]

Hi!

> > > Using hciconfig while bluetoothd is running sounds kind-of
> > > dangerous. Stackoverflow (2) suggests using btmgmt (3) instead, and
> > > things got slightly different, but did not start to work for me. Is
> > > there documentation how to get this to work somewhere?
> 
> Have a look at bluetoothctl first, all the necessary commands are
> there to enable to act as peripheral:

First, thanks a lot. With bluetoothctl, it indeed works.

> > > (3)
> > > sudo tools/btmgmt -i hci0 power off
> > > sudo tools/btmgmt -i hci0 le on
> > > sudo tools/btmgmt -i hci0 connectable on
> > > sudo tools/btmgmt -i hci0 name "some friendly name"
> > > sudo tools/btmgmt -i hci0 advertising on
> > > sudo tools/btmgmt -i hci0 power on
> > > tools/btgatt-server -i hci0 -s low -t public -r -v
> 
> No need to use btmgmt, applications should use the D-Bus API which has
> pretty much everything you are doing with btmgmt.

Pretty much, yes.

There's one piece I'm missing. I need to use "random address", because
that's what other side of link wants to talk to. "privacy on" from
btmgmt does randomize address (and sets the right bit). I have not
found equivalent in bluetoothctl.

Plus... I'd really like to use "random, but fixed for given machine"
address, as this is device other side is expected to pair with.

Ideas woudl be welcome.

> > >     def up(m):
> > >         print("Starting up BLEE")
> > >         os.system("sudo ../bluez/src/bluetoothd -d -n &")
> > >         time.sleep(2)
> > >         os.system("sudo ./gatt-server &")
> 
> bluetoothd is already acting as a GATT server.

I may have misnamed the component, but something needs to tell which
attributes to implement to bluetoothd.

Thanks,
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-10-14 21:40 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-01 10:24 low energy: does gatt client/server work in current version? How to test? Pavel Machek
2018-10-01 13:53 ` Barry Byford
2018-10-02  8:53   ` Luiz Augusto von Dentz
2018-10-02 12:26     ` Pavel Machek
2018-10-05  9:15     ` Pavel Machek
2018-10-14 21:40     ` Pavel Machek
2018-10-02 12:09   ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).