我在Linux(特定於Ubuntu 12.04)上使用C++進行編碼,並希望使用PlayStation SixAxis控制器(PS3自帶的類型)作爲輸入設備,理想情況下通過藍牙。在Linux上使用C++訪問Sony Playstation SixAxis控制器
我的應用程序將無法運行。目標平臺上沒有運行窗口管理器。目標是運行Ubuntu Server 12.04的small robot,儘管我正在桌面上開發。
有沒有我可以使用的任何庫或技術?
我在Linux(特定於Ubuntu 12.04)上使用C++進行編碼,並希望使用PlayStation SixAxis控制器(PS3自帶的類型)作爲輸入設備,理想情況下通過藍牙。在Linux上使用C++訪問Sony Playstation SixAxis控制器
我的應用程序將無法運行。目標平臺上沒有運行窗口管理器。目標是運行Ubuntu Server 12.04的small robot,儘管我正在桌面上開發。
有沒有我可以使用的任何庫或技術?
請看看這裏:http://www.pabr.org/sixlinux/sixlinux.en.html 您可以將它用作HID設備並使用標準的C++ HID api。
我當前的解決方案包括使用在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,和它的偉大工程。我現在有六軸控制的機器人!
您正在尋找一些類似於文本mousedev的庫,但對於PS3控制器?有一個移動圖書館 - http://thp.io/2010/psmove/這可能會有所幫助。不過,你的問題有點含糊。 – Petesh
@Petesh,這有點含糊,因爲我不完全確定我在找什麼。最終結果是定期對控制器的狀態進行採樣,或者響應狀態更改而接收回調。要麼會沒事的。不幸的是,該庫似乎不支持SixAxis控制器。到目前爲止,我發現的最接近的是sixad,它是QtSixA的底層庫。儘管如此,我還沒有成功完成這項工作。 –
QtSixA將消息注入到'uinput'中,並從暴露的/ dev /輸入設備中讀取。這將是事件驅動的 - 當數據改變時你會收到消息。通過libevent處理消息可能會使編程變得更簡單。 – Petesh