2012-08-16 22 views
1

我有一個嵌入式Linux項目,我想在Qt中使用多點觸摸。 我一直在看qTUIO(https://github.com/x29a/qTUIO),它看起來不錯。Qt Multi-Touch與qTUIO和mtdev2tuio嵌入式linux

我交叉編譯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作爲跟蹤器可以正常工作。另外,如果可能的話,使用繪畫示例,因爲它實際上將繪畫事件翻譯爲繪畫事件,減少可能出錯的魔法。

在嵌入式字段中工作只是給錯誤源添加了另一種特殊的風味。你可能有endianess問題嗎?時機問題?

你能提供更多關於你正在使用的libs,操作系統,硬件等版本的信息嗎?

我會很樂意更新這篇文章,以提供一個真正的解決方案,一旦清楚,什麼組件導致錯誤。祝你好運!

+0

感謝您的快速響應 - 我實際上使用osc.udp://127.0.0.1:3333 /可以很好地工作。我重新啓動電路板,它工作...無論如何,再次感謝這是一個很棒的軟件包。我似乎能夠在沒有問題的情況下同時使用tslib觸摸屏輸入作爲鼠標輸入。 – PhilBot 2012-08-16 20:53:29