UTF-8 프로토콜의 모든 명령어는 다음과 같은 포맷을 갖추고 있습니다.
<\n><본체><\r> |
\n = 16 진수 0A
\r = 16 진수 0D
사용예)
\nDrawLine 0 0 100 100\r |
명령어는 대소문자 구분을 하지않습니다. 인수(Arguments)는 다음과 같은 type이 사용됩니다.
Argument Type | Format | 설명 |
---|---|---|
Real Number | 실수 (3.4E +/- 38 ) | 32-bit 실수 예) 10.3 10 0 320.5 |
UInt8 | 10 진수 (0 ~ 255) | 8-bit 부호없는 정수 |
Int16 | 10 진수 (-32,768 ~ 32,767) | 16-bit 부호있는 정수 |
UInt16 | 10 진수 (0 ~ 65,535) | 16-bit 부호없는 정수 |
UInt32 | 10 진수 (0 ~ 4,294,967,295) | 32-bit 부호없는 정수 |
Color | 16 진수 (AARRGGBB).예: 불투명 빨강 = 00FF0000 | 32 비트 부호없는 정수 Alpha(AA, 00 = 불투명, FF = 투명), Red(RR), Green(GG), Blue(BB) |
Text | UTF-8 | UTF-8 코드로된 문자열 |
COLOR 는 24 비트로 표현하지만, 내부적으로는 16 비트 (5,6,5 비트)로 처리됩니다.
M DISPLAY는 모든 명령어에 대해 Status code를 포함한 응답 멧세지를 보내줍니다.
Status Code (Hex) | 설명 |
---|---|
0000 | Success |
0001 | Unknown command |
0002 | Wrong number of command arguments |
0003 | Invalid command argument |
0004 | Error reading from a file |
0005 | Memory allocation error |
0006 | Serial communication error |
0007 | Checksum error |
FFFF | Unspecified error |
다음과 같은 포맷을 응답멧세지를 보내줍니다.
성공시 Ack 라는 문자를 포함하고 있습니다.
\nAck 0000\r |
비정상적인 실행인 경우에는 Nak 라는 문자를 포함하고 있습니다. 알 수없는 코멘드 일 때 다음과 같이 응답합니다.
\nNak 0001\r |
UTF-8 프로토콜에서 텍스트 작성 방법은 다음과 같습니다.
다음 명령을 실행하면 결과가 다음과 같이 표시됩니다.
FillText 100 100 Hello World
문자열이 공백을 포함하고 있다면 쌍따옴표로 감싸주어야 합니다.
FillText 100 100 "Hello World"
문자열중에 쌍따옴표를 표시하고 싶다면 다음과 같이 하십시오.
FillText 100 100 "Double Quotes (\") must be escaped"
문자열중에 역슬레쉬를 표시하고 싶다면 다음과 같이 하십시오.
FillText 100 100 "Backslashes (\\) must also be escaped"
체크섬 On 모드에서는 다음과 같은 방법으로 모든 명령문 끝에 체크섬을 추가해서 보내주어야 합니다.
명령문안에 모든 문자의 UTF-8 (ASCII)코드값을 서로 더한뒤 맨뒤에 그 값을 적어줍니다.
(D + r + a + w+ L + I + n + e + space + 0 + space + 0 + space + 1 + 0 + 0 + space + 1 + 0 + 0 + space ) 모두 더한결과 = 16 진수 0538
DrawLine 0 0 100 100 0538 |
응답 멧세지도 체크섬을 포함하고 있습니다.
(A + c + k + space + 0 + 0 + 0 + 0 + space ) 모두 더한결과 = 16 진수 020F
Ack 0000 020F |