##APWindowsFormsDemo软件维护手册
###1 引言
####1.1 编写目的:
供需要在windows下开发AP系列产品控制软件的开发者参考
####1.2 项目背景:
AP系列产品具有较好的软件支持和使用体验。为了进一步提升开发者对该系列产品使用的信心与降低上手难度,故开发对应的控制库文件APSpecified.dll与相应使用该库文件的WindowsForm Demo(C#)
####1.3 定义:
AP:AutolaborPro系列产品。
###2 系统说明
####2.1 系统用途:
与AP系列产品进行串口通信,收发二进制数据。可以解析与封装各个指令,并将各条指令即时解析和可视化。
####2.2 安全保密:
####2.3 总体说明:
程序APWindowsFormsDemo界面划分为4块,分别是初始化设置、运动控制、数据观察、状态跟踪等。并用图表的方式给出系统主要部分的内部关系。APSpecified.dll提供指令封装与解析对象、指令与小车参数换算方法、指令执行等各个方法。
####2.4 程序说明:
####2.4.1 APSpecified.dll的说明
####● 功能:
#####APproto类:
将指令分解为消息头、序号、消息载荷、校验码等结构,并提供相应的设置器,获取器,以及指令的解析与封装方法(使各个参数“各就各位”)。
#####APcommand类:
对已知的AMproto对象进行读取和进行相应动作的响应
#####AMvelTransform类:
根据小车的运动模型参数,如轮径、编码器单圈脉冲数等,进行指令数据与实际速度的换算等
#####SpecialMethod类:
提供适用于AP小车通信协议的byte/int数据类型转换方法
####● 处理:
处理特点和目的,如:用图表说明程序的运行的逻辑流程;
####● 接口:
***打开串口:*** ```APSerialPort:openPort();```
***关闭串口:***```APSerialPort:closePort();```
***开始控制线程:***```APSerialPort:controlStart();```
***发送数据:***```APSerialPort:sendBytes();```
***解析并执行:***```APSerialPort:decodeExecute();```
***请求电量:***```APSerialPort:reqBattery();```
***请求当前编码器累计计数:***```APSerialPort:reqWheelSpeed(short LSpeed, short RSpeed);```
***请求车轮停止驶动:***```APSerialPort:wheelstop();```
***请求车向右行驶:***```APSerialPort:goRight();```
***请求车向后行驶:***```APSerialPort:goBack();```
***请求车向左行驶:***```APSerialPort:goLeft();```
***请求车向前行驶:***```APSerialPort:goAhead();```
***请求重置以恢复对小车的速度控制:***```APSerialPort:reqReset(); ```
####2.4.2 APWindowsFormsDemo的说明
####● 功能:
可以通过界面的“前”、“后”、“左”、“右”四个按键控制小车行进,也可以手动敲入对应的指令信息,控制包括行进在内的行为。当小车回应“错误”时,本软件会自行发送reset重置指令,恢复对小车的控制。接收到信息时,会自动进行解析并将所得信息展示在界面上。用户也可以通过“解析”按键进行解析。
####● 输入:
通过对应按键(电量“获取”按键等)发送指令或通过编辑框直接输入格式完整且正确Hex指令并发送。
####● 处理:
处理特点和目的,如:用图表说明程序的运行的逻辑流程;程序主要转移条件;对程序的约束条件;程序结束时的出口要求;与下一个程序的通信与联结(运行、控制);由该程序产生并茶馆处理程序段使用的输出数据类型和存放单元;程序运行存储量、类型及存储位置等。
####● 输出:
接收到的数据将以Hex字符串的形式展现在接收框中,同时自动进行解析,得到的电量信息、状态信息(如“错误”、“重置成功”、“编码器清空失败”等)将展示在“状态跟踪”框内
####● 特有的运行性质:
- 请勿重复点按“初始化”按钮,否则该端口将拒绝访问,由此可能导致程序崩溃;
- 长按“前”、“后”、“左”、“右”按钮,可控制小车驶动;松开按钮则小车立即停止。长按时,程序将以5Hz的频率向小车发送速度指令。
###3 操作环境
####3.1 设备:
Windows系统
####3.2 支持软件:
Visual Studio
###4 程序清单和流程图:
```flow
st=>start:start
op1=>operation:
op2=>operation:enter baudrate, etc.
op3=>operation:enter
op4=>click "initialize"
st->op1->op2->op3
op1->op3
```