2013-01-24 29 views
5

我在Linux(特定於Ubuntu 12.04)上使用C++進行編碼,並希望使用PlayStation SixAxis控制器(PS3自帶的類型)作爲輸入設備,理想情況下通過藍牙。在Linux上使用C++訪問Sony Playstation SixAxis控制器

我的應用程序將無法運行。目標平臺上沒有運行窗口管理器。目標是運行Ubuntu Server 12.04的small robot,儘管我正在桌面上開發。

有沒有我可以使用的任何庫或技術?

+0

您正在尋找一些類似於文本mousedev的庫,但對於PS3控制器?有一個移動圖書館 - http://thp.io/2010/psmove/這可能會有所幫助。不過,你的問題有點含糊。 – Petesh

+0

@Petesh,這有點含糊,因爲我不完全確定我在找什麼。最終結果是定期對控制器的狀態進行採樣,或者響應狀態更改而接收回調。要麼會沒事的。不幸的是,該庫似乎不支持SixAxis控制器。到目前爲止,我發現的最接近的是sixad,它是QtSixA的底層庫。儘管如此,我還沒有成功完成這項工作。 –

+0

QtSixA將消息注入到'uinput'中,並從暴露的/ dev /輸入設備中讀取。這將是事件驅動的 - 當數據改變時你會收到消息。通過libevent處理消息可能會使編程變得更簡單。 – Petesh

回答

3

我當前的解決方案包括使用在Ubuntu 12.04

sudo apt-add-repository ppa:falk-t-j/qtsixa 
sudo apt-get update 
sudo apt-get install sixad -y 
# plug controller into machine (via wire) 
sudo sixpair 
# unplug controller 
sixad --start 
# hold PS button 

這個PPA後來我發現你的c++ library,和它的偉大工程。我現在有六軸控制的機器人!