问题标签 [hci]
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.
linux - 未找到 hcidump 二进制文件
我正在使用 linux 3.3 的自定义系统上设置 BlueZ 协议栈。我正在使用 buildroot 来设置文件系统,特别是使用 BlueZ-4.101。
我正在尝试使用该hcidump
实用程序获取一些日志,但尚未安装二进制文件。
我已经检查过了:
- 设备驱动程序安装在内核中
- 在 buildroot .config 文件中启用了 BlueZ Utils
- 其他实用程序工作,例如
hcitool
或hciconfig
进入Makefile
inoutput/build/bluez_utils-4.101
会发现目标文件hcidump.o
正在被编译成一个名为btmon
.
进一步的调查会发现 in Makefile
,btmon
被分配给am__EXEEXT_10
,然后 that 被分配给变量noinst_PROGRAMS
。
所以这就是我所在的地方。我很确定这是Makefile
由 buildroot 自动生成的。我不确定这些文件是如何生成的,因此我不确定为什么btmon
将其分配给noinst_PROGRAMS
变量。
总之,我相信我的 BlueZ 版本使用二进制文件btmon
而不是hcidump
. btmon
已编译(二进制见于output/build/bluez_utils-4.101/monitor/btmon
),但由于Makefile
.
我最好的猜测是我的内核版本和 bluez 之间的兼容性有些奇怪。任何建议将不胜感激!
android - Enabling HCI Bluetooth snoop log programmatically
There is a well known way to enable HCI Bluetooth snoop log from Developer options UI.
Is there any way to achieve this programmatically?
bluetooth - 蓝牙 LE 主动扫描导致其他机器连接问题
我遇到了一个问题,即一台机器上的 BLE 主动扫描导致另一台机器上的连接问题。如果有人能解释原因,并提供有关如何解决的任何建议,我会更加痛苦。
我已经将我的代码所做的粗略版本分解为简单的脚本。
在机器 1 上:
以上将毫无问题地运行
但是,在另一台机器上运行以下命令后,我遇到了连接问题。
从 hci 日志中,正常的连接看起来像:
连接不良如下:
注意:最后两个条目(Invalid HCI Command Parameters)是由于脚本的粗糙,并且仅由于连接失败而发生。
值得注意的是,看起来连接已经建立,然后它说不能(无法建立连接)。这对我来说似乎有点令人困惑。
我在不同的机器上试过这个。(台式电脑和 RPi3)
linux - 使用 hcidump 获取 RSSI
为了读取原始 RSSI 值,我们使用了一个名为 Hcidump 的实用程序,它监控蓝牙 HCI 数据。使用 hcidump 命令,我们可以在收到查询响应消息时读取原始 RSSI 值。为了获得每个响应数据包的 RSSI 值,我们首先将查询模式设置为 Inquiry With RSSI。为了读取原始 RSSI 值,我们运行 hcidump 工具,然后使用适当的 HCI 函数开始定期查询。
我不知道如何使用 hcidump 仅获取 RSSI 原始数据,或者如何开始定期查询。我看到了所有的选项,但我做不到。
我制作 hcidump --raw 来获取原始数据,并尝试解析这些数据以获取 rssi,但我不知道 rssi 信息是哪个十六进制。
这是我得到的
现在我需要知道哪个是 RSSI 值。
c - 为什么在原始套接字上关闭/关闭后 read() 不返回?
我有一个线程,它在这样的循环中从原始 HCI 套接字读取消息:
该poll_end()
功能可以正常工作并按预期工作。它在收到 SIGINT 信号之前返回 0,之后返回 1。
在主线程中,我创建这样的套接字:
还有线程:
然后像这样(在主线程中)调用关闭一段时间后:
我假设 read() 应该在我调用 shutdown() 后返回,我在 L2CAP 套接字的不同线程中使用相同的方法并且它工作正常。但事实并非如此。我pthread_join(t_hci, NULL)
在主线程中的调用永远不会返回。
插座工作正常。我可以从中读取消息。我也尝试调用 close (我在线程结束后调用),但结果是一样的。
可能是什么问题,或者我的假设是错误的?
c - 将 HCI 命令写入 USB BT 加密狗
我的小项目是将 HCI 命令写入蓝牙 USB 加密狗并获得 HCI 命令的响应。
我可以如下打印我的 USB 蓝牙加密狗的所有端点地址(使用 libusb)。根据蓝牙系统主机控制接口[传输层]的规范,(2.1节)端点地址0x00
用于编写HCI命令。0x00
但我在我的蓝牙加密狗中找不到端点地址。
- 这是否意味着,我的蓝牙加密狗不支持发送 HCI 命令
- 如果是,是否有其他方法可以将 HCI 命令发送到我的蓝牙加密狗
bluetooth - BlueZ 哪一层得到蓝牙断开的原因
我正在使用 BlueZ 堆栈在智能手机(AG-音频网关)和嵌入式板(HF-Handsfree)之间进行蓝牙连接。
在 Bluez 的哪一层(HCI、L2CAP、RFCOMM)我们会得到蓝牙断开的原因。所以我们可以区分以下类型的断开:
- 智能手机 SIMPLE DISCONNECT,但手机的配对列表中仍有 HF Embedded 设备。
- 智能手机在蓝牙连接期间忘记 HF 设备。
- 由于 HF 设备超出智能手机蓝牙范围而断开连接
node.js - 无法从 hcidump --raw 输出获取信息
我正在尝试通过 nodeJs 和 Bluez 创建一个 BLE 扫描模块。我想学习如何从hcidump --raw
命令的输出中获取 mac 地址、次要、主要和 rssi 值。我查看了 Radius Networks ibeacon_scan 文件,但我仍然不知道如何使用 nodeJs 来做到这一点。任何人都可以帮助我吗?非常感谢
android - Android中的蓝牙通信流程
我正在尝试了解从蓝牙堆栈到 Android 蓝牙芯片的通信流程。我在这里找到了有关 Android 蓝牙的文档。但是,它没有详细描述通信,尤其是从蓝牙堆栈到芯片的通信。以下是我的问题:
与 BT 芯片及其流程的通信涉及哪些系统模块?
HCI 在上述流程中的作用是什么?
- HCI 是否执行与蓝牙芯片的实际通信(命令和数据传输)?还是只执行记录通信(HCISnoop 日志)。
如果有人可以就我的查询提供清晰的解释或链接,我将不胜感激。
提前致谢。
testing - 用于启用 BLE 广告的蓝牙 HCI 命令
我目前正在尝试编写一些测试脚本来获得蓝牙设备 fcc 认证。我一直在关注这两个网站http://processors.wiki.ti.com/index.php/CC256x_VS_HCI_Commands, http://processors.wiki.ti.com/index.php/WL18xx_Bluedroid_Bluetooth_RF_Testing。我一直在使用后者将前者的命令转换为 bluedroid 测试工具可以识别的测试。我在很大程度上取得了成功,但是我需要离开去打开 BLE 广告模式并且找不到方法来做到这一点。我使用的蓝牙芯片是松下的 Pan13xx。如果有人能指出我正确的方向,那就太棒了。
提前致谢。