티스토리 뷰

심화

User Interface - UART 문자열 입력

Just4Fun 2017. 6. 29. 20:25

이번 글에서는 실제로 사용자가 하나씩 입력하는 문자를 버퍼에 저장하였다가, 사용자가 엔터키를 누르게 되었을 때 저장해 둔 문자열을 리턴해 주는 코드를 만드는 방법에 대해서 설명하도록 하겠다.

코드가 꽤 길지만 앞에서 설명한 글을 참고하면 특정 키가 눌러졌을때에 해당하는 코드는 그렇게 길지 않으므로 조금만 분석하면 쉽게 이해할 수 있을 것이다.

주요 기능들에 대해서 간단히 설명하면 다음과 같다.

엔터키를 누르면 입력이 끝났음을 알려주는 것이므로 문자열 버퍼의 시작 주소를 리턴해 주도록 하고 있다.

백스페이스와 delete 키는 입력 중인 문자열을 수정하기 위하여 사용된다.  백스페이스키는 현재 커서가 위치하고 있는 바로 앞의 글자를 지우고 커서 뒤에 있는 문자열을 한글자씩 앞으로 당기는 기능을 수행한다.  이에 반해 delete 키는 현재 커서 위치에 있는 글자를 하나 지우고 커서 뒤에 있는 글자들을 한칸씩 앞으로 당기게 된다.

왼쪽 화살표와 오른쪽 화살표는 각각 커서를 한칸만 왼쪽 혹은 오른쪽으로 이동 시킨다.

Home 키는 입력중인 문자열의 시작 부분으로 커서를 옮기게 하고, End 키는 입력중인 문자열의 마지막 위치로 커서를 옮겨주는 기능을 수행한다.

Ctrl+B와 Ctrl+F 키는 커서를 한 단어씩 옮기도록 한다.

Ctrl+C는 입력 중인 동작을 취소할 때 사용한다.

사용자가 문자를 입력한 후 엔터키를 눌렀을 때 해당 문자열이 그대로 출력되는 것을 볼 수 있다.

코드에서 구현된 다양한 특수 키들을 눌러 보면서 입력 중인 문자들을 수정하거나 커서를 옮겨 보면서 제대로 동작되는지 확인해서 코드에 문제가 없는지 검증해 보도록 한다.


ui_command.zip


'심화' 카테고리의 다른 글

User Interface - 메뉴 방식  (0) 2017.07.08
User Interface - argc, argv  (0) 2017.07.07
User Interface - UART 특수키 처리  (0) 2017.06.24
megaOS - 13. Mailbox  (1) 2016.11.13
megaOS - 12. Flag  (0) 2016.11.08
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함