문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
mdisplay:uif-8_프로토콜:index [2016/04/17 02:14] Comfile Technology [텍스트 작성 방법] |
mdisplay:uif-8_프로토콜:index [2023/06/21 04:04] Comfile Technology [UTF-8 모드 체크섬 사용시] |
||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ====== 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 시리얼 칼라 그래픽 디스플레이]] |