您当前的位置:首页 > 电子 > 总线与接口/协议

使用procomm plus执行串口脚本

时间:08-26来源:作者:点击数:

1 串口脚本

有些串口工具(例如串口调试助手)有定时发送功能,但只能发送一条固定的命令。我需要发送几百条命令,又懒得写程序,就希望找一个可以执行串口脚本的工具。然后我找到了procomm plus

procomm plus的功能很多。我只需要串口脚本功能,所以没有执行安装程序,解压后直接执行Programs目录的PW5.EXE。在菜单中选择Options->System Options->Modem Connection...,在“Current Modem/Connection”的下拉列表中选择要打开的串口或modem。在主窗口下方可以直接点击、设置编码格式、波特率。编码格式可以选择RAW ASCII。在主窗口可以直接敲AT命令,看到响应,和超机终端差不多。

在菜单中选择Tools->Scripts,就可以看到脚本相关的菜单,包括执行、编译、编辑、录制脚本。procomm plus的脚本系统叫做ASPECT,功能看上去很强大,可以定义变量,有for、while 等流程控制,甚至包括接受用户输入的对话框。procomm plus中有完善的教程和帮助文档。

我当然不会先看文档。首先做的就是录制一个脚本,看看大概是什么样子,然后照猫画虎编写自己的脚本。脚本的源文件是后缀为WAS的文件。源文件经过编译才能运行,编译产生的文件后缀是wax。

如果读者也是只想用串口脚本功能,建议不要安装procomm plus,直接运行就可以了。安装后,每次启动会检测所有modem,浪费时间。

2 脚本示例

2.1 发送大量命令

我要做的一个事情就是给一个modem打补丁,要发送两百多条命令。例如:

AT:PIB
AT:Pf800,7b5d,4dc,7b5f,4de,7b59,4d8,7b5b,4da
AT:Pf808,7b55,4d4,7b57,4d6,7b51,4d0,7b53,4d2
...

modem对这些命令的响应都是"\r\nOK\r\n"。通过录制的脚本,可以看到发送命令并等待响应的过程可以用以下语句完成:

   transmit "AT:PIB^M"
   waitfor "K^M^J"

显然transmit就是向串口写。waitfor就是等待响应了。^M是回车符0D(就是\r)、^J是换行符0A(就是\n)。 waitfor语句在等待正常响应的最后3个字符。看懂这两句后,编写脚本的过程就是对要发送命令的简单替换。 文本编辑器中将行首

^

替换成

   transmit "

将行尾

$

替换成

^M"\n   waitfor "K^M^J"

替换时要选上“正则表达式”。将替换后的文本放到

proc main
endproc

之间就可以了。完整的脚本看上去是这样:

proc main
   transmit "AT:PIB^M"
   waitfor "K^M^J"
   transmit "AT:Pf800,7b5d,4dc,7b5f,4de,7b59,4d8,7b5b,4da^M"
   waitfor "K^M^J"
   transmit "AT:Pf808,7b55,4d4,7b57,4d6,7b51,4d0,7b53,4d2^M"
   waitfor "K^M^J"
...
endproc

以后我需要打补丁,就是执行这两百多条命令的时候,只要执行这个脚本就可以了。

2.2 自动测试

我需要通过串口敲键测试一台设备。我录制了一次测试过程,然后用for循环自动测试100次。脚本看上去是这样:

proc main
   integer Num                ; Integer variable to increment.

   for Num = 0 upto 100       ; Init variable and define loop.
	   transmit "o"
	   waitfor "wait ..."
	   transmit "1"
	   waitfor "wait ..."
	   transmit "0"
	   waitfor "wait ..."
	   transmit "0"
	   waitfor "wait ..."
	   transmit "0"
	   waitfor "xt_connected_enter^M^J"
	   transmit "p"
	   waitfor "xt_idle_enter^M^J"
...
   endfor
endproc

当然,在很多情况下,人工测试比自动测试更容易发现问题。不过,用串口脚本作自动测试也可以作为一种辅助的手段。

3 结束语

procomm plus的功能还有很多,它的脚本系统ASPECT的功能也远远不止于此。不过目前我只用到这些。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门