通信协议(服务器and分机 )

通信协议(服务器and分机 )

本文说明服务器和分机之间的通信协议:


数据帧格式 组成:

项目 说明
命令头 start
数据字节 data(长度不定)
命令尾 end

1、电机控制(一直运行)0x01:

参数 说明
0x01 向前
0x02 向后
0x03 停止
-
返回 ACK
//前进
usartSendBuf(start,0x01,0x01,end);
>>> ACK

2、运动到指定坐标0x11:

参数 说明
坐标 (3个字节(最高字节+1后发送)+1个校验和),高字节在前
-
返回 ACK-CAK-NAK
//运动到坐标1000
usartSendBuf(start,0x11,0x00,0x03,0xe8,0xe8,end);
>>> NAK(丢帧)
>>> CAK(校验错误)
>>> ACK(执行成功)

3、回归原点0x02:

参数 说明
-
返回 ACK
//归原点
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:

参数 说明
-
返回 ACK
//
usartSendBuf(start,0x04,end);
>>> ACK

6、5V信号结束(只对小车持续电平有效)0x07:

参数 说明
-
返回 ACK
//
usartSendBuf(start,0x07,end);
>>> ACK

7、切换速度(只对大梁有效)0x06:

参数 说明
-
返回 ACK
//速度类型
低速:0x00
中速:0x01
高速:0x02
//切换到高速
usartSendBuf(start,0x06,0x02,end);
>>> ACK

8、读取目标地址0x08:

参数 说明
-
返回 标识符(:)+目标地址(3字节地址(高字节+1)+1个校验)+标识符(:)
//
usartSendBuf(start,0x08,end);
>>> start
>>> :
>>> 目标地址(3字节地址(高字节+1)+1个校验)
>>> :
>>> end

猜你喜欢

转载自blog.csdn.net/qq_35608461/article/details/81901253