【问题标题】:Connecting to Bluetooth LE devices from raspberry pi using Bluez libraries in C language使用 C 语言中的 Bluez 库从树莓派连接到蓝牙 LE 设备
【发布时间】:2015-06-22 14:59:57
【问题描述】:

我正在使用我的树莓派以固定的时间间隔执行 LEScan 并连接到新发现的 BLE 设备。 执行一般扫描很容易,可以使用 bluez 库轻松完成。 http://people.csail.mit.edu/albert/bluez-intro/x45.html

但我不知道如何使用 C 语言中的蓝牙编程来执行 LE 扫描。

我必须找到新的 BLE 设备,连接到它们并从连接的设备接收 json 数据。

【问题讨论】:

  • 看看hcitool.c in bluez sources 扫描BLE设备。
  • 请使用 DBus API,省去所有 hcitool 和 gattool 的麻烦。如果您的设备支持 DBus,您应该使用它。它就像调用 StartDiscovery() 一样简单。 bluetoothctl 工具就是一个很好的例子。您可以在 client 文件夹中的 Bluez 源代码中找到源代码;它被称为main.c

标签: c raspberry-pi bluetooth-lowenergy bluez


【解决方案1】:

要编写 C 程序来扫描 BLE 设备,您可以查看 BlueZ hcitool 来源。

要连接到 BLE 设备并与 GATT 协议交互,您可以使用 Bluez v5.x 中的实验性 DBUS Bluez API(推荐使用 v5.39+)或使用像 'gattlib' 这样的库。

【讨论】:

    【解决方案2】:

    您指向的链接是经典蓝牙;对于 BLE lescan go

    通过链接中的scantest.c

    https://github.com/carsonmcdonald/bluez-experiments/tree/master/experiments

    【讨论】:

    • 该链接还包含 BLE 设备的代码,请查找 hci_le_* 函数。
    猜你喜欢
    • 1970-01-01
    • 2023-03-22
    • 2018-12-31
    • 2013-04-09
    • 2014-10-04
    • 2015-06-08
    • 2013-12-06
    • 2014-12-05
    • 2018-11-16
    相关资源
    最近更新 更多