Qt Multi-Touch с qTUIO и встроенным mtdev2tuio linux

У меня есть встроенный проект Linux, где я хочу использовать multi-touch с Qt. Я смотрел на qTUIO ( https://github.com/x29a/qTUIO), и он выглядит великолепно.

Я кросс-скомпилировал библиотеку qTUIO и развернул ее на плате.

Я также кросс-скомпилировал и развернул требования для "сервера" TUIO:

На плате я запустил "сервер":

./mtdev2tuio /dev/input/touchscreen osc.udp://127.0.0.1:3333/
Sending OSC/TUIO packets to osc.udp://127.0.0.1:3333/

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

./mtdev2tuio /dev/input/touchscreen osc.udp://localhost:3333/
Sending OSC/TUIO packets to osc.udp://localhost:3333/
...
OSC error -3: Temporary failure in name resolution
OSC error -3: Temporary failure in name resolution
OSC error -3: Temporary failure in name resolution
OSC error -3: Temporary failure in name resolution
OSC error -3: Temporary failure in name resolution
...

Затем я запустил qTUIO-версию примера 'pinchzoom' на плате, и он работает, как показано ниже:

# ./pinchzoom -qws
graphicsview initialized 
listening to TUIO messages on UDP port 3333

Итак, у меня есть сервер, который утверждает, что интерпретирует мои прикосновения, и отправляет их UDP на порт 3333, а приложение qt утверждает, что считывает эти события TUIO и передает их в Qt. Когда я касаюсь экрана ничего не происходит. У кого-нибудь есть идеи по этому поводу?

1 ответ

Решение

Вы можете запустить сетевой регистратор (например, tcpdump, Wireshark) и посмотреть, действительно ли пакеты OSC отправляются с вашего сервера?

Ошибка

Ошибка OSC -3: временный сбой в разрешении имен

Похоже, проблема на стороне вашего сервера, поэтому для исключения клиента в качестве источника ошибок выберите подачу (трекер), отличную от вашей. http://tuio.org/?software предлагает хороший обзор, если у вас есть Android Fon, попробуйте http://code.google.com/p/tuiodroid/ для имитации пакетов OSC.

Теперь клиенту. На самом деле qTUIO еще далек от завершения, поэтому есть большая вероятность, что это виновник. Хороший способ проверить правильность получения и пересылки пакетов - посмотреть на перегруженный метод event() в вашем коде и посмотреть, сработает ли он, и если да, то с каким типом. Я могу только сказать вам, что он работал нормально с CCV 1.4 в качестве трекера. Кроме того, используйте пример краски, если это возможно, так как он практически переводит touchevents в painttevents, меньше магии, которая может пойти не так.

Работа во встроенном поле просто добавляет еще одну особенность источникам ошибок. У вас могут быть проблемы с порядком байтов? Сроки проблемы?

Можете ли вы предоставить больше информации о том, какие версии библиотек, ОС, оборудования и т. Д. Вы используете?

Я с удовольствием обновлю этот пост, чтобы дать реальное решение, когда станет ясно, какой компонент вызывает ошибку. Удачи!

Другие вопросы по тегам