Ejemplo de lectura / escritura de C / C ++ BLE con Bluez

Estoy empezando a construir una red BLE simple con un microcontrolador y un raspberry pi (dongle BLE tardío). Como punto de partida, estoy buscando un ejemplo simple de C o C ++ para leer / escribir un dispositivo BLE, similar a lo que puedo hacer en la línea de comandos. Los ejemplos que he encontrado hasta ahora son bastante complicados. Como principiante de BLE, necesito algunos ejemplos muy simples para construir antes de avanzar con un diseño más complicado. Estoy de acuerdo con codificar el nombre del dispositivo BLE como lo hice en el ejemplo de Gatttool a continuación.

Así es como uso actualmente las opciones de línea de comandos de Bluez.

Desde la línea de comando puedo usar:

$ sudo hcitool lescan
LE Sca,n ...
BB:A0:50:02:18:07 MyDevice

A continuación, puedo conectarme al dispositivo en la línea de comandos 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

Finalmente, puedo leer y escribir usando las manijas apropiadas

[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

Algunos sitios que he usado para la investigación inicial y para comenzar:
http://people.csail.mit.edu/albert/bluez-intro/c404.html
https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c

Respuestas a la pregunta(1)

Su respuesta a la pregunta