2014-11-03 2 views
8

Я новичок в программировании низкой энергии Bluetooth с использованием BlueZ.Как выполнить низкоэнергетическое сканирование bluetooth через библиотеку BlueZ C

Я хочу разработать собственный код c для сканирования ближайших устройств с использованием BlueZ API для низкой энергии Bluetooth на Intel Edison. Я видел this question, но ответ действительно не помогает. Любой совет?

ответ

7

Программирование BLE с BlueZ на Galileo или Edison аналогично любой другой платформе x86.

Эдисон (и Galileo) обычно поставляется с предварительно установленными библиотеками BlueZ. Вам просто нужно связать их с кодом C и запрограммировать аналогично другой платформе x86.

Полный текст C code example bluetooth scan with BlueZ, see this link.

Please see this example for BLE scan

И HCI API here.

+0

Я видел этот пример кода. Он работает, но он не сканирует устройства BLE - только обычные. – Longes

+0

@ Longes Для BLE вам необходимо установить 'hci_le_set_scan_parameter', [см. Этот пример для сканирования BLE] (https://github.com/carsonmcdonald/bluez-experiments/blob/master/experiments/scantest.c) – ashoke

+0

Пример BLE зависит от ncurses, для тестирования я изменил его как чистое консольное приложение. Кроме того, вам нужно запустить его с помощью sudo. – prmottajr

8

Пример другого ответа не работает для меня, он останавливается в Scanning ...

Следующая ссылка работает для языка C, но имеет ошибку при забросе байт, которые имеют информацию о де RSSI сигнал. https://github.com/glock45/intel-edison-playground/blob/master/scan.c

этой линии 121:

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

должно быть:

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

Я нашел их, глядя в bluez-version/monitor/*.c, где btmon программа есть. Вы можете увидеть типы данных и структуры, hcidump.c является очень полезным и packets.c и main.c тоже, но есть много, чтобы узнать о HCI гнезд

+0

Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Kmeixner

0

Код scan.c Intel-Edison также работает на Raspberry Pi.

Он работает, чтобы отсканировать модуль друзей Adafruit BLE UART, подключенный к ардуино Uno.

На Pi необходимо загрузить bluez-5.33.tar.gz, libncurses-dev и libbluetooth-dev.

Для компиляции scan.c используйте

НКУ scan.c -lbluetooth -o сканирования

Смежные вопросы