2016-05-17 2 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 

Как кодируются эти nubers? Если я хочу поместить строку, например. 9c4fca50-1c13-11e6-bdf4-0800200c9a66 как UUID, в какой форме я должен преобразовать его, чтобы получить эту пару «бит»?

ответ

1

Команды определяют байты данных в шестнадцатеричном формате, разделенные пробелами. Если вы хотите преобразовать поле в этот формат, вы также должны знать, нужно ли его выражать «большой конец» (сначала старший байт) или «маленький конец» (младший старший байт). Различные поля имеют различную сущность. Большинство маяковых полей (например, Proximity UUID) являются большими, но некоторые низкоуровневые поля Bluetooth LE немного ориентированы.

A Proximity UUID легко преобразовать в формат, используемый BlueZ, потому что это текстовое выражение также в шестнадцатеричном виде с наиболее значимыми частями в первую очередь. Поэтому, чтобы преобразовать его в байты с большим энтиантом, вам просто нужно вычеркнуть тире и добавить пробелы. Так что это:

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

Становится это:

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

Спасибо, но что тип минимального и максимального интервала значений? Какими должны быть значения, если, например, я хочу установить передачу с частотой 5 Гц? – user3235881

+0

Для настройки ставки рекламы см. Мой ответ здесь: http://stackoverflow.com/a/21126744/1461050 Значения min и max не заданы BlueZ, но являются пределами вашей базовой чипы Bluetooth LE в вашей системе. – davidgyoung

Смежные вопросы