Sto iniziando a creare una semplice rete BLE con un microcontrollore e un raspberry pi (dardle BLE tardis). Come punto di partenza, sto cercando un semplice esempio C o C++ per leggere/scrivere un dispositivo BLE, simile a quello che sono in grado di fare sulla linea di comando. Gli esempi che ho trovato finora sono piuttosto complicati. Come principiante BLE ho bisogno di alcuni esempi molto semplici da costruire prima di andare avanti con un design più complicato. Sto bene con hard-coding il nome del dispositivo BLE come ho nell'esempio gatttool qui sotto.Esempio di lettura/scrittura BLE C/C++ con Bluez
Ecco come attualmente utilizzo le opzioni della riga di comando da Bluez.
Dalla riga di comando sono in grado di utilizzare:
$ sudo hcitool lescan
LE Scan ...
BB:A0:50:02:18:07 MyDevice
successivo sono in grado di connettersi al dispositivo sulla riga di comando con gatttool:
$ sudo gatttol -b BB:A0:50:02:18:07 -I
[BB:A0:50:02:18:07][LE]> connect
Attempting to connect to BB:A0:50:02:18:07
Connection successful
Infine io sono in grado di leggere e scrivere utilizzando le maniglie appropriate
[BB:A0:50:02:18:07][LE]> char-write-req 000f 0100
Characteristic value was written successfully
[BB:A0:50:02:18:07][LE]> char-write-cmd 0011 4C467A
Alcuni siti che ho utilizzato per la ricerca iniziale e per iniziare:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c
Puoi anche dare un'occhiata al nuovissimo DBUS GATT api pubblicato dalle ultime versioni di Bluez (dal 5,29 ... credo). Ancora sperimentale, ma ho fatto alcuni test e funziona abbastanza bene. Ovviamente le prestazioni potrebbero essere un po 'inferiori rispetto all'accesso alla libreria bluez direttamente, ma penso che valga la pena provare ... –