我使用此代码启动传输速率为10hz的ibacon。
sudo hciconfig hci0 up
sudo hcitool -i hci0 cmd 0x08 0x0008 1e 02 01 1a 1a ff 4c 00 02 15 e2 c5 6d b5 df fb 48 d2 b0 60 d0 f5 a7 10 96 e0 00 00 00 00 c5 00 00 00 00 00 00 00 00 00 00 00 00 00
sudo hcitool -i hci0 cmd 0x08 0x0006 A0 00 A0 00 03 00 00 00 00 00 00 00 00 07 00
sudo hcitool -i hci0 cmd 0x08 0x000a 01
最小值和最大值是小端吗?我想确定这个值是我的命令是正确的。
sudo hcitool -i hci0 cmd 0x08 0x0006 50 00 50 00 03 00 00 00 00 00 00 00 00 07 00
此命令会将传输速率更改为5Hz吗?这个速率的最佳扫描周期是400ms?
答案 0 :(得分:0)
最小值和最大值是小端,是的。所以在这个命令中:
sudo hcitool -i hci0 cmd 0x08 0x0006 50 00 50 00 03 00 00 00 00 00 00 00 00 07 00
前两个字节50 00
将最小间隔设置为0x0050(十进制80),其粒度为0.625 ms,转换为80x0.625 = 50.0 ms。后两个字节也将最大间隔设置为50.0 ms。要转换为Hz,请采用间隔1 /(0.050秒)= 20 Hz的倒数。
你说你想要5赫兹,这是每1 /(5赫兹)= 0.2秒= 200毫秒的一个广告。在0.625毫秒的粒度下,即200 / 0.625 = 320 = 0x0140。表示为小端,这是0x40 0x01。所以要以5 Hz的频率做广告,请执行:
sudo hcitool -i hci0 cmd 0x08 0x0006 40 01 40 01 03 00 00 00 00 00 00 00 00 07 00
您的蓝牙芯片可能或许多不支持此速率。你将不得不尝试看看。如果它不支持它,你可能不会得到任何错误,它只会以最接近的支持率进行广告宣传。
如果您使用Android Beacon Library或其他允许您配置扫描间隔的库来扫描此广告,则默认扫描间隔约为1.0秒将正常工作。