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@xxxxxx> 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