Bluetooth 蓝牙LE广告包格式不';与蓝牙规范不匹配

Bluetooth 蓝牙LE广告包格式不';与蓝牙规范不匹配,bluetooth,bluetooth-lowenergy,Bluetooth,Bluetooth Lowenergy,我正试图用我的树莓圆周率连接到蓝牙人体秤上。因为我无法连接到它,无论我使用python bluepy还是Gattool,我都试图获取更多信息并阅读sudo hcitool lescan(重复)和sudo hcidump(原始)的广告包。我从Bluetooth.com下载了4.0到5.1版本的蓝牙核心规范。但是我从hcidump获得的数据与蓝牙规范不完全匹配。我试过其他设备,iPhone7、索尼WH-1000MX3和OculusQuest。它们都发送LE数据包,但都是(在我看来)非标准数据包格式。

我正试图用我的树莓圆周率连接到蓝牙人体秤上。因为我无法连接到它,无论我使用python bluepy还是Gattool,我都试图获取更多信息并阅读sudo hcitool lescan(重复)和sudo hcidump(原始)的广告包。我从Bluetooth.com下载了4.0到5.1版本的蓝牙核心规范。但是我从hcidump获得的数据与蓝牙规范不完全匹配。我试过其他设备,iPhone7、索尼WH-1000MX3和OculusQuest。它们都发送LE数据包,但都是(在我看来)非标准数据包格式。 这是我从磅秤收到的数据包(mac a0:91:53:e2:58:db): 04 3E 2B 02 01 03 00 DB 58 E2 53 91 A0 1F 02 01 04 03 B0 FF 0F FF AC A0 DB 58 E2 53 91 A0 A2 AD A0 A3 06 B8 07 09 41

首先,我不明白的是序言04。我所有的设备都使用这个。但该规范规定,广告包的前导码应为0xAA。甚至数据包也应该有0xAA或0x55。但从来没有0x04。接下来是访问地址。对于广告,应为0x8E89BED6,但我的设备中没有一台使用此选项。我也不会将PDU标题卸下。长度是0。有效负载几乎与规范匹配,但硬件地址(1F)后有一个字节不应该存在。正如我所说,我的所有设备都使用这种格式(“错误的”前导、访问地址、PDU头、有效负载中的附加字节)。有些设备只有一个字节的CRC。所以我想知道我是否完全理解错了什么。有人能解释一下这些是什么类型的软件包,或者为什么它们不符合规范吗


您在hcitool中看到的是HCI编码的数据包,而不是原始链路层数据包

0x04是hci事件数据包的hci数据包指示符。 剩下的是一个LE广告报道活动


地址前的两个位置0x03表示ADV_noncn_IND,这意味着设备当前不接受连接。也许您的电子秤上有一个按钮或一些您需要先按下的东西,以使其可连接。

谢谢。我现在看清楚了一点。不幸的是,scale(Insmart)没有按钮。也许我得发个广告让秤接受连接。这可能吗?我认为这有点偏离了问题的主题。我应该为此开始一个新的问题吗?试着从制造商那里找到文档。否则我们只能猜测。