도와주세요!!
글 수 15,339
안녕하세요..
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++ 하라는데 이것도 안되네요)
>
>
>
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++ 하라는데 이것도 안되네요)
>
>
>