Appearance
JSON 协议
数据包格式
本协议所规定的所有数据包均采用标准 TLV(Type, Length, Value)格式,包含固定起始包头和 CRC 校验。
| 项目 | 长度 (Byte) | 说明 |
|---|---|---|
| SyncByte | 2 | 固定包头 0x4E66 |
| Length | 2 | 十六进制长度 0~2000;不包含数据头、命令字和 CRC 段 |
| Command | 2 | 命令字 |
| data | Length | 数据段(主要为 JSON 格式) |
| CRC | 4 | 对不含包头的所有数据做 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}\n(0x0a 为换行符,可加可不加) |
6b 92 6d ff | CRC32 校验码 |
数据段 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控制器端口
| 端口 | 协议 | 用途 |
|---|---|---|
| 5000 | TCP | 传输导入/导出作业文件、配置文件,升级软件;大量作业文件传输也可采用 FTP |
| 6000 | TCP | 常规命令传输,主要用于示教器等程序的开发 |
| 7000 | TCP/UDP | 获取状态广播信息,无需心跳机制 |
心跳检查机制
5000/6000 通讯端口建立之后,需设计心跳模式以确保通讯状态正常。
流程:
- 示教器定期向控制器发送心跳检查包
- 控制器收到心跳包后,回复心跳回应包,包数据为检查包所携带的时间戳
- 示教盒收到回应包后检查数据是否正确
- 数据不正确或超时未收到回应,则认为连接可能中断
心跳超时时间:6 秒