도와주세요!!
글 수 15,339
2006.02.28 21:59:28 (*.173.181.145)
6678
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
제가 가지고 있는 자료입니다.
저는 성공했는데... 잘 될지 모르겠지만 한번 해보세요.
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
제가 가지고 있는 자료입니다.
저는 성공했는데... 잘 될지 모르겠지만 한번 해보세요.