2017-02-25 10 views
0

무인기와 함께 Qt 프로젝트를 진행하고 있습니다. 나와 나와 친구들이 Xbox 360 컨트롤러로 무인 항공기를 통제하고 있습니다.QGamepadManager가 우분투에서 컨트롤러 단절을 감지하지 못합니다.

그래서 버튼과 축을 감지하기 위해 gamepadmanager 모듈에있는 QGamepadManager 클래스를 사용했습니다. 잘 작동한다 ! 창에

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


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

, 우분투에 잘하지만 작동 isConnected() 방법 :하지만 우리는이 간단한 코드에 문제가 있습니다. 연결된 게임 패드를 사용하여 응용 프로그램을 시작하면 단추가 인식되고 축도 함께 표시됩니다. 단절은 감지되지 않습니다. 게임 패드없이 응용 프로그램을 시작하면 연결이 인식되지 않습니다.

joystick 패키지를 설치했습니다. 나는 우분투 16.04에있다. 나는 Qt 5.8로 개발 중이다.

아이디어가 있으십니까?

편집 : 내가 메시지는 dmesg 출력을 추가

나는 게임 패드를 연결하면 : 나는 그것을 분리

[ 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 

:

[ 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

우분투 자체가 감지되면 내가 확인 운영자 추천 것 연결 해제, 게임 상태를 보거나 직접 dmesg 출력. | 아마 그것을 감지되기 ​​때문에

, 나는 내가`dmesg 명령을 다음 Qt tracker :

+0

나는이 체크에 버그 리포트를 기입하는 것이 좋습니다 grep X-Box', USB 연결 당 한 행이 있지만 정상인지 아닌지는 알 수 없습니다. 입력 변경 때마다 – onda47

+0

좋아, 제 질문은 당신이 게임 패드를 분리하면 어떻게됩니까? dmesg에 로그인되어 있습니까? –