도와주세요!!
글 수 15,339
2006.03.02 17:18:07 (*.69.66.127)
6676
답이 될지 모르겠는데요..저희는 좌우는 아니고 좌표가 좀 멋대로 움직였었어요
찾아보고 mk712.c 파일에서
220번째줄의
t.x = x
t.y = y
를
x.y를 바꿔 주었더니 잘 되더군요
>QT-소스 수정
>
>Touch screen을 사용하기 위해 첨부한 파일을 보고 몇가지 소스를 수정한다
>
>qte-3.3.3/src/embedded/qmouse_qws.h 의
>
>Class QWSCalibrateMouseHandler 클래스의 protected:멤버함수 setFilterSize()를 public으로 올려준다
>
>이 함수는 응용프로그램에서 마우스 반응 속도를 결정할수 있게 해주는 함수이다
>
>
>qte-3.3.3/src/embedded/qmouselinuxtp_qws.cpp의
>
>QWSLinuxTPMouseHandlerPrivate 생성자에서
>If( (mouseFD = open(“/dev/mk712”, O_RDONLY | O_NDELAY)) < 0 )
>{
> qWarning(“Cannot open /dev/mk712 (%s)”, strerror(errno));
> return;
>}
>을 추가하여 mk712디바이스를 오픈한다
>
>
>
>
>
>
>
>
>
>void QWSLinuxTPMouseHandlerPrivate::readMouseData() 함수부분을
>다음과 같이 수정한다
>
> //handler->mouseChanged(mousePos, Qt::LeftButton); 를
> handler->sendFiltered(mousePos, Qt::LeftButton); (내부에서 좌표 변환 발생)
>
> //handler->mouseChanged(mousePos, Qt::LeftButton); 를
> handler->sendFiltered(mousePos, Qt::LeftButton);
>
> //handler->mouseChanged(oldmouse, 0); 를
> handler->sendFiltered(oldmouse,0);
>
>mouseChanged() 함수는 qt에게 마우스가 변화되었다는 signal을 발생시키는것 같다
>
>sendFiltered()함수는 내부적으로 touch의 좌표와 화면좌표간의 좌표사상을 하고나서 mouseChanged()함수를 호출한다
>
>그래서 터치에서 날아오는 (4000, 4000)이라는 좌표가 화면크기인(640,480)
>정도로 변환을 하는것 같다
>
>
>5-2. QT 컴파일
>
>QT-컴파일 환경설정
>
>/etc/bashrc의 제일 끝에 다음을 추가
>QTDIR=/project/qte-3.3.3
>QT=$QTDIR
>LD_LIBRARY_PATH=$QTDIR:/lib:$LD_LIBRARY_PATH
>PATH=$PATH:$QTDIR/bin
>export QTDIR QT LD_LIBRARY_PATH PATH
>
>
>QT-embedded의 컴파일
>/project/qte-3.3.3 디렉토리로 이동하여 (cd $QTDIR 또는 cd $QT)
>
>./configure -embedded arm -shared –thread –debug –no-cups –continue -qt-mouse-linuxtp
>
>여기서-qt-mouse-linuxtp 이 부분이 qt에게 마우스 핸들러로
>/qte-3.3.3/src/embedded/qmouselinuxtp_qws.cpp 이 파일를 사용하라는 컴파일 명령인듯 하다
>
>다음 처리를 하고 끝나면
>
>make 를 한다
>
>
>5-3. QT실행시 환경변수 설정
>타켓머신의 리눅스 부팅시 rc.local에 다음을 추가한다
>export QWS_MOUSE_PROTO=linuxtp
>
>제가 가지고 있는 자료입니다.
>저는 성공했는데... 잘 될지 모르겠지만 한번 해보세요.
찾아보고 mk712.c 파일에서
220번째줄의
t.x = x
t.y = y
를
x.y를 바꿔 주었더니 잘 되더군요
>QT-소스 수정
>
>Touch screen을 사용하기 위해 첨부한 파일을 보고 몇가지 소스를 수정한다
>
>qte-3.3.3/src/embedded/qmouse_qws.h 의
>
>Class QWSCalibrateMouseHandler 클래스의 protected:멤버함수 setFilterSize()를 public으로 올려준다
>
>이 함수는 응용프로그램에서 마우스 반응 속도를 결정할수 있게 해주는 함수이다
>
>
>qte-3.3.3/src/embedded/qmouselinuxtp_qws.cpp의
>
>QWSLinuxTPMouseHandlerPrivate 생성자에서
>If( (mouseFD = open(“/dev/mk712”, O_RDONLY | O_NDELAY)) < 0 )
>{
> qWarning(“Cannot open /dev/mk712 (%s)”, strerror(errno));
> return;
>}
>을 추가하여 mk712디바이스를 오픈한다
>
>
>
>
>
>
>
>
>
>void QWSLinuxTPMouseHandlerPrivate::readMouseData() 함수부분을
>다음과 같이 수정한다
>
> //handler->mouseChanged(mousePos, Qt::LeftButton); 를
> handler->sendFiltered(mousePos, Qt::LeftButton); (내부에서 좌표 변환 발생)
>
> //handler->mouseChanged(mousePos, Qt::LeftButton); 를
> handler->sendFiltered(mousePos, Qt::LeftButton);
>
> //handler->mouseChanged(oldmouse, 0); 를
> handler->sendFiltered(oldmouse,0);
>
>mouseChanged() 함수는 qt에게 마우스가 변화되었다는 signal을 발생시키는것 같다
>
>sendFiltered()함수는 내부적으로 touch의 좌표와 화면좌표간의 좌표사상을 하고나서 mouseChanged()함수를 호출한다
>
>그래서 터치에서 날아오는 (4000, 4000)이라는 좌표가 화면크기인(640,480)
>정도로 변환을 하는것 같다
>
>
>5-2. QT 컴파일
>
>QT-컴파일 환경설정
>
>/etc/bashrc의 제일 끝에 다음을 추가
>QTDIR=/project/qte-3.3.3
>QT=$QTDIR
>LD_LIBRARY_PATH=$QTDIR:/lib:$LD_LIBRARY_PATH
>PATH=$PATH:$QTDIR/bin
>export QTDIR QT LD_LIBRARY_PATH PATH
>
>
>QT-embedded의 컴파일
>/project/qte-3.3.3 디렉토리로 이동하여 (cd $QTDIR 또는 cd $QT)
>
>./configure -embedded arm -shared –thread –debug –no-cups –continue -qt-mouse-linuxtp
>
>여기서-qt-mouse-linuxtp 이 부분이 qt에게 마우스 핸들러로
>/qte-3.3.3/src/embedded/qmouselinuxtp_qws.cpp 이 파일를 사용하라는 컴파일 명령인듯 하다
>
>다음 처리를 하고 끝나면
>
>make 를 한다
>
>
>5-3. QT실행시 환경변수 설정
>타켓머신의 리눅스 부팅시 rc.local에 다음을 추가한다
>export QWS_MOUSE_PROTO=linuxtp
>
>제가 가지고 있는 자료입니다.
>저는 성공했는데... 잘 될지 모르겠지만 한번 해보세요.