안녕하세요..

Q/A에서  터치 관련해서 serch 해 보세요

src/embedded/qmouselinuxtp_qws.cpp

이 소스에서 void QWSLinuxTPMouseHandlerPrivate::readMouseData() 함수에서

data->x 값과 data->y 값을 디버깅 코드로 읽어서 커널에서 넘겨주는 값과 같은지 확인해서요..

그리고 나서 이 읽은 좌표값을 가지고 터치스크린의 크기에 맞게 좌표값을 변환하셔야 합니다.

아래의 내용은 저희가 사용한 변환식 소스입니다. 참고하세요.


       unsigned int xf,yf;
        unsigned int MK712_start_dx = 4015;
        unsigned int MK712_end_dx   =  175;
        unsigned int MK712_start_dy =  175;
        unsigned int MK712_end_dy   = 4015;

        QRect desk   = qApp->desktop()->geometry();

        if( data->x > MK712_start_dx ) data->x = MK712_start_dx;
        if( data->x < MK712_end_dx   ) data->x = MK712_end_dx;
        if( data->y < MK712_start_dy ) data->y = MK712_start_dy;
        if( data->y > MK712_end_dy   ) data->y = MK712_end_dy;

        xf = (MK712_start_dx - data->x       ) / (((MK712_start_dx - MK712_end_dx  ) / desk.width() ));
        yf = (data->y        - MK712_start_dy) / (((MK712_end_dy   - MK712_start_dy) / desk.height()));

        qDebug("--->> X=%d Y=%dn", data->x, data->y);

//      xf = (data->y      - MK712_end_dx    ) / (((MK712_start_dx - MK712_end_dx  ) / desk.width() ));
//      yf = (MK712_end_dy - data->x         ) / (((MK712_end_dy   - MK712_start_dy) / desk.height()));

//      xf = (MK712_start_dx - data->y        ) / (((MK712_start_dx - MK712_end_dx  ) / desk.width() ));
//      yf = (data->x        - MK712_start_dy ) / (((MK712_end_dy   - MK712_start_dy) / desk.height()));

        data->x = xf;
        data->y = yf;

        if( data->x < 0              ) data->x = 0;
        if( data->y < 0              ) data->y = 0;
        if( data->x >= desk.width()  ) data->x = desk.width() -1;
        if( data->y >= desk.height() ) data->y = desk.height()-1;

        samples[currSample] = QPoint( data->x, data->y );


그럼 수고하세요.




>현재 qte-3.3.6포팅해서 ez-x5포드에 포팅은 성공 했습니다.
>
>헌데 터치가 말썽이네요 좀 도와주세요 ㅠㅠ
>
>calibrate를 실행 시키면
>==========================================
>Could not read calibration: /etc/pointercal[START]MK712 USERS [0]
>
>[ING]MK712 CONTORL VALUE [0000005B]
>640 480
>==========================================
>
>계속 이렇게만 뜨네요
>
>echo "1">/proc/mk712 확인 하였고 하드웨어에는 이상이 없는것 같은데
>아무래도 qt포팅을 잘못한것 같습니다.
>
>제가 궁금한건 세미나 자료실에 있는 자료를 이용하여 qt를 포팅할때
>
>./configure -embedded armv5l -shared -thread -no-cups -qt-libjpeg -qt-mouse-linuxtp
>이명령어를 주었을 경우 qmake,moc,uic 가 만들어 지지가 않아(자료실의 소스도 전체 다 수정하였음)
>
>www.korone.net 의 강좌 김용오님이 하신 컴파일과 같이 하였더니 컴파일에는 성공하였습니다.
>->./configure -platform qws/linuxt-x86-g++ -shared -thread -qt-mouse-linuxtp ..를 하고 make 후에
>
>qmake,moc,uic를 만든후 다시
>
>->./configure -platform qws/linuxt-x86-g++ -xplatform qws/linux-armv5l-g++ -shared -thread -qt-mouse-linuxtp .. make
>
>이렇게 하면 포팅은 되더군요 하지만 터치가 안된다는거 ㅠㅠ;;
>
>도데체 어떻게 해야 세미나 자료실에서와 같이 qt를 포팅 할수 있을까요?
>(Q/A에 어떤 분이 직접 tools/uic,moc,qmake로 들어가서 make CC=g++ 하라는데 이것도 안되네요)
>
>
>