问题标签 [bluez]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
579 浏览

ubuntu - 如何控制 BT 堆栈中的 LMP 消息?

我正在为蓝牙(经典而不是 BLE)进行测试设置。我正在研究的一种情况是自适应跳频 (AFH) 不起作用时,即 BT 继续希望在 79 个可用信道上,而不管当前是否存在干扰。应该使用以下命令关闭 AFH:

当 hciconfig 查询时,此命令成功将 AFH 模式的状态设置为“已禁用”,但这里出现了我的问题:在链路设置阶段传输的 LMP_set_AFH 消息将 AFH_mode PDU 设置为“启用”,即使我之前禁用了它到链接设置开始。根据标准,我需要此消息包含“已禁用”的 AFH_mode PDU。

我的问题如下:有没有办法控制协议栈的 LMP 部分?我相信我的问题的解决方案就在那里。我愿意接受任何可以帮助我做到这一点的工具、编程语言等。

0 投票
4 回答
28299 浏览

android - BlueZ vs Bluedroid bluetooth stack

BlueZ have a lot of documentations and all. And from the same, i understood BlueZ supports A2DP sink support. And at the same time an android device can be made act as an A2DP sink by modifying the audio.conf file inside the same.

I also came to know that from android 4.2 onwards, the BlueZ stack was replaced by Broadcom's Bluedroid stack. I searched a lot about Bluedroid stack. But i was not able to find much details about the same.

Hope someone can help me with the following doubts.

1). Whether Bluedroid have A2DP sink support?

2). Whether the audio.conf file will be available for devices having bluedroid stack?

3). I am going to write an A2DP sink support for an android device by directly calling API's of BlueZ stack. But my final question is whether the same can be used with Bluedroid stack also? Hope Bluedroid is just an expansion of BlueZ.

Please help.

0 投票
2 回答
28320 浏览

linux - Bluez:广告服务/gatt 服务器示例?

目标

我正在开发一个运行 Linux 的简单设备。它支持 BLE,我目前使用的是 bluez 5.8。

我想使用 iPhone 在此设备上触发操作。

什么已经有效:

  • 我可以让 iPhone “看到”设备。
  • iPhone 也连接到该设备。

我在linux上设置了这样的蓝牙设备(感谢这个问题):

iOS 代码很简单:

在 iPhone 上运行此代码时,我得到以下日志:

所以看起来 iPhone 连接正常,但没有看到任何服务。

我错过了什么

  • 我需要宣传一个简单的 BLE服务,但我在 bluez 中找不到任何有关如何执行此操作的文档。
  • 我想我需要像 gatt-server 这样的东西来接收我要宣传的服务的读/写特征。我在 bluez 中看到了 plugins/gatt-example.c 文件,但我完全不知道如何使用它:没有文档。

我可能应该提到我看到了这个问题:Creating a gatt server,但是答案提出了太多问题(例如,bluez 的 GATT api 在哪里?如何设置 GATT 数据库?如何注册读/写事件? )

编辑:我使用的命令仅设置 BLE 设备以宣传一些数据,但 iOS 报告连接被接受。bluez 的哪个部分接受传入连接?

0 投票
1 回答
2680 浏览

android - Kit Kat 中的 Android BT 堆栈

我想知道是否有其他人遇到与其他设备的 L2CAP 连接问题。我有一台在 Android 4.1 下运行良好的设备,但现在我使用的是 Kit Kat,它不再工作了。我可以在具有特定服务名称属性的 BT 套接字上侦听,以使设备可以发现电话,但这不再有效。

我的想法是添加 Bluedroid 和删除 Bluez 堆栈。BLE 运行良好,但我失去了经典的 BT 功能。我已经用 BT 调试方式重建了 OS 映像,我可以看到一个奇怪的事件,它似乎试图通过 BLE 连接 L2CAP,即使设备不是 BLE。基本上有很多 ATT 和 GATT 调用,我认为经典的 BT 设备不应该发生这些调用。我也尝试过删除 BLE 功能并重建堆栈,但这并没有解决问题,这似乎表明 L2CAP over BT 根本不受支持(基本上它有相同的问题,即不连接但没有GATT/ATT 通话)。关于经典 BT 的 Bluedroid 中是否存在 L2CAP 功能的任何想法?有没有办法替换堆栈或使用更新版本的 Bluez(支持 BLE)?非常感谢任何帮助或想法。

谢谢

0 投票
1 回答
22660 浏览

linux - 有没有办法增加 BlueZ 中的 BLE 广告频率?

我有一台使用以下命令广播 BLE 广告的 linux 计算机:

这很好用,但计算机每秒只广播一次它的蓝牙广告。我想将此频率提高到每秒 10 次或更多。有没有办法增加 BlueZ 的广告频率?还是每秒一次是标准且不可更改的?如果无法使用命令行工具,我很乐意使用 C API 来做到这一点。

0 投票
1 回答
1145 浏览

bluetooth - 通过 bluez 浏览文件

我想在 Linux 中创建一个可以浏览蓝牙手机中的文件并最终检索它们的应用程序。我一直在阅读和搜索,似乎这样做的方法是通过 DBus 与 Bluez 通信。

但是似乎没有用于与文件交互的 DBus 方法。因此,我是否需要使用 obex 协议来代替?我在这里很迷茫。谢谢

0 投票
2 回答
3640 浏览

bluetooth - Raspberry Pi 蓝牙 LE 连接到 RedBearLab shield

我正在尝试从 RaspPi 连接到 RedBearLab BLE shield。我正在使用 带有 Raspbian OS Bluez-5.11 的CSR4.0 USB 加密狗http://www.adafruit.com/products/1327 Raspberry Pi Rev-B 板

我将 RedBearLab BLE 屏蔽连接到 Arduino UNO R3。我正在尝试从 RaspPi(附加 CSR4.0)连接到屏蔽。但它无法连接 - 连接尝试超时/资源繁忙。

下面我使用的步骤

无法创建连接:连接超时

使用 gatttool 也不能解决问题

非常感谢!

0 投票
1 回答
5925 浏览

bluetooth - 低功耗蓝牙:读取/写入连接到 RedBearLab Shield 的传感器

我将 RedBearLab BLE 屏蔽连接到 Arduino UNO R3。我可以使用 Rasp-Pi(附加的 CSR4.0 加密狗)中的 gatttool 连接到它。我有一些传感器(FSR)连接到模拟引脚,LED 连接到 Arduino 中的数字引脚。我的目标是读/写任何通过 BLE 连接到 Arduino 的东西。

作为示例,我正在查看此链接。看来我需要知道传感器的句柄、配置寄存器#等才能读/写。但我不确定如何找到与连接到屏蔽的传感器相关的句柄/uuid。

例如,我在下面看到。

我怎么知道哪一个是我贴在盾牌上的 FSR?

更新

我正在使用 RedBearLab 示例 - simplecontrol

所以 Arduino 和 iOS/Android 代码都在那里。我的目标是从 gatttool 的角度理解,这样我就可以在 Raspberry Pi 上运行的 Java 中开发类似的(iOS/Android)。

从代码中,我可以弄清楚要写哪个地址。例如 - 打开连接到数字输出引脚的 LED,如下工作

字符写入命令 0x000b 010100

同样,要打开传感器读取功能,我需要在下面写

字符写入命令 0x000b A00100

我知道这行得通。我在 Arduino 串行监视器中看到了预期的输出。我很确定它正在读取传感器,但我在 RaspPi 提示中看不到它。我想我需要在 RaspPi 端启用广播阅读功能。

有什么建议吗?

0 投票
3 回答
17375 浏览

linux - 低功耗蓝牙:使用 BlueZ 堆栈作为外围设备(具有自定义服务和特性)

我正在尝试在 Linux 机器上使用 BlueZ 堆栈来创建具有自定义服务和特性的 GATT 服务器。最终目标是使用任何中心设备(例如 iOS 或 Android 设备)连接到 GATT 服务器,发现服务和特征,并操作特征中的数据。

例子:

  • 具有 1 个服务的外设,其中包含 3 个特征。
  • 服务 uuid = 0xFFFF
  • 字符 1 uuid = 0xAAAA,属性 = 可读
  • Char 2 uuid = 0xBBBB,属性 = 可读和可写
  • 字符 3 uuid = 0xCCCC,属性 = 可通知

从中央设备,我应该看到外围设备,连接到它并发现一个具有三个特征(0xAAAA、0xBBBB、0xCCCC)的服务(0xFFFF)。然后我应该能够读取 0xAAAA 的值,读取和写入 0xBBBB 的值,并在 0xCCCC 上启用通知。

请注意,我知道存在类似的问题,但它仅说明了如何将外围设备用作广告商。另一个已解决的问题解释了如何创建 GATT 服务器,但没有解释如何使用特性的属性(例如可读性、可通知性等),或者我可能遗漏了一些东西。

先感谢您。

0 投票
0 回答
659 浏览

android - 连接到 BLE 加密狗时,Android BLE 配对失败

当我尝试将 Android 4.4.2 智能手机与连接到 ArchLinux 操作系统(在 VirtualBox 上运行)的 BLE 加密狗配对时,我遇到了问题。

到目前为止我做了什么:

编写一个 Android 应用程序(GATT 服务器,中心角色)...

  1. 扫描附近的设备
  2. 让用户从找到的设备中选择一个
  3. 通过调用打开 Gatt 服务器BluetoothManager.openGattServer(context, gattServerCallback);
  4. 最后通过调用连接到所选设备BluetoothGattServer.connect(device, false);

要配置 BLE 加密狗(GATT 客户端,外围角色),我使用的是 BlueZ 5。具体而言,我在终端上输入以下命令:

  1. systemctl start bluetooth
  2. hciconfig hci0 up
  3. hciconfig hci0 leadv

不知何故,配对失败。以下是 LogCat 的一些片段:

稍后当我希望获得超过 10 个声望时,我会添加 LogCat 日志的图片;-)

知道配对失败的原因吗?

提前致谢!