Я пытаюсь получить оценочный диапазон для устройства BLE, учитывая устройства RSSI и откалиброванную мощность передачи.Android BLE рекламный пакет iBeacon больше, чем ожидалось
Калиброванный txPower предположительно испускается как последний байт в рекламном пакете периферийных устройств iBeacon. Эти пакеты, согласно найденной документации, должны иметь длину 30 байт.
Однако возвращенный byte[]
для пакета имеет длину 62 байта. Из-за этого формат рекламных данных неизвестен.
Почему это может произойти, и есть ли способ расшифровать формат 62-байтового пакета?
Это странно. Есть ли более простой способ получить откалиброванный txPower периферийного устройства? Калиброванная константа - это все, что мне нужно от рекламы. – Orbit
Вы должны получить константу из байтов рекламы. Более простым решением, чем разбор PDU, является поиск шаблона байта статического префикса iBeacon, а затем поиск константы калибровки на основе смещения оттуда. Недостатком такого подхода является то, что последовательность байтов может (случайно) также появляться в другом месте рекламы, в результате чего техника терпит неудачу. – davidgyoung