- 前言:
对于一些WiFi模块,如ESP8266等,通常都是支持一些 AT 命令的。在一些测试过程中,每次都是要在串口工具中输入对应的 AT 指令才能完成。
如下图,为乐鑫 WiFi模块的 AT 指令。本文将对SecureCRT 串口工具中运行 Python脚本来对AT指令的模块进行相关操作测试。
目标: 需要测量 WiFi 的接收信号强度。
分析:输入一次 AT 指令来测试并不能反映真实的数据值。因此需要连续测试,而且连续测试过程中不可能一直输入命令。因此用软件代码来实现是最好的了。
代码如下:
# $language = "python"
# $interface = "1.0"
'''半自动化测试代码说明:
python for SecureCRT,send the AT Command to the tools
该代码适用于特定的WiFi模块,通过串口连接到SecureCRT串口工具后,运行该程序。
可连续进行wifi信号强度测试,并且计算RSSI均值。
'''
import time
import sys
RSSI = "ATWR"
rssiList=[]
def main():
for i in range(1,11):
#向 SecureCRT 工具发送查询 RSSI 指令
crt.Screen.Send(RSSI + "\r")
#print("第 %s 次测试RSSI" %(s,i) )
#在5秒内等待屏幕出现password:或者yes/no文字进行下方操作,超过2秒表示超时
result = crt.Screen.WaitForString('[MEM]',2)
#当屏幕出现 wifi_get_rssi: rssi 字符
if result == 1:
# CurrentRow返回当前光标的行坐标。
curRow = crt.Screen.CurrentRow
rssiRow = curRow - 3
rssiRow1 = rssiRow + 1
#out = crt.Screen.Get(rssiRow, 1, rssiRow1, 26)
#crt.Dialog.MessageBox(out)
# rssi 值在第 24,25列
rssi = crt.Screen.Get(rssiRow, 23, rssiRow1, 26)
rssiList.append(int(rssi))
#crt.Dialog.MessageBox(str(rssiList))
time.sleep(3)
sum = 0
for x in rssiList:
sum = sum+x
avr_rssi = sum/(len(rssiList))
strshow = "本次一共进行"+ str(len(rssiList)) + "次RSSI测试,平均 RSSI="+str(avr_rssi)
crt.Dialog.MessageBox(strshow,"平均RSSI值")
main()
代码截图:
- 运行代码:
保存代码,在CRT 中添加按钮,具体基础的使用见上一篇教程。
运行之后,每隔3秒发送一次指令,一共测试10次,自动计算均值。
当然,还可以根据需要自己进行修改代码。
- 总结:
实战1介绍到这里,下一篇继续深入讲如何打造自己的图形化测试工具。