【发布时间】:2014-12-30 06:14:27
【问题描述】:
我是使用 BlueZ 编程低功耗蓝牙的新手。
我想开发一个本地代码 c,以使用英特尔 Edison 上的蓝牙低功耗 BlueZ API 扫描附近的设备。 我见过this question,但答案并没有真正帮助。有什么建议吗?
【问题讨论】:
标签: linux bluetooth-lowenergy bluez intel-edison
我是使用 BlueZ 编程低功耗蓝牙的新手。
我想开发一个本地代码 c,以使用英特尔 Edison 上的蓝牙低功耗 BlueZ API 扫描附近的设备。 我见过this question,但答案并没有真正帮助。有什么建议吗?
【问题讨论】:
标签: linux bluetooth-lowenergy bluez intel-edison
另一个答案的示例对我不起作用,它在扫描中停止...
下一个链接适用于 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]);
我通过查看 btmon 程序所在的 bluez-version/monitor/*.c 内部找到了这些。你可以看到数据类型和结构,hcidump.c 非常有用,packets.c 和main.c 也有,但是关于 hci 套接字还有很多要了解
【讨论】:
在 Galileo 或 Edison 上使用 BlueZ 进行 BLE 编程类似于任何其他 x86 平台。
Edison(和 Galileo)通常预装了 BlueZ 库。你只需要用你的C代码把它们链接起来,就可以像其他x86平台一样编程了。
完整的C code example bluetooth scan with BlueZ, see this link。
Please see this example for BLE scan
还有 HCI API here。
【讨论】:
hci_le_set_scan_parameter、please see this example for BLE scan
GattLib library(在提出此问题后创建)具有使用 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 扫描
【讨论】: