私は無人機で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
上のバグレポートを記入することをお勧め| grep X-Box'の場合、USB接続あたり1行ありますが、正常かどうかわかりません。入力変更のたびに – onda47
Ok、私の質問はあなたのゲームパッドを取り外すときに何が起こったのですか?それはdmesgにログインしていますか? –