L'exemple sur l'autre réponse ne fonctionne pas pour moi, il s'arrête en numérisation...
Le lien suivant fonctionne pour le langage c, mais comporte une erreur lors de la diffusion des octets contenant les informations sur le signal rssi.https://github.com/glock45/intel-edison-playground/blob/master/scan.c
cette ligne 121 :
printf("%s - RSSI %d\n", addr, (**char**)info->data[info->length]);
devrait être :
printf("%s - RSSI %d\n", addr, (**int8_t**)info->data[info->length]);
Je les ai trouvés en regardant à l'intérieur de bluez-version/monitor/*.c
, où se trouve le programme btmon. Vous pouvez voir les types de données et les structures, hcidump.c
est très utile et packets.c
, et main.c
aussi, mais il y en a beaucoup à apprendre sur les sockets hci
La programmation BLE avec BlueZ sur Galileo ou Edison est similaire à toute autre plate-forme x86.
Edison (et Galileo) est généralement livré avec les bibliothèques BlueZ préinstallées. Il vous suffit de les lier avec votre code C et un programme similaire à une autre plate-forme x86.
Pour un exemple complet d'analyse Bluetooth en code C avec BlueZ, consultez ce lien.
Veuillez consulter cet exemple pour l'analyse BLE
Et l'API HCI ici.