命令库与序列
命令库解决两件事:每天反复敲的那十几条命令,做成按钮一键发送;按固定顺序发送、等待并检查回复的测试流程,做成一条序列,交给同事或客户现场照着跑(Free 版有运行次数和步数限制,见文末),结果一眼看得出通过还是失败。
命令库属于工程,不属于某一个连接:所有连接共用同一套命令和序列,点击时发往当前连接——也就是最后获得键盘焦点的那个连接,标签页布局下就是正在显示的那一页。
打开方式:
- 工具 → 命令库… 编辑命令和序列;
- 视图 → 命令面板 在窗口右侧显示按钮。面板默认隐藏,第一次添加命令后会自动打开。
命令按钮
在命令库的「命令」页添加命令,每条命令包括:
- 名称:显示在按钮上;留空时按钮显示命令内容的开头。
- 格式:文本或十六进制。文本里的
\r\n\t\xHH表示对应的字节,这一点与发送框的转义开关无关——保存下来的命令里写\r\n,只可能是想发这两个控制字节。十六进制按严格格式解析,每字节两位,写错一个字符会直接报错,而不是悄悄发出00。 - 行尾与追加校验:可以单独指定,也可以选「跟随连接的发送设置」,发送时按当前连接的设置处理。行尾只对文本命令有效,十六进制命令就是它列出的那些字节(加上校验)。一条内容为空、但设了行尾的命令,就是一次单纯的回车,很多控制台靠它唤醒提示符。
- 快捷键:例如
Ctrl+1,在窗口任意位置按下即向当前连接发送。 - 备注:作为按钮的悬停提示。
编辑框下方实时显示「在当前连接上将发送 N 字节」和实际的十六进制字节,按的是当前连接的编码、行尾和校验设置。
命令可以分组,每组在面板上是一个页签。右键按钮可以复制到发送框再手工修改,或直接编辑。点击按钮与点「发送」完全一样:连接没打开时会先打开,文件传输进行中会拒绝并说明原因。命令不会进入发送历史。
序列
序列是一串按顺序执行的步骤:
| 步骤 | 作用 |
|---|---|
| 发送命令 | 发送一条命令。可以从命令库复制一条进来,步骤保存的是自己的副本,所以序列交给别人后仍能运行 |
| 等待 | 暂停若干毫秒 |
| 期望回复 | 在时限内等待匹配的数据;时限设为「不限」则一直等到匹配或手动停止 |
| 标签 | 给某个位置命名,供下面的「重复」步骤回到这里 |
| 重复 | 回到某个标签(或序列开头),让中间的步骤共运行 N 遍;也可以设为「直到停止」 |
在命令面板里点序列名即在当前连接上运行;运行中面板和接收区上方都有「停止」按钮。同一个连接同时只能运行一条序列,不同连接可以各跑各的。
序列在第一个字节发出之前就整体检查一遍:命令能否按当前连接的编码发出、期望的匹配规则是否有效、每个「重复」回到的标签是否在它上方、它重复的步骤里是否有发送、等待或期望(否则会空转)。有问题会指出是第几步,一个字节都不发。命令库编辑器里「步骤」表下方的检查结果,和运行时用的是同一套检查。
期望回复怎么匹配
匹配方式与自动应答相同:文本(支持 \r \n \t \xHH)、十六进制(?? 匹配任意字节,如 01 03 02 ?? ??)、通配符(* 匹配任意长度,? 匹配一个字节)和正则表达式。
有两条规则决定了哪些数据算数:
- 只看上一次发送之后收到的数据。 回复是对上一条命令的回答;之前命令剩下的一个
OK,不能让后面的检查误判通过。 - 匹配到的字节会被用掉。 连续两个期望
OK的步骤,需要设备回两次OK。
回复分几次到达(串口上很常见)不影响匹配。每个期望步骤默认超时即判失败、停在这一步;勾选「超时未匹配时记为失败并继续执行」后会记下失败继续往下跑,整条序列最后仍然判为失败——适合一次跑完、列出所有不合格项的产线检查。
运行结果
运行时接收区上方出现一条进度条,显示序列名、当前第几步、正在做什么和已用时间。结束后它变成结论并一直保留,直到关闭或下一次运行:
- 绿色:通过,以及总用时;
- 红色:在第 N 步失败,是哪一步、为什么(例如「1000 毫秒内未匹配」);
- 橙色:在第 N 步停止,以及原因(手动停止、连接关闭、文件传输接管了连接)。
接收区里也会插入系统行:序列开始、每个期望步骤的结果(✓ / ✗ 及用时)、最终结论,与设备的数据按时间顺序排在一起。接收区处于暂停时不插入这些行,结论仍然留在进度条上。
关闭连接或开始文件传输都会停止正在运行的序列并记下原因——序列的下一步不会在你背后重新打开端口。
随工程保存与分享
- 随工程保存:保存的
.spu工程包含命令库,打开工程就恢复。没有打开工程时,命令库保存在本机,新建工程(文件 → 新建)也从这份开始;打开别人的工程不会覆盖你本机的命令库。 - 命令文件
.spucmd:命令库编辑器或命令面板「⋯」菜单里的导出把整个命令库存成一个文件,发给同事或客户;对方导入后,命令和序列加入其命令库,与现有名称重复的会自动编号,不会覆盖。
Free 与 SPU Pro
命令面板本身在 Free 里完整可用:分组、按钮、快捷键、格式、行尾和校验,以及随工程保存。
序列在 Free 里用于验证流程:
- 每次运行软件可执行 3 次序列,重启后重新计数;
- 每条序列运行前 5 步,超出时会提示并可选择只运行前 5 步;
- 可以导入
.spucmd并在上述限制内运行,导出需要 SPU Pro——收到文件的同事用 Free 也能试跑,完整运行长序列或反复运行需要 SPU Pro。
SPU Pro 没有这些限制。