2012-12-21 10 views
1

DirectFB 1.2.9 또는 Qt Embedded 4.7.3에서 USB 마우스의 핫 플러그를 수행 할 수있는 방법이 있습니까? DirectFB/QT Embedded USB 마우스 핫 플러시

현재 나의 애플리케이션 스택

----------------- 
     GUI 
----------------- 
Qt Embedded 4.7.3 
----------------- 
    DirectFB 1.2.9 
----------------- 
/dev/input/eventX 
----------------- 

DirectFB 리눅스 입력 장치 노드를 개방 .. 따라서이다. Qt는 QSocketNotifier를 사용하여 DirectFB 이벤트 버퍼에서 대기하고 마우스 데이터를 읽도록 슬롯을 설정합니다. 그러나 핫 플러깅에서 DirectFB는 장치 노드를 열지 않으며 마우스 이벤트가 생성되지 않습니다.

지금까지 내가 .. 지금까지, 핫 플러깅이 DirectFb 지원하지 않습니다 이해

내가 = 옵션으로 리눅스 입력 장치에서 dev에 노드를 제거 (리눅스 입력 장치의 DirectFB의 처리를 해제 시도 directfbrc), QWS_MOUSE_PROTO = "linuxinput : .."으로 설정했지만 어떤 이유로이 기능이 작동하지 않습니다. 마우스 이벤트가 생성되지 않은 것 같습니다. 비록 내가 그것을 작동 시키도록 관리하더라도, 나는 QT가 핫 플러깅을위한 어떤 지원도 제공하지 않는다고 생각한다.

서브 클래스 QMouseDriverPlugin 및 QWSMouseHandle 클래스에 대한 유일한 대안은 무엇입니까?. 이를 위해 QT가 구현 한 하위 클래스를 사용하는 방법을 아직 모르고 있습니다. 예, 일단 이러한 클래스를 구현하면 프레임 워크를 처리하는 QT 입력 장치에 어떻게 링크합니까? QWS_MOUSE_PROTO = "mylinuxinput : .."과 같은 것을 설정할 수 있습니까?

+0

QWS_MOUSE_PROTO를 사용하여 QT에서 마우스를 직접 조작 할 수 있습니다. 그러나 예상대로 핫 플러깅이 없습니다. – Ajith

답변

1

내가 기억할 수있는 한, Qt Embedded 4.7.2 (DirectFB없이)에서 마우스 또는 키보드 핫 플러깅과 관련하여 아무런 문제가 발생하지 않았습니다. 자신을 하위 클래스 화하려면 linuxinput 플러그인에서 시작하여 플러그인을 수정하십시오. Qt 소스에서 찾을 수 있습니다 : this은 플러그인이있는 디렉토리이지만 일부 클래스는 다른 디렉토리에 포함되어 있습니다.

또한 플러그인을 설치 한 후 Linux 장치에서 데이터를 가져오고 있습니까? 이 장치에 고양이를 태우려고 했습니까?

+0

장치를 열어 놓은 상태에서 플러그를 뽑고 플러그를 꽂은 후에도 데이터를 얻을 수 있습니다. – Ajith

+0

그런 다음 다시 작성하는 대신 코드를보고 디버그 할 수 있습니다. –

+0

죄송합니다. 내 첫 번째 의견에 분명히 있어야합니다. 내가 고양이 일 수는 있지만 일단 마우스를 꽂으면 고양이가 빠져 나옵니다. 장치 노드가 더 이상 존재하지 않습니다. 연결 한 후에 다시 고양이를해야합니다. 장치 노드는 udev에 의해 동적으로 관리됩니다. – Ajith