VRPN

VRPN

Проект по интеграции системы трекинга Antilatency в систему VRPN.
Следуя приведённой ниже инструкции, вы сможете получить доступ к оборудованию Antilatency через систему VRPN.
Больше о VRPN вы можете узнать из официальной документации
Вы можете использовать устройства Antilatency для nDisplay с помощью VRPN. Воспользуйтесь инструкцией по настройке устройств ввода VRPN.

Компиляция проекта

В первую очередь, создайте папку для проекта.
Скопируйте в удобную директорию исходники с GitHub, скачав и распаковав ветку antilatency-integration. Это можно сделать через cmd с помощью команды:
git clone --single-branch --branch antilatency-integration https://github.com/antilatency/vrpn
Запустите CMake. В окне программы укажите путь к исходникам проекта c помощью Browse Source и путь сохранения проекта, используя Browse Build.
Нажмите Configure и в открывшемся окне выберите свою версию Visual Studio и системы. Когда процесс конфигурации завершится, нажмите Generate.
В Visual Studio откройте файл [путь к проекту]\VRPN.sln.
Соберите версию проекта vrpn_server, который находится во вкладке Main Server. Перед сборкой вы можете выбрать одну из версий: Debug или Release. Чтобы собрать проект, кликните по нему ПКМ и выберите опцию Build.

Запуск сервера

Для работы сервера нужны библиотеки из SDK 2.0.0, которые можно скачать на сайте Antilatency.
Нужные файлы находятся тут:
AntilatencySDK\Native\NativeAPI\bin\[ваша версия системы]
Их можно скопировать в папку к vrpn_server.exe. По умолчанию, этот файл находится в папке Debug или Release, в зависимости от настроек, выбранных при сборке проекта:
[путь к проекту]\server_src\Debug(или Release)\
Другой способ - указать путь к библиотекам через опцию -lp в файле vrpn.cfg, который находится тут:
[путь к проекту]\server_src\vrpn.cfg
Затем в файле vrpn.cfg нужно раскомментировать строчку:
#vrpn_Tracker_Alt <-env [environment code]> [tag <-p [placement code]>] <more tags...> <options>
В ней нужно указать список имён трекеров (одного или более) и желаемые опции. Если не заданы опции Environment code или Placement code, будут использованы настройки по умолчанию из AntilatencyService.
Код Environment и Placement можно получить из ссылки на элемент в AntilatencyService.
Например, ссылка на Environment может иметь такой вид:
http://www.antilatency.com/antilatencyservice/environment?data=AAVSaWdpZBcABnllbGxvdwQEBAABAQMBAQEDAAEAAD_W&name=DevKit
Данные после data= - это код данного Environment.
Подробнее о работе с ссылками читайте тут: Environments
Если мы подключаем один Socket, для которого хотим задать значения по умолчанию для Environment и Placement, строка может выглядеть так:
vrpn_Tracker_Alt Device0
Затем нужно подключить сокет и Alt и в AntilatencyService установить для сокета свойство Tag, соответствующее тому, что мы прописали в vrpn.cfg.
В примере мы прописали имя устройства как Device0, значит, и свойству Tag следует присвоить значение Device0.
О том, как редактировать пользовательские свойства, читайте тут: Как настроить пользовательские свойства устройств
Запустите сервер из командной строки, указав путь к файлу vrpn.cfg:
vrpn_server.exe -f ../vrpn.cfg

Тест

В Visual Studio откройте файл [путь к проекту]\VRPN.sln.
Соберите Debug или Release версию проекта vrpn_print_devices, который находится во вкладке Clients. Для этого кликните ПКМ по названию проекта и выберите опцию Build.
Теперь вам потребуется файл vrpn_print_devices.exe, который находится тут:
[путь к проекту]\client_src\Debug(или Release)\
Убедитесь, что сервер запущен и запустите из командной строки файл vrpn_print_devices.exe, указав тег трекера и адрес сервера:
vrpn_print_devices.exe -trackerstride 10 [TrackerTag]@localhost
В нашем случае команда будет выглядеть так:
vrpn_print_devices.exe -trackerstride 10 Device0@localhost
-trackerstride - частота вывода данных; в нашем случае будет выведен 1 из 10 полученных результатов.
В выводе вы увидите:
pos - данные о позиции объекта
quat - кватернион вращения объекта