在 linux 命令行中使用蓝牙低功耗

Posted

技术标签:

【中文标题】在 linux 命令行中使用蓝牙低功耗【英文标题】:Using Bluetooth low energy in linux command line 【发布时间】:2013-07-24 00:21:40 【问题描述】:

我正在研究在 Linux 上使用蓝牙低功耗调制解调器。我正在为此使用命令行选项,即 hcitool 。我可以使用以下命令找到设备:$ hcitool scan

它对我来说工作正常,我也可以使用以下方式广播我的设备:

 sudo hciconfig hci0 leadv

它也运行良好。但是我想将服务和特性添加到其他设备可以检测到的调制解调器设备中。我试过sdptool add,但它不适合我。有谁知道如何使用 ubuntu 中的命令行工具将服务和特性添加到外围设备?

编辑:我的调制解调器正在广播,但无法探索其他 BLE 设备的服务和特性。现在我可以使用hcio name command设置设备名称了

编辑: 现在我可以通过同时运行sudo hcidump 命令来呈现服务和特征。但我无法追踪我从哪里获得这些服务和特征。一个明确的观察结果是这些服务是从机器提供的。

【问题讨论】:

我不确定 Bluez 中是否有任何东西可以模拟 GATT 服务器。 (我过去找过,没找到)SDP 是普通的非 LE 蓝牙,所以不存在。 【参考方案1】:

BLE 中不存在 SDP。改为使用广播/广告帧和 GATT 客户端/服务器。

几个链接:

BlueZ gatttool: command line tool to run common GATT procedures BlueZ GATT's ready profiles hint: DBUS GATT and DBUS example How can I connect to the FitBit Zip over Bluetooth 4.0 LE on Linux with bluez? Bluetooth Low Energy: listening for notifications/indications in linux http://comments.gmane.org/gmane.linux.bluez.kernel/29547

【讨论】:

简单介绍:imd.uni-rostock.de/ma/gol/lectures/embedded/Literatur/… chapters.comsoc.org/vancouver/BTLER3.pdf glynstore.com/content/docs/bluegiga/BLE_getting_started.pdf 记得区分蓝牙经典、单模(Bluetooth Smart,即LE)和双模(Smart Ready)设备。 另一个相关的:i-miss-erin.blogspot.com/2010/12/gatt-related-dbus-api.html 和 i-miss-erin.blogspot.com/2010/12/… GATT 定义:developer.bluetooth.org/gatt/Pages/default.aspx 要跟踪特征,如果允许,您必须在特征配置中打开通知或指示标志。 ***.com/questions/15657007/… 让我们注意交换了 2 个字节的特征(Big/Little Endian 问题)。【参考方案2】:

我曾经关注这个article来广播BT服务。该页面不仅向您展示了如何宣传配置文件,还为您提供了如何实施 HSP 配置文件的示例。

要知道你需要宣布的bt类,你可以查看其他page。

【讨论】:

我认为所有这些仅适用于标准蓝牙,不适用于 LE。 这不适用于低功耗蓝牙,它适用于标准蓝牙,正如 Tim 所说。 SDP 以及所有在 BLE 中作为 GATT 实现的东西。

以上是关于在 linux 命令行中使用蓝牙低功耗的主要内容,如果未能解决你的问题,请参考以下文章

使用 hcitool 扫描蓝牙低功耗?

OS X 10.11 El Capitan 上的蓝牙低功耗延迟/延迟

BLE低功耗蓝牙的广播内容

[BlueZ] 2使用bluetoothctl搜索连接配对读写使能notify蓝牙低功耗设备

蓝牙低功耗设备是不是支持与经典蓝牙相同的接口?

低功耗蓝牙Ble的详细使用流程