最近,我正在从树莓派广播BLE广告。请注意,大部分部分已经完成,我可以收到来自另一个树莓派的广告消息。我唯一不清楚的是如何读取TX功率电平,因此也可以发送TX功率信息。
根据Core Specification ( 7.8部分E,第4卷),我了解到
sudo hcitool -i hci0 cmd 0x08 0x0007是读取TX功率电平的命令。但是我不能理解输出的含义,即
< HCI Command: ogf 0x08, ocf 0x0007, plen 0
> HCI Event: 0x0e plen 5
01 07 20 00 0C在这些日子里玩不同的命令,我可以理解其中的一部分。例如,plen可能表示参数长度。0x0e是指HCI_Command_Complete (安全7.7.14,E部,第4卷)。最后一行中的07是输入ocf。我的问题是:00是否意味着命令成功,并且0C给出了发射功率级别?或者0C是不允许命令的错误代码?
此外,我想知道是否有人可以提供一份文档,解释输出消息HCI Event中代码的所有含义。
非常感谢你提前这么做。
注意:不知怎么的,我之前的问题结束了,说它属于https://raspberrypi.stackexchange.com/站点。但我认为这个问题更多地与蓝牙标准和bluez有关。我确实在这个网站上看到了很多相关的问题。如果我理解错了,请告诉我。
发布于 2020-04-26 16:23:18
如果您在运行测试命令的同时在另一个终端上运行"sudo btmon“,它应该会解码所有的hci消息。
发布于 2020-04-28 14:19:36
张:你在回复中看到的是
0x01查询完成事件,事件代码
您发送的命令的0x07 0x20操作码(在对OGF和OCF进行了一些调整之后)
0x00状态码,0x00正常
0x0C TX电源电平0x0C == 12十进制
但现在有一个问题:常报告的读数为0x0c dBm。在我的盒子上,我看到0x07 dBm。
这两个似乎都是令人难以置信的高价值...在扫描仪上,我得到的RSSI值为-49 dBm (手机几乎放在光亮的笔记本电脑的顶部-一些带有bluez的戴尔Ubuntu )
根据0x07 dBm的读数,我的iBeacon扫描仪显示令人难以置信的距离下降179526552.90 m :-)
你知道为什么hcitool/bluez/Ubuntu会返回一个错误的值给LE Read Advertising Physical Channel Tx Power命令吗?
https://stackoverflow.com/questions/61433740
复制相似问题