2013-01-24 15 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コントローラをサポートしていないようです。これまで私が見つけた最も近いものは、QtSixAの基礎となるライブラリであるsixadです。私はまだそれを働かせることはできませんでした。 –

+0

QtSixAは 'uinput'にメッセージを注入し、露出した/ dev/inputデバイスから読み込みます。それはイベント駆動型になるでしょう - あなたはデータが変わったときにメッセージを受け取ります。メッセージを処理するためのlibeventを利用すると、プログラムを簡単にすることができます。 – Petesh

答えて

3

私の現在のソリューションは、私は、あなたのc++ libraryを見つけ

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 

のUbuntu 12.04でこのPPAを使用することを含む、それは素晴らしい作品。私は今6軸制御のロボットを持っています!

関連する問題