2015-04-24 206 views
3

我想通過使用shell腳本將AT命令發送到我的調制解調器並解析結果以驗證是否返回OK。發送調制解調器AT命令和解析結果

at=`echo -ne "AT+CFUN1=1\r\n" > /dev/ttyUSB0 | cat /dev/ttyUSB0` 

解析at1變量並提取「OK」或「ERROR」的最佳方法是什麼?

+3

您不能將AT命令從普通命令行發送到調制解調器。您需要使用像'socat'或'minicom'這樣的東西來建立與調制解調器的串行連接。請參閱:[**如何將AT命令發送到Linux中的調制解調器?**](http://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem- in-linux) –

+0

你也可以使用[kermit](http://www.kermitproject.org/)。 –

+0

我正在使用minicom建立到主板的串行連接。一旦調制解調器啓動,我使用microcom或socat與它交談。但是,可以通過使用簡單的回聲通過此接口發送AT命令,是不是? – ogs

回答

1

將AT命令發送到調制解調器並像命令行一樣從命令行捕獲它的輸出是絕對可能的,然而不是只需使用純粹的bash shell腳本。這就是爲什麼我編寫程序atinout專門用於支持你問的場景。

測試類似如下:

MODEM_DEVICE=/dev/ttyUSB0 

MODEM_OUTPUT=`echo AT | atinout - $MODEM_DEVICE -` 
case $MODEM_OUTPUT 
in 
     *OK*) 
       echo "Hurray, modem is up and running :)" 
       ;; 
     *) 
       echo "Oh no! Something is not working :(" 
       ;; 
esac 

如果你打算解析任何更復雜的方式輸出,你應該輸出保存到一個文件通過而不是給出一個文件名,而不是最後的-和讀取。

相關問題