Qt Multi-Touch with qTUIO and mtdev2tuio embedded linux

1.5k views Asked by At

I have an embedded linux project where I want to use multi-touch with Qt. I've been looking at qTUIO ( https://github.com/x29a/qTUIO ) and it looks great.

I cross-compiled the qTUIO library and deployed to the board.

I also cross-compiled and deployed the requirements for the TUIO 'server':

On the board I fired up the 'server':

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

Just to make sure that it was reading the input device I also did the following and saw the 'failure in name resolution' when I moved my finger on the touchscreen:

./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
...

I then ran the qTUIO version of the 'pinchzoom' example on the board and it is running like below with this output:

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

So I have a server claiming to be interpreting my touches and sending them UDP to port 3333, and the qt application claiming to be reading those TUIO events and passing them to Qt. When I touch the screen nothing happens. Does anybody have ideas on this?

1

There are 1 answers

1
x29a On BEST ANSWER

can you actually fire up a network logger (like tcpdump, Wireshark) and see, if OSC packets actually get sent from your server?

The error

OSC error -3: Temporary failure in name resolution

looks like an issue on your server side, so to eliminate the client as an error source, choose a serve (tracker) different then yours. http://tuio.org/?software features a good overview, if you happen to have an Android Fon around, try http://code.google.com/p/tuiodroid/ to simulate OSC packets.

Now to the client. qTUIO is actually far from done, so there is a good chance, that it is the culprit. A good way to test, if packets are received and forwarded correctly is to look at the overloaded event() method in your code, and see, if it triggers and if yes, with which type. I can only tell you, that it worked okay with a CCV 1.4 as tracker. Also, use the paint example if possible, as it practically translates the touchevents to paintevents, less magic that could go wrong.

Working in an embedded field just adds another special flavour to error sources. Do you maybe have endianess problems? Timing issues?

Can you provide more info on which versions of libs, OS, hardware, etc. you are using?

I will gladly update this post to provide a real solution, once its clear, what component causes the error. Good luck!