Edit on GitHub

개요

로보플러스 터미널은 텍스트 기반 UI로 제어기를 관리할 수 있는 도구입니다. 터미널 프로그램은 아스키 코드를 기반으로 제어기와 통신을 하며, 사용자에게 제어기로부터 전송되는 여러 가지 정보를 출력합니다.

통신 포트 설정

로보플러스 터미널을 이용하여 제어기에 접속하기 위해서는, 연결할 통신 포트를 설정해야 합니다.

로보플러스 터미널을 처음 실행하면 과거의 연결 정보를 그대로 복원합니다. 만약 시리얼 포트의 이름이 바뀌었거나 다른 프로그램에서 시리얼 포트를 사용 중에 있다면, 제어기와 연결되지 않을 수 있습니다.

통신 포트는 접속이 끊어진 상태에서 Setup > Connect을 실행하면 다음과 같이 포트 선택창을 볼 수 있으며, 제어기가 연결된 시리얼 포트 및 통신 속도를 선택하고 OK를 누르면 됩니다.

Note 제어기의 기본 연결 속도는 57,600bps입니다.

img

로보플러스 터미널의 시리얼 통신 설정은 다음과 같습니다.

입력 처리

로보플러스 터미널은 키보드 입력을 받아서 시리얼 통신을 통해 PC와 연결된 제어기로 신호를 전송합니다.
각 키에 따른 데이터는 다음과 같습니다.

ASCII Key
0x08 Backspace
0x0d, 0x0a Enter
0x1b ESC
0x1b, 0x5b, 0x41 커서 up
0x1b, 0x5b, 0x42 커서 down
0x1b, 0x5b, 0x43 커서 right
0x1b, 0x5b, 0x44 커서 left
0x1b, 0x5b, 0x48 Home
0x1b, 0x5b, 0x4b End

화면 지우기

로보 플러스 터미널에서는 화면 지우기 기능을 지원합니다. 복잡해진 화면을 지우기 위해서는 메뉴의 Clear Screen 명령을 실행하면 됩니다.

img

제어기 출력 처리

로보플러스 터미널은 연결된 제어기로 부터 신호를 받아서 화면에 그 내용을 출력합니다.

img

커서 제어

ASCII Key
0x08 Backspace: 커서 한 글자 뒤로
0x0a /LF: 다음줄 첫 번째로 커서 이동
0x0d /CR: 그 줄 첫 번째로 커서 이동
0x20 Space: 커서 한 글자 다음
0x21 ~ 0x7e ASCII 글자 출력 (!에서 ~까지)

데이터 전송/수신

로보플러스 터미널은 연결된 제어기와 대량의 데이터를 주고 받을 수 있습니다. 데이터 전송 프로토콜은 없습니다.

img

데이터 전송

로보플러스 터미널은 파일의 내용을 바이너리 포맷으로 연결된 제어기에 전송할 수 있습니다.
확장자가 hex인 경우는 인텔 HEX 포맷에 근거하여 바이너리로 변환하여 전송합니다. 그 외의 확장자는 변환 없이 그대로 전송합니다.
파일을 전송하는 순서는 다음과 같습니다.

ByteSum

ByteSum이란 전송된 데이터의 손실 유무를 판단할 수 있는 데이터입니다.
ByteSum은 전송하는 모든 바이트 단위 데이터를 더했을 때, 마지막 1바이트를 의미합니다.
예를 들어, FD 23 4D 2D 를 전송한다면, 각 바이트를 모두 더했을 때 01 9A가 나오며, 이 중 가장 하위 바이트인 9A가 ByteSum입니다.

img

메뉴에서 bytesum을 체크해 두면, 파일 전송시에 파일 패킷의 마지막 부분에 bytesum 패킷을 덧붙여 전송합니다.
데이터를 수신한 제어기에서 로보플러스 터미널로부터 받은 bytesum과 직접 계산한 bytesum을 비교하여 데이터 손실 유무를 확인할 수 있습니다.

데이터 수신

로보플러스 터미널은 연결된 제어기로부터 데이터를 받아서 파일로 저장할 수 있습니다. 파일을 수신하는 순서는 다음과 같습니다.

옵션 설정

로보플러스 터미널의 옵션을 설정합니다.

색상 설정하기

로보 플러스 터미널의 배경색과 텍스트 색상을 설정할 수 있습니다.

img