lowermachine/protocol/下位机和上位机通信协议.md
Miaow 71f8e672d5 机器已经部署到淮安
8月底出差告一段落,运行一切正常
1. 添加了喷阀数据队列走空计数和自动补偿功能
2. 喷阀数据队列发生不可恢复的异常时向上位机报告错误
3. 取消双FIFO
2022-09-01 21:40:16 +08:00

39 lines
2.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 下位机和上位机通信协议 V1.3
| 起始 | 长度高 | 长度低 | 类型高 | 类型低 | 数据字节1 | ... | 数据字节n | 校验低 | 校验高 | 结束 |
| ---- | ------ | ------ | ------ | ------ | --------- | ---- | --------- | ------ | ------ | ---- |
| 0xAA | 0x00 | 0x0A | 's' | 't' | | | | 0xFF | 0xFF | 0xBB |
**长度**=数据字节数+2组成一个无符号16位数校验字节随意给值即可
**类型**
- 命令
- 开始命令 st**长度**3**数据**0xFF
- 停止命令sp**长度**3**数据**0xFF
- 测试命令te**长度**10数据为十进制字符串'0''0''0''0''0''0''5''0'表示值50'5'在前,'0'在后
- 停止测试tt**长度**3**数据**0xFF
- poweron命令po**长度**3**数据**0xFF
- 设置相机触发周期对应的脉冲数sc**长度**10数据为十进制字符串'0''0''0''0''0''0''5''0'表示值50'5'在前,'0'在后
- 设置阀板动作对应的脉冲数sv**长度**10数据为十进制字符串'0''0''0''0''0''0''5''0'表示值50'5'在前,'0'在后
- 设置相机触发到阀板动作的延迟脉冲数sa**长度**10数据为十进制字符串'0''0''0''0''0''0''5''0'表示值50'5'在前,'0'在后
- 数据命令da **长度**为视需求而定,数据要有(**长度**-2个字节
- 数据
数据就是阀数据,其实这是一个命令,也就是数据命令'da'分到数据这一节写是因为它的参数格式和其他命令不同下表为字节排序接收时从右往左也就是数据字节1先接收到然后是数据字节2最后是数据字节(m-1)。
阀1代表面向各块阀板最靠近右边的阀所以最左边的为阀n
| 数据字节(m-1) | 数据字节(m-2) | ... | 数据字节2 | 数据字节1 | 数据字节0 |
| ------------- | -------------- | ---- | --------- | --------- | --------- |
| 阀n~(n-7) | 阀(n-8)~(n-15) | ... | 阀24-17 | 阀16-9 | 阀8-1 |
对于各个字节其中的位是这么对应的以数据字节2为例
| 位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
| 阀8 | 阀7 | 阀6 | 阀5 | 阀4 | 阀3 | 阀2 | 阀1 |
需要注意的是这里的数据不是ascii编码的是直接的数据字节。上面描述字节排序的表为hostcomputer图像中的一行对应的阀动作一共若干行发送完一行后接着发送下一行直到最后一行。因此一共有(行数*m)个字节的数据。