사용자 도구

사이트 도구

English

mdisplay:binary_프로토콜:index

Binary 프로토콜

Binary 프로토콜의 모든 명령어는 다음과 같은 포맷을 갖추고 있습니다.

<DLE><STX><본체><DLE><ETX>

<DLE> = 16 진수 10
<STX> = 16 진수 02
<ETX> = 16 진수 03

사용예)

항목 DLE STX DrawLine 0 0 1000 1000 DLE ETX
Byte(Hex) 10 02 11 00-00 00-00 E8-03 E8-03 10 03

16 비트, 또는 32 비트 수를 보낼때에는 아랫쪽 바이트를 먼저 보내주어야 합니다. 즉, 3E8 을 보내려면 E8 을 먼저보내고 03 을 나중에 보내야 합니다.

인수(Arguments)는 다음과 같은 type이 사용됩니다.

Argument Type 설명
Real Number 10 을 곱한 좌표. 예: 123.4 는 1234 로 써줍니다.
UInt8 8-bit 부호없는 정수
Int16 16-bit 부호있는 정수
UInt16 16-bit 부호없는 정수
UInt32 32-bit 부호없는 정수
Color 부호가 없는 32-bit 정수 , 16 진수 (AARRGGBB)
Alpha(AA, 00 = 불투명, FF = 투명), Red(RR), Green(GG), Blue(BB)
예)
000000FF = 불투명 파랑
0000FF00 = 불투명 녹색
00FF0000 = 불투명 빨강
Text 문자열, 맨뒤에는 NULL 문자가 필요합니다.

이중 Real Number 는 소수점 밑 한자리를 포함하는 좌표를 뜻합니다. 123.4 를 원하면 위해서는 1234 를 사용합니다. 즉 실제값에서 곱하기 10 한 값을 사용하는 것입니다.

COLOR 는 24 비트로 표현하지만, 내부적으로는 16 비트 (565 비트)로 처리됩니다.

DrawLine 사용예

DrawLine 에 해당하는 코멘드 코드인 11 을 사용하였습니다.

항목 DLE STX 코멘드 code(DrawLine) 0 0 1000 1000 DLE ETX
Byte(Hex) 10 02 11 00-00 00-00 E8-03 E8-03 10 03

본체에 <DLE>코드값인 10 이 포함되어 있다면, <DLE><DLE>로 보내주어야 합니다. 즉 10 을 두번 연속 보내주어야 합니다.

항목 DLE STX DrawLine 16 0 1000 1000 DLE ETX
Byte(Hex) 10 02 11 10-10-00 00-00 E8-03 E8-03 10 03

문자열 뒤에는 반드시 00 을 보내야 합니다.

항목 DLE STX FillText 1000 1000 Helllo DLE ETX
Byte(Hex) 10 02 1A E8-03 E8-03 48-65-6C-6C-6F-00 10 03

응답 멧세지

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 (HEX 06)을 포함하고 있습니다.

항목 DLE STX ACK 성공 DLE STX
Byte(Hex) 10 02 06 00-00 10 03

비정상적인 실행의 경우 NAK(HEX 15)를 포함하고 있습니다.

항목 DLE STX NAK 알수없는 명령어 DLE STX
Byte(Hex) 10 02 15 01-00 10 03

Binary 모드 체크섬 사용시

체크섬 On 모드에서는 다음과 같은 방법으로 체크섬을 추가해서 보내주어야 합니다.

<DLE><STX>를 제외한 모든 Byte 를 합산하여 사용합니다.

(11 + 00 + 00 + 00 + 00 + E8 + 03 + E8 + 03 = 01E7)

항목 DLE STX DrawLine 0 0 1000 1000 Checksum DLE STX
Byte(Hex) 10 02 11 00-00 00-00 E8-03 E8-03 E7-01 10 03

응답 멧세지도 체크섬을 포함하고 있습니다. (06 + 00 + 00 + 00 + 00 = 0006)

항목 DLE STX ACK 성공 Checksum DLE STX
Byte(Hex) 10 02 06 00-00-00-00 06-00 10 03
mdisplay/binary_프로토콜/index.txt · 마지막으로 수정됨: 2016/04/17 03:47 저자 Comfile Technology