low energy: does gatt client/server work in current version? How to test?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: signature.asc
Description: Digital signature


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux