通信协议(服务器and分机 )
本文说明服务器和分机之间的通信协议:
数据帧格式 组成:
项目 |
说明 |
命令头 |
start |
数据字节 |
data(长度不定) |
命令尾 |
end |
1、电机控制(一直运行)0x01:
参数 |
说明 |
0x01 |
向前 |
0x02 |
向后 |
0x03 |
停止 |
- |
|
返回 |
ACK |
usartSendBuf(start,0x01,0x01,end);
>>> ACK
2、运动到指定坐标0x11:
参数 |
说明 |
坐标 |
(3个字节(最高字节+1后发送)+1个校验和),高字节在前 |
- |
|
返回 |
ACK-CAK-NAK |
usartSendBuf(start,0x11,0x00,0x03,0xe8,0xe8,end);
>>> NAK(丢帧)
>>> CAK(校验错误)
>>> ACK(执行成功)
3、回归原点0x02:
usartSendBuf(start,0x02,end);
>>> ACK(已经到原点)
4、读取状态0x03:
参数 |
说明 |
无 |
|
- |
|
返回 |
方向(1个字节)+当前坐标(3个字节+1个校验) |
0x01:正在向前
0x02:正在向后
0x03:已经停止
0x04:正在归原点
usartSendBuf(start,0x03,end);
>>> start
>>> 0x01
>>> 0x00,0x03,0xe8,0xe8,
>>> end
5、5V信号输出(只对小车有效)0x04:
usartSendBuf(start,0x04,end);
>>> ACK
6、5V信号结束(只对小车持续电平有效)0x07:
usartSendBuf(start,0x07,end);
>>> ACK
7、切换速度(只对大梁有效)0x06:
低速:0x00
中速:0x01
高速:0x02
usartSendBuf(start,0x06,0x02,end);
>>> ACK
8、读取目标地址0x08:
参数 |
说明 |
无 |
|
- |
|
返回 |
标识符(:)+目标地址(3字节地址(高字节+1)+1个校验)+标识符(:) |
usartSendBuf(start,0x08,end);
>>> start
>>> :
>>> 目标地址(3字节地址(高字节+1)+1个校验)
>>> :
>>> end