2017-02-25 25 views
0

私は無人機でQtプロジェクトを進めています。私と私の友人はXbox 360コントローラで無人機を制御しています。QGamepadManagerはubuntuでコントローラの切断を検出しません

ボタンと軸を検出するために、gamepadmanagerモジュールにあるQGamepadManagerクラスを使用しています。うまくいく! Windows上で

while (true) 
{ 
    if (this->gamepad->isConnected()) { 
     cout << "gamepad connected" << endl; 
    } else { 
     cout << "gamepad disocnnected" << endl; 
    } 
} 


bool GamepadMonitor::isConnected() 
{ 
    return QGamepadManager::instance()->connectedGamepads().size() == 1; 
} 

、Ubuntuの上でうまく動作しますが、ないisConnected()方法:しかし、私たちは、この単純化されたコードに問題があります。ゲームパッドが接続された状態でアプリケーションを起動すると、ボタンも認識され、軸になります。しかし、切断は検出されません。ゲームパッドなしでアプリケーションを起動すると、接続は認識されません。

joystickパッケージをインストールしました。私はUbuntu 16.04です。私はQt 5.8で開発中です。

アイデアはありますか?

編集:私はそれを外すとき

[ 330.430405] usb 3-1: new full-speed USB device number 4 using xhci_hcd 
[ 330.575708] usb 3-1: New USB device found, idVendor=045e, idProduct=028e 
[ 330.575714] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
[ 330.575718] usb 3-1: Product: Controller 
[ 330.575721] usb 3-1: Manufacturer: ©Microsoft Corporation 
[ 330.575723] usb 3-1: SerialNumber: 1E69441 
[ 331.614141] input: Microsoft X-Box 360 pad as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/input/input23 
[ 331.622581] usbcore: registered new interface driver xpad 

::私はゲームパッドを接続すると私はdmesgの出力

を追加

[ 392.733786] usb 3-1: USB disconnect, device number 4 
[ 392.733995] xpad 3-1:1.0: xpad_try_sending_next_out_packet - usb_submit_urb failed with result -19 

答えて

0

のUbuntu自体が検出した場合、私はチェックrecommandうゲームの状態を見て、またはdmesg出力で直接切断することができます。

それはおそらく、それを検出しているように、私はその後、私は `dmesgの操作を行うとき、私は、これをチェックしQt tracker :)

+0

上のバグレポートを記入することをお勧め| grep X-Box'の場合、USB接続あたり1行ありますが、正常かどうかわかりません。入力変更のたびに – onda47

+0

Ok、私の質問はあなたのゲームパッドを取り外すときに何が起こったのですか?それはdmesgにログインしていますか? –

関連する問題