Contoh pada jawaban lain tidak berfungsi untuk saya, berhenti di Memindai...
Tautan berikutnya berfungsi untuk bahasa c, tetapi mengalami kesalahan saat mentransmisikan byte yang memiliki informasi tentang sinyal rssi.https://github.com/glock45/intel-edison-playground/blob/master/scan.c
baris 121 ini:
printf("%s - RSSI %d\n", addr, (**char**)info->data[info->length]);
seharusnya:
printf("%s - RSSI %d\n", addr, (**int8_t**)info->data[info->length]);
Saya menemukan ini dengan melihat ke dalam bluez-version/monitor/*.c
, di mana program btmon berada. Anda dapat melihat tipe data dan struct, hcidump.c
sangat berguna dan packets.c
, dan main.c
juga, tetapi ada banyak hal yang perlu dipelajari tentang soket hci
Pemrograman BLE dengan BlueZ di Galileo atau Edison mirip dengan platform x86 lainnya.
Edison (dan Galileo) biasanya dilengkapi dengan pustaka BlueZ yang sudah diinstal sebelumnya. Anda hanya perlu menautkannya dengan kode C Anda, dan program serupa dengan platform x86 lainnya.
Untuk contoh kode C lengkap pemindaian bluetooth dengan BlueZ, lihat tautan ini.
Silakan lihat contoh ini untuk pemindaian BLE
Dan API HCI di sini.