Skip to content

JSON 프로토콜

데이터 패킷 형식

본 프로토콜에서 규정하는 모든 데이터 패킷은 표준 TLV(Type, Length, Value)형식을 사용하며, 고정 시작 헤더와 CRC 검사를 포함합니다.

항목길이 (Byte)설명
SyncByte2고정 패킷 헤더 0x4E66
Length216진수 길이 0~2000; 데이터 헤더, 명령어 및 CRC 구간은 포함하지 않음
Command2명령어
dataLength데이터 구간(주로 JSON 형식)
CRC4패킷 헤더를 제외한 모든 데이터에 대한 CRC32 검사

data 데이터 구간은 주로 JSON 데이터 형식입니다.

예시

로봇 1의 서보 상태를 0으로 설정하고 다음 데이터를 전송합니다(16진수).

4e 66 00 17 20 01 7b 22 72 6f 62 6f 74 22 3a 31 2c 22 73 74 61 74 75 73 22 3a 30 7d 0a 6b 92 6d ff

데이터 구간 분해 설명:

필드내용
4e 66고정 패킷 헤더
00 17데이터 구간 길이(23바이트)
20 01명령어
7b...7d 0a데이터 구간. ASCII 문자열 {"robot":1,"status":0}\n에 해당(0x0a는 줄 바꿈 문자이며 추가하거나 생략할 수 있음)
6b 92 6d ffCRC32 검사 코드

데이터 구간 ASCII 코드 대응:

7b  -->  {
22  -->  "
72  -->  r
6f  -->  o
62  -->  b
6f  -->  o
74  -->  t
22  -->  "
3a  -->  :
31  -->  1
2c  -->  ,
22  -->  "
73  -->  s
74  -->  t
61  -->  a
74  -->  t
75  -->  u
73  -->  s
22  -->  "
3a  -->  :
30  -->  0
7d  -->  }
0a  -->  줄 바꿈 문자(선택 사항)

마지막 0x0a 줄 바꿈 문자를 추가하지 않으면 전송 데이터는 다음과 같습니다.

4e 66 00 16 20 01 7b 22 72 6f 62 6f 74 22 3a 31 2c 22 73 74 61 74 75 73 22 3a 30 7d 53 dd eb 72

컨트롤러 포트

포트프로토콜용도
5000TCP작업 파일 및 구성 파일 전송(가져오기/내보내기), 소프트웨어 업그레이드; 대량 작업 파일 전송에는 FTP도 사용할 수 있음
6000TCP일반 명령 전송, 주로 티칭 펜던트 등의 프로그램 개발에 사용
7000TCP/UDP상태 브로드캐스트 정보 획득, heartbeat 메커니즘 불필요

Heartbeat 검사 메커니즘

5000/6000 통신 포트를 설정한 후 통신 상태가 정상인지 확인하기 위한 heartbeat 모드를 설계해야 합니다.

절차:

  1. 티칭 펜던트가 정기적으로 컨트롤러에 heartbeat 검사 패킷을 전송합니다.
  2. 컨트롤러가 heartbeat 패킷을 수신하면 heartbeat 응답 패킷을 회신합니다. 패킷 데이터는 검사 패킷에 포함된 timestamp입니다.
  3. 티칭 펜던트가 응답 패킷을 수신한 후 데이터가 올바른지 확인합니다.
  4. 데이터가 올바르지 않거나 제한 시간 내에 응답을 수신하지 못하면 연결이 끊겼을 수 있다고 판단합니다.

Heartbeat timeout: 6초