그렇게 자세한 부분에 초점을 맞추어서 알아낼수 있는 간단한 문제가 아니기에
다음의 링크를 보내드립니다. 이것을 읽어보시면, 어렴풋이 X window system
에서 event handle 이 어떻게 되는지 감이 잡히실것이고, 프로그래밍이 필요
하시다면, 그때 소스를 보시죠.
간략히, 제가 아는만큼만 적어본다면,
마우스는 일단 하드웨어적으로 PS/2, serial 같은 포트에 붙어서, 신호를
보냅니다. 이런 포트들은 OS kernel 에 인터럽트를 발생시키고, OS 의
인터럽트 핸들러는 처리하는 과정에서 자연스레 해당 application 에게
신호를 보내주게 됩니다. (지금의 경우는 X server 가 되겠습니다.)
Lower level 과는 다르게, X server/client 에서는 message 를 발생함으로
처리됩니다. 이 메세지는 큐에 전달되고, 큐에서는 X event handler 에 의해
차례로 처리됩니다. 이때, 해당 메세지에 대한 call back 이 있을경우
call back 펑션을 불러주고, 없을경우는 무시됩니다.
시리얼 마우스는 자신의 방금전 좌표로 부터 x,y만큼이동한 정보와 버튼의 상태정보(좌,우,중간)를 전송합니다.
중요한 것은 상대좌표라는 것입니다. 또한 표현가능한 좌표도 수비트 정도밖에 안됩니다. 그래서, 이 상대좌표를 입력으로 UI제작자가 적절한 화면크기에 맞는 절대 좌표계로 환산해주어야 합니다. 또한 더블클릭등도 소프트웨어적으로 만들어야 하는것이지요.
아주 오래전 시리얼 마우스는 이러했는데, 아마도 최근의 USB마우스등도 이런식으로 동작하리라고 예상됩니다.
그렇게 자세한 부분에 초점을 맞추어서 알아낼수 있는 간단한 문제가 아니기
그렇게 자세한 부분에 초점을 맞추어서 알아낼수 있는 간단한 문제가 아니기에
다음의 링크를 보내드립니다. 이것을 읽어보시면, 어렴풋이 X window system
에서 event handle 이 어떻게 되는지 감이 잡히실것이고, 프로그래밍이 필요
하시다면, 그때 소스를 보시죠.
http://www.faqs.org/docs/Linux-HOWTO/XWindow-Overview-HOWTO.html
간략히, 제가 아는만큼만 적어본다면,
마우스는 일단 하드웨어적으로 PS/2, serial 같은 포트에 붙어서, 신호를
보냅니다. 이런 포트들은 OS kernel 에 인터럽트를 발생시키고, OS 의
인터럽트 핸들러는 처리하는 과정에서 자연스레 해당 application 에게
신호를 보내주게 됩니다. (지금의 경우는 X server 가 되겠습니다.)
Lower level 과는 다르게, X server/client 에서는 message 를 발생함으로
처리됩니다. 이 메세지는 큐에 전달되고, 큐에서는 X event handler 에 의해
차례로 처리됩니다. 이때, 해당 메세지에 대한 call back 이 있을경우
call back 펑션을 불러주고, 없을경우는 무시됩니다.
원하시는게 맞는지..
틀렸다면 과감히 지적부탁드립니다.
삽질의 대마왕...
시리얼 마우스는 자신의 방금전 좌표로 부터 x,y만큼이동한 정보와 버튼의
시리얼 마우스는 자신의 방금전 좌표로 부터 x,y만큼이동한 정보와 버튼의 상태정보(좌,우,중간)를 전송합니다.
중요한 것은 상대좌표라는 것입니다. 또한 표현가능한 좌표도 수비트 정도밖에 안됩니다. 그래서, 이 상대좌표를 입력으로 UI제작자가 적절한 화면크기에 맞는 절대 좌표계로 환산해주어야 합니다. 또한 더블클릭등도 소프트웨어적으로 만들어야 하는것이지요.
아주 오래전 시리얼 마우스는 이러했는데, 아마도 최근의 USB마우스등도 이런식으로 동작하리라고 예상됩니다.
답변 감사합니다~
답변 주신 분들 감사합니다~~
제가 초보라서 확실하게
이해 하지는 못했지만
많은 도움이 되었습니다~~^^
감사합니다~~~
댓글 달기