====== UTF-8 프로토콜 ====== 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 {{ :mdisplay:uif-8_프로토콜:text1.png?nolink |}} 문자열이 공백을 포함하고 있다면 쌍따옴표로 감싸주어야 합니다. FillText 100 100 "Hello World" {{ :mdisplay:uif-8_프로토콜:text2.png?nolink |}} 문자열중에 쌍따옴표를 표시하고 싶다면 다음과 같이 하십시오. FillText 100 100 "Double Quotes (\") must be escaped" {{ :mdisplay:uif-8_프로토콜:text3.png?nolink |}} 문자열중에 역슬레쉬를 표시하고 싶다면 다음과 같이 하십시오. FillText 100 100 "Backslashes (\\) must also be escaped" {{ :mdisplay:uif-8_프로토콜:text4.png?nolink |}} ---- ===== UTF-8 모드 체크섬 사용시 ===== 체크섬 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 | [[mdisplay:index|M Display 시리얼 칼라 그래픽 디스플레이]]