2014-01-27 36 views
0

我在Raspberry上運行Arch Linux,需要從C++應用程序獲取4個USB鼠標的定位數據,如每個單獨的鼠標所需,我需要知道它有多少像素移動時移動。我沒有在我的系統上安裝x服務器,並且寧可保留它,除非必要,因爲這是針對不需要GUI的嵌入式項目,我不希望在x服務器上浪費空間或開銷。Arch Linux C++讀取USB鼠標定位數據

我發現的最有用的東西是這個鏈接https://www.kernel.org/doc/Documentation/input/input.txt但我真的不知道如何使它爲我的目的工作。顯然可以確定我沒有在Linux開發方面的經驗,請不要對我很難。

+0

首先,因爲沒有顯示器,所以沒有像素。其次,你必須記住,鼠標只報告它已經向某個方向移動了X單位,你必須使用這些相對移動來自己計算「光標」位置。 –

+0

@JoachimPileborg抱歉的術語,但我的意思是我想知道鼠標移動了多少單元,我只是使用了像素這個詞,但我顯然不會對它們產生反感。我想要這些移動數據,因爲這是用於除用戶界面外的其他內容。 – Gerharddc

回答

0

您打開例如/dev/input/mouse0用於讀取(使用open),然後read在您鏈接的文檔中定義的結構(位於文檔的底部),它還指出要包含哪個頭文件。

我猜你會得到鼠標移動EV_REL類型的事件,與REL_XREL_Y的運動方向的代碼,該值的單位鼠標移動的號碼。比較時間戳和前一個事件的時間戳,看看它移動的速度。

+0

我現在已經用event3實現了這個功能,因爲mouse0不起作用,但由於某種原因它給出了X和Y移動的完全相同的數字,並且它似乎永遠不會給出負值。 – Gerharddc