Skip to content

JSON 协议

数据包格式

本协议所规定的所有数据包均采用标准 TLV(Type, Length, Value)格式,包含固定起始包头和 CRC 校验。

项目长度 (Byte)说明
SyncByte2固定包头 0x4E66
Length2十六进制长度 0~2000;不包含数据头、命令字和 CRC 段
Command2命令字
dataLength数据段(主要为 JSON 格式)
CRC4对不含包头的所有数据做 CRC32 校验

data 数据段主要为 JSON 数据格式。

示例

设置机器人 1 伺服状态为 0,发送以下数据(十六进制):

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}\n0x0a 为换行符,可加可不加)
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获取状态广播信息,无需心跳机制

心跳检查机制

5000/6000 通讯端口建立之后,需设计心跳模式以确保通讯状态正常。

流程:

  1. 示教器定期向控制器发送心跳检查包
  2. 控制器收到心跳包后,回复心跳回应包,包数据为检查包所携带的时间戳
  3. 示教盒收到回应包后检查数据是否正确
  4. 数据不正确或超时未收到回应,则认为连接可能中断

心跳超时时间:6 秒