首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用hcidump获取RSSI

使用hcidump获取RSSI
EN

Stack Overflow用户
提问于 2016-05-06 20:37:58
回答 2查看 3.3K关注 0票数 1

为了读取原始的RSSI值,我们使用了一个名为Hcidump的实用程序,它监视蓝牙HCI数据。使用hcidump命令,我们可以在收到查询响应消息时读取原始RSSI值。要获得每个响应数据包的RSSI值,我们首先将查询模式设置为使用RSSI.In查询。要读取原始的RSSI值,我们运行hcidump工具,然后使用适当的HCI函数开始定期查询。

我不知道如何使用hcidump来仅获取RSSI原始数据,或者如何启动定期查询。我看到了所有的作品,但我不能。

我创建了hcidump --raw来获取原始数据,并尝试解析这些数据以获得rssi,但我不知道哪个十六进制是rssi信息。

这就是我所得到的

代码语言:javascript
复制
  04 2F FF 01 AC A2 65 92 88 EC 01 00 0C 02 5A 2D 1F D2 08 09 
  4E 65 78 75 73 20 36 17 03 05 11 0A 11 0C 11 0E 11 12 11 15 
  11 16 11 1F 11 2F 11 00 12 32 11 01 05 01 07 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

现在我需要知道哪个是RSSI值。

EN

回答 2

Stack Overflow用户

发布于 2017-05-08 13:36:16

您可以尝试使用sudo hcidump [-a],这将获得附近所有蓝牙的名称和RSSI值,devices.you可以检查您可以使用here做什么。

票数 2
EN

Stack Overflow用户

发布于 2016-07-28 05:01:21

我们可以通过检查hcidump工具背后的源代码来解决这个问题。它是官方的Linux蓝牙协议栈BlueZ的一部分。您可以下载BlueZ源代码here,以进行后续操作。如果您打开源代码并进入lib/文件夹,您可以找到hci.h,其中包含BlueZ函数的结构定义。否则,您可以查看Linux系统的头文件。路径应该类似于:/usr/include/bluetooth/hci.h。在这个头文件中,您将找到BlueZ的HCI功能的所有结构定义。具体地说,您可以找到inquiry_info_with_rssi的结构定义。头文件只有几千行长,因此搜索头文件比试图查看它更好。通过查看此结构和下面的#define,您可以看到该结构的大小为14字节。RSSI值是结构的最后一个成员,而且只有1个字节,所以它应该是您计算的第14个字节。

代码语言:javascript
复制
typedef struct {
bdaddr_t    bdaddr;
uint8_t     pscan_rep_mode;
uint8_t     pscan_period_mode;
uint8_t     dev_class[3];
uint16_t    clock_offset;
int8_t      rssi;
} __attribute__ ((packed)) inquiry_info_with_rssi;
#define INQUIRY_INFO_WITH_RSSI_SIZE 14

有趣的是,__attribute__ ((packed))是一个编译器预处理器,它指示它不要填充结构,因此14字节的大小是有保证的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37073114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档