Как мы адаптировались для работы с внутренней навигацией в карантине

Всем привет! Я из команды Navigine. В течение восьми лет мы предоставляем интегрированные мобильные технологии позиционирования, которые позволяют использовать передовые решения для внутренней навигации и бесконтактных решений. Сегодня мы хотим рассказать вам об обходных путях, которые нам пришлось придумать, чтобы улучшить тестирование внутренней навигации без использования маяков и других устройств, излучающих нужные нам сигналы. Давайте углубимся и узнаем, как вы можете его использовать.

Необходимость в общественных функциях

Карантин продолжается во всех частях мира, но это не мешает нам продолжать работать и находить лучшие решения для внутренней навигации и улучшать существующие. В связи с тем, что мы продолжаем нашу работу удаленно, нам необходимо протестировать наши решения на правильность работы, но иногда отсутствие маяков или других устройств, излучающих сигналы, заставляло нас искать более хитрое решение. Поэтому мы решили сделать общедоступными методы передачи сигналов Wi-Fi и Bluetooth. Это решение может быть полезно не только для навигации в помещении, но и в других случаях, если в вашей технологии используются устройства Bluetooth или Wi-Fi.

Также стоит обратить особое внимание на то, что этот метод также можно использовать в других случаях, например, если один из датчиков Bluetooth или WiFi не работает на вашем устройстве, или если вы решили протестировать чужое решение, но не хочу купить маяки. Конечно, вы все равно можете использовать какое-то приложение, которое имитирует эти сигналы, но это решение не всегда работает хорошо, потому что иногда вам нужен маяк определенного типа, а большинство приложений позволяют изменять очень ограниченное количество параметров.

Описание параметров функции

Когда вы используете сканирование по Bluetooth или WiFi, вы получаете сигналы в обратном вызове сканирования, а затем передаете данные своей функции, в которой происходит определенная магия. Но в отсутствие устройств, излучающих сигналы, волшебства не будет, поэтому для дальнейшего тестирования вам придется использовать аналогичное решение, когда вы сразу же передаете данные своей магической функции. В нашем случае эта волшебная функция оценит ваше положение в помещении. Итак, давайте попробуем понять, какие переменные мы используем для передачи функции.

Для функции предоставления данных измерений Bluetooth Имя - это имя устройства Bluetooth, а адрес - его MAC-адрес. Эти поля для маяков не так важны, поэтому мы не будем на них останавливаться. Rssi - это измерение мощности принятого сигнала. ScanRecord - это массив байтов, который состоит из таких параметров, как старший, второстепенный, uuid, мощность и т. д. Вы можете найти дополнительную информацию об этом массиве байтов в документации каждого производителя маяка.

Для функции предоставления данных измерений Wi-Fi есть только один параметр. ScanResults - это вектор результатов сканирования, где каждый результат сканирования содержит информацию о BSSID, SSID, уровне, частоте и т. д. Для получения дополнительной информации мы рекомендуем вам прочитать документацию ScanResult .

Как использовать

Получив все эти данные, вы можете подавать пользовательские сигналы для своей функции без сканирования каких-либо устройств Bluetooth и WiFi. И самое главное, эти функции стоит вызывать с определенной периодичностью, чтобы постоянно получать данные, и нужная вам функция постоянно выполняется, в нашем случае это оценка навигации. Итак, вот фрагмент кода, как вы можете запустить внутреннюю навигацию и предоставить ему информацию о маяке.

Кстати, вам нужно будет создать свои собственные функции для генерации маяков и сигналов WiFi для обеспечения этих функций, но это другая задача, о которой можно будет рассказать в другой статье.

Заключение

Конечно, лучше всего использовать реальные устройства, излучающие сигналы, и тестировать навигацию в вашем местоположении на реальных данных. Но иногда возникает необходимость прибегать к таким обходным путям. Это решение вполне подходит в качестве временного решения для тестирования навигации в вашем регионе или тестирования других точек, которые вам интересны, или если вы не хотите приобретать для этого дополнительные материалы, не убедившись, что это то, что вам нужно.

Вы можете найти более подробную информацию об этом решении в случае нашего SDK в нашей wiki. Также вы можете найти Демо-приложение в нашем GitHub. Не стесняйтесь задавать свои вопросы и оставлять отзывы.