разобрать следующий пакет ibeacon - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь проанализировать этот пакет ibeacon, полученный сканированием через сокет hci

b'\x01\x03\x00\x18\xbe\x99m\xf3\x14\x1e\x02\x01\x1a\x1a\xffL\x00\x02\x15e\xec\xe2\x90\xc7\xdbM\xd0\xb8\x1aV\xa6-b 2\x00\x00\x00\x02\xc5\xcc'

шестнадцатеричный формат 01 03 00 18 be 99 6d f3 14 1e 02 01 1a 1a ff 4c 00 02 15 65 ec e2 90 c7 db 4d d0 b8 1a 56 a6 2d 62 20 32 00 00 00 02 c5 cc

параметры после применения синтаксического анализатора: 'UUID': '65ece290c7db4dd0b81a56a62d622032 ',' MAJOR ':' 0000 ',' MINOR ':' 0002 ',' TX ': -59,' RSSI ': -60 Я не уверен, верна ли часть RSSI этого анализа.

Ссылаясь на это https://stackoverflow.com/a/19040616/10355673, последний бит рекламного пакета маяка является значением мощности передачи.Итак, как мы можем получить значение RSSI?здесь я взял rssi равным cc и tx равным c5.Это правильно?

1 Ответ

0 голосов
/ 08 декабря 2018

Перед последовательностью рекламы производителя, показанной ниже, есть заголовки флагов, но вы действительно не заботитесь о флагах.Вот байты, которые вас интересуют:

 ff # manufacturee adv type
 4c 00 # apple Bluetooth company code
 02 15  # iBeacon type code
 65 ec e2 90 c7 db 4d d0 b8 1a 56 a6 2d 62 20 32 # proximity uuid
 00 00 # major 
 00 02 # minor
 c5 # measured power (tx power)
 cc # crc

Близость UUUD: 65ece290-c7db-4dd0-b81a-56a62d622032, Major: 0, Minor: 2, Измеренная мощность: -59 дБм

RSSI не является частью передаваемого пакета, а измерением, полученным приемником на основании уровня сигнала.Обычно это будет немного другое значение для каждого полученного пакета.Вы получаете это значение из API на мобильном устройстве или встроенной системе, которое извлекает его из чипа Bluetooth.

...