0

我正在尝试解析通过扫描 hci 套接字接收到的这个 ibeacon 数据包

b'\x01\x03\x00\x18\xbe\x99m\xf3\x14\x1e\x02\x01\x1a\x1a\xffL\x00\x02\x15e\xec\xe2\x90\xc7\xdbM\xd0\xb8\x1aV\xa6-b 2\x00\x00\x00\x02\xc5\xcc'

十六进制格式01 03 00 18 be 99 6d f3 14 1e 02 01 1a 1a ff 4c 00 02 15 65 ec e2 90 c7 db 4d d0 b8 1a 56 a6 2d 62 20 32 00 00 00 02 c5 cc

应用解析器后的参数是 'UUID': '65ece290c7db4dd0b81a56a62d622032', 'MAJOR': '0000', 'MINOR': '0002', 'TX': -59, 'RSSI': -60 我不确定是否此解析的 RSSI 部分是正确的。

参考这个https://stackoverflow.com/a/19040616/10355673 ,信标广告包的最后一位是 TX 功率值。那么我们如何获得 rssi 值呢?在这里,我将 rssi 设为 becc并将 tx 设为 be c5。这个对吗?

4

1 回答 1

1

在下面显示的制造商广告序列之前有标志标头,但您真的不关心标志。以下是您关心的字节:

 ff # manufacturee adv type
 4c 00 # apple Bluetooth company code
 02 15  # iBeacon type code
 65 ec e2 90 c7 db 4d d0 b8 1a 56 a6 2d 62 20 32 # proximity uuid
 00 00 # major 
 00 02 # minor
 c5 # measured power (tx power)
 cc # crc

接近 UUUD:65ece290-c7db-4dd0-b81a-56a62d622032,主要:0,次要:2,测量功率:-59 dBm

RSSI 不是传输数据包的一部分,而是接收器根据信号强度进行的测量。对于接收到的每个数据包,它通常是一个稍微不同的值。您可以从移动设备或嵌入式系统上的 API 获取此值,该 API 从蓝牙芯片中获取该值。

于 2018-12-08T04:08:14.173 回答