文末有本期的相關軟件、資料等免費獲取福利哦!
- 前言:
對於一些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介紹到這裏,下一篇繼續深入講如何打造自己的圖形化測試工具。
文末福利:
1. 掃碼關注公衆號或查看個人博客
2. 在微信後臺發送“SecureCRT”,即可免費獲得軟件和相關電子書籍。僅供學習之用。
3. 也可以在個人博客獲取相關軟件和資料的鏈接。
4. 掃碼關注後,查看往期內容,會有更多學習資料驚喜等着你來拿哦