Понимание вывода команды LE Read Advertising Physical Channel Tx Power - PullRequest
0 голосов
/ 26 апреля 2020

В последнее время я работаю над трансляцией рекламы BLE от Raspberry Pi. Обратите внимание, что большинство частей уже сделано, и я могу получить рекламное сообщение от другого Raspberry Pi. Единственное, что мне непонятно, так это то, как считывать уровень мощности передачи, чтобы можно было также отправлять информацию о мощности передачи.

Основываясь на спецификации Core (Раздел 7.8 Часть E, том 4), я узнал, что

sudo hcitool -i hci0 cmd 0x08 0x0007

- это команда для считывания уровня мощности передачи. Но я не могу понять значение вывода, которое равно

< HCI Command: ogf 0x08, ocf 0x0007, plen 0
> HCI Event: 0x0e plen 5
  01 07 20 00 0C

. В эти дни, играя с разными командами, я могу понять их часть. Например, plen, вероятно, означает длину параметра. 0x0e означает HCI_Command_Complete (Se c. 7.7.14, часть E, том 4). 07 в последней строке вводится ocf. Мой вопрос: означает ли 00, что команда выполнена успешно, а 0C показывает уровень мощности передачи? Или 0C это код ошибки команды запрещен?

Кроме того, я хотел бы знать, может ли кто-нибудь предоставить документ, объясняющий все значения кодов в выходном сообщении HCI Event.

Заранее большое спасибо.

Примечание: почему-то мой предыдущий вопрос был закрыт, сказав, что он принадлежит https://raspberrypi.stackexchange.com/ сайту. Но я думаю, что вопрос больше связан со стандартом Bluetooth и bluez. И я вижу много связанных вопросов на этом сайте. Пожалуйста, дайте мне знать, если я неправильно понимаю.

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Если вы запускаете «sudo btmon» в другом терминале во время выполнения тестовых команд, он должен декодировать все сообщения hci.

0 голосов
/ 28 апреля 2020

Чанг: в ответе вы видите

0x01 Событие запроса завершено, код события

0x07 Код операции 0x20 отправленной вами команды (после некоторого поворота OGF & OCF)

0x00 код состояния, 0x00 в порядке

0x0 C Уровень мощности передачи 0x0 C == 12 десятичных

, но теперь вопрос: Чанг сообщает о чтении 0x0 c дБм. на моем ящике я вижу 0x07 дБм.

Которые кажутся невероятно высокими значениями .... На сканере я получаю RSSI -49 дБм (с телефоном почти на вершине сияющего ноутбука - некоторые DELL Ubuntu с bluez)

При чтении 0x07 дБм мой сканер iBeacon показывает невероятное падение расстояния 179526552,90 м: -)

Любые идеи, почему hcitool / bluez / Ubuntu вернет плохое значение LE Чтение рекламы Физический канал Команда Tx Power?

...