通过 bash 脚本发送 AT 命令
Sending AT command through bash script
我正在测试一些带有 USB 转串口 (RS232) 转换器的卫星调制解调器。我已经测试了 "connection",它可以工作。我正在使用 minicom,并且能够捕获从一个终端(运行 一个回显随机数的 bash 脚本)发送到另一个终端的数据。
要让这个调制解调器发送东西,我必须向它发送 AT 命令。最好的方法是什么?我应该从我的 bash 脚本中回显 AT 命令吗?或者有什么更好的方法吗?
#!/bin/bash
while true;
do
number=$RANDOM
echo $number >/dev/ttyUSB0
sleep 4
done
感谢您的宝贵时间!
由于您正在与调制解调器通话,因此与调制解调器通话的一般方法是使用 ModemManager,一个为您处理与调制解调器通信的应用程序。
如果您无法使用 ModemManager 或出于某种原因必须使用 bash,请注意命令必须以 \r\n
结尾,以便调制解调器使用。我发现最好的方法是使用 /bin/echo
如下:
/bin/echo -n -e "AT\r\n" > /dev/ttyUSB0
这确保 echo 将转义字符适当地转换为回车符 return 和换行符。
我从这里得到了一个有效的答案:
https://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem-in-linux
第一次使用socat。
echo "AT" | socat - /dev/ttyUSB2,crnl
效果很好。
然后我用了atinout
echo AT | atinout - /dev/ttyACM0 -
最终我选择了 socat
,因为 atinout
不在任何存储库中。
我正在测试一些带有 USB 转串口 (RS232) 转换器的卫星调制解调器。我已经测试了 "connection",它可以工作。我正在使用 minicom,并且能够捕获从一个终端(运行 一个回显随机数的 bash 脚本)发送到另一个终端的数据。
要让这个调制解调器发送东西,我必须向它发送 AT 命令。最好的方法是什么?我应该从我的 bash 脚本中回显 AT 命令吗?或者有什么更好的方法吗?
#!/bin/bash
while true;
do
number=$RANDOM
echo $number >/dev/ttyUSB0
sleep 4
done
感谢您的宝贵时间!
由于您正在与调制解调器通话,因此与调制解调器通话的一般方法是使用 ModemManager,一个为您处理与调制解调器通信的应用程序。
如果您无法使用 ModemManager 或出于某种原因必须使用 bash,请注意命令必须以 \r\n
结尾,以便调制解调器使用。我发现最好的方法是使用 /bin/echo
如下:
/bin/echo -n -e "AT\r\n" > /dev/ttyUSB0
这确保 echo 将转义字符适当地转换为回车符 return 和换行符。
我从这里得到了一个有效的答案:
https://unix.stackexchange.com/questions/97242/how-to-send-at-commands-to-a-modem-in-linux
第一次使用socat。
echo "AT" | socat - /dev/ttyUSB2,crnl
效果很好。
然后我用了atinout
echo AT | atinout - /dev/ttyACM0 -
最终我选择了 socat
,因为 atinout
不在任何存储库中。