0

Я пытаюсь получить оценочный диапазон для устройства BLE, учитывая устройства RSSI и откалиброванную мощность передачи.Android BLE рекламный пакет iBeacon больше, чем ожидалось

Калиброванный txPower предположительно испускается как последний байт в рекламном пакете периферийных устройств iBeacon. Эти пакеты, согласно найденной документации, должны иметь длину 30 байт.

Однако возвращенный byte[] для пакета имеет длину 62 байта. Из-за этого формат рекламных данных неизвестен.

Почему это может произойти, и есть ли способ расшифровать формат 62-байтового пакета?

ответ

0

При сканировании устройств BLE API API возвращают не только байты для PDU необработанных объявлений, но также PDU ответа сканирования. Последние привязаны к концу первого в массиве байтов, возвращаемом API-интерфейсом сканирования.

По этой причине вы не можете надежно использовать отрицательное смещение от конца, если массив байтов для доступа к полям маяка. Использование положительного смещения с самого начала является более надежным, но даже это может потерпеть неудачу, если необычные PDU вставлены перед рекламным блоком рекламы производителя, который вам нужен.

Для надежности на 100% вы должны разобрать все блоки питания, найти рекламу производителя и посмотреть на байты. Я усвоил это с трудом, когда писал Android Beacon Library. Это с открытым исходным кодом, поэтому, даже если вы хотите запустить собственное сканирование, неплохо увидеть, как он это делает.

+0

Это странно. Есть ли более простой способ получить откалиброванный txPower периферийного устройства? Калиброванная константа - это все, что мне нужно от рекламы. – Orbit

+0

Вы должны получить константу из байтов рекламы. Более простым решением, чем разбор PDU, является поиск шаблона байта статического префикса iBeacon, а затем поиск константы калибровки на основе смещения оттуда. Недостатком такого подхода является то, что последовательность байтов может (случайно) также появляться в другом месте рекламы, в результате чего техника терпит неудачу. – davidgyoung

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

  • Нет связанных вопросов^_^