I'm new in programming Bluetooth low energy using BlueZ.
I want to develop a native code c to scan nearby devices using a BlueZ API for Bluetooth low energy on Intel Edison. I've seen this question, but the answer doesn't really help. Any advice?
I'm new in programming Bluetooth low energy using BlueZ.
I want to develop a native code c to scan nearby devices using a BlueZ API for Bluetooth low energy on Intel Edison. I've seen this question, but the answer doesn't really help. Any advice?
另一个答案的示例对我不起作用,它在扫描中停止...
下一个链接适用于 c 语言,但在转换包含 de 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 套接字的知识
在 Galileo 或 Edison 上使用 BlueZ 进行 BLE 编程类似于任何其他 x86 平台。
Edison(和 Galileo)通常预装了 BlueZ 库。你只需要用你的 C 代码链接它们,并且程序类似于其他 x86 平台。
有关使用 BlueZ 进行蓝牙扫描的完整C 代码示例,请参阅此链接。
还有这里的 HCI API 。
GattLib库(在提出此问题后创建)具有使用 C 扫描/连接到 BLE 设备的工具。
intel-edison scan.c 代码也适用于 Raspberry Pi。
它可以扫描连接到 arduino Uno 的 Adafruit BLE UART 朋友模块。
在 Pi 上,需要下载 bluez-5.33.tar.gz、libncurses-dev 和 libbluetooth-dev。
要编译 scan.c,请使用
gcc scan.c -lbluetooth -o 扫描