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