2016-05-17 72 views
0

我发现了一些命令来模拟一个灯塔,他们工作正常,但我真的不明白他们。bluez命令采用哪种格式?

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 

这是怎么编码的?如果我想放一个字符串,例如。 9c4fca50-1c13-11e6-bdf4-0800200c9a66作为UUID在哪种形式我应该将其转换为获得这个'位'的几个?

回答

1

该命令指定以空格分隔的十六进制格式的数据字节。当你想一个字段转换为这种格式,你还必须知道它是否需要被表达“大端”(最显著字节在前)或“小端”(至少显著字节在前)。不同的领域有不同的排列顺序。大多数信标字段(如Proximity UUID)都是大端字节,但是一些较低层的蓝牙LE字段是小端字节。

接近UUID是很容易转换成由使用的BlueZ的格式,因为它的文字表达也以十六进制最显著的部分第一。因此,要将其转换为大端字节,只需将短划线去掉并添加空格即可。所以这个:

9c4fca50-1c13-11e6-bdf4-0800200c9a66 

变为这样:

9c 4f ca 50 1c 13 11 e6 bd f4 08 00 20 0c 9a 66 
+0

谢谢你,但什么是最小和最大间隔值的类型?例如,如果我想将传输设置为5Hz,值应该是多少? – user3235881

+0

对于配置的广告费,请参阅我的答案在这里:http://stackoverflow.com/a/21126744/1461050没有被指定的BlueZ的最小值和最大值,但你的系统中根本蓝牙LE芯片的限制。 – davidgyoung