1. 前言:

对于一些WiFi模块,如ESP8266等,通常都是支持一些 AT 命令的。在一些测试过程中,每次都是要在串口工具中输入对应的 AT 指令才能完成。

如下图,为乐鑫 WiFi模块的 AT 指令。本文将对SecureCRT 串口工具中运行 Python脚本来对AT指令的模块进行相关操作测试。

python发AT命令 python at命令_ESP8266

 



    目标: 需要测量 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()

 

代码截图:

  1. 运行代码:

保存代码,在CRT 中添加按钮,具体基础的使用见上一篇教程。

运行之后,每隔3秒发送一次指令,一共测试10次,自动计算均值。

当然,还可以根据需要自己进行修改代码。

python发AT命令 python at命令_ESP8266_02

  1. 总结:

         实战1介绍到这里,下一篇继续深入讲如何打造自己的图形化测试工具。