2014-11-03 22 views

risposta

7

La programmazione BLE con BlueZ su Galileo o Edison è simile a qualsiasi altra piattaforma x86.

Edison (e Galileo) di solito viene fornito con le librerie BlueZ preinstallate. Hai solo bisogno di collegarti con loro con il tuo codice C e programmare in modo simile ad altre piattaforme x86.

Per un intero C code example bluetooth scan with BlueZ, see this link.

Please see this example for BLE scan

E HCI API here.

+0

Ho visto questo esempio di codice. Funziona, ma non esegue la scansione dei dispositivi BLE, solo quelli normali. – Longes

+0

@Lunghe Per BLE è necessario impostare 'hci_le_set_scan_parameter', [vedere questo esempio per scansione BLE] (https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c) – ashoke

+0

L'esempio BLE dipende da ncurses, per i test, l'ho modificato per essere un'applicazione di console pura. Inoltre, devi eseguirlo con sudo. – prmottajr

8

L'esempio d'altra risposta non funziona per me, si ferma in Scanning ...

Il link seguente funziona per il linguaggio C, ma ha un errore in fase di lancio i byte che hanno le informazioni su de RSSI segnale. https://github.com/glock45/intel-edison-playground/blob/master/scan.c

questa linea 121:

printf("%s - RSSI %d\n", addr, (**char**)info->data[info->length]); 

dovrebbe essere:

printf("%s - RSSI %d\n", addr, (**int8_t**)info->data[info->length]); 

ho trovato queste, cercando all'interno bluez-version/monitor/*.c, dove il programma è btmon. È possibile vedere i tipi di dati e le strutture, hcidump.c è molto utile e packets.c, e main.c troppo, ma ci sono molti di conoscere le prese di HCI

+0

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il link per riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. – Kmeixner

0

Il codice scan.c intel-Edison funziona anche su Raspberry Pi.

Funziona per cercare il modulo amico Adafruit BLE UART collegato all'arduino Uno.

Sul Pi, è necessario scaricare il file bluez-5.33.tar.gz, libncurses-dev e il libbluetooth-dev.

Per compilare scan.c, utilizzare

gcc scan.c -lbluetooth -o scansione

Problemi correlati