Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 使用两个不同的脚本在串行端口中读写_Python 3.x_Serial Port_At Command - Fatal编程技术网

Python 3.x 使用两个不同的脚本在串行端口中读写

Python 3.x 使用两个不同的脚本在串行端口中读写,python-3.x,serial-port,at-command,Python 3.x,Serial Port,At Command,我正在尝试使用AT命令通过串行端口处理SIMCOM调制解调器(SIM7100E)。 为此,我正在尝试构建一个脚本,该脚本将始终侦听串行端口并处理如下答案: import serial ser =serial.Serial('/dev/ATModem_SIM2',115200) while True: line=ser.readline() print(line) 使用另一个脚本,我尝试将AT命令发送到同一个串行端口: echo "AT" > /dev

我正在尝试使用AT命令通过串行端口处理SIMCOM调制解调器(SIM7100E)。 为此,我正在尝试构建一个脚本,该脚本将始终侦听串行端口并处理如下答案:

import serial

ser =serial.Serial('/dev/ATModem_SIM2',115200)
while True:
    line=ser.readline()
    print(line)
使用另一个脚本,我尝试将AT命令发送到同一个串行端口:

echo "AT" > /dev/ATModem_SIM2 
虽然希望在python脚本中阅读OK,但我读的是“AT\n”,而不是答案

注意:调制解调器工作正常,我已经使用它进行了测试,我得到了答案:

root@phyboard-mira-imx6-5:~# catty  -d /dev/ATModem_SIM2 -b 115200 -1 -8 -n -l -r 8 -s 10 -t 100 -x -w "AT\r"
AT
OK
root@phyboard-mira-imx6-5:~# catty  -d /dev/ATModem_SIM2 -b 115200 -1 -8 -n -l -r 8 -s 10 -t 100 -x -w "ATI\r"
ATI
Manfacturer: SIMCOM INCORPOATED
Revision: SIM7100E_V4.5
IMEISV: xxxxxxxxxxxxxx
+GCAP: +CGSM

OK
下面是我正在尝试做的事情的示意图:

请理解:当您同时使用两个脚本时,问题就出现了?如果您不运行侦听脚本,只在第二个脚本中使用
cat/dev/ATModem\u SIM2&&echo“>/dev/ATModem\u SIM2
,该怎么办?我怀疑串行端口打开时存在并发问题。我不明白的是,为什么您似乎能够接收到您发出的命令(
AT\n
)的回音而没有收到答案。您试图做的事情毫无意义。听力脚本如何知道预期内容?如果调制解调器响应错误,如何通知发送脚本?与调制解调器的对话(在命令模式下)是一种简单的请求-响应消息交换。不需要并发发送和接收过程。你正在制造不必要的复杂性和新问题。这个方案的优点是什么?它是一个新版本暂停的实验项目,但也许可以使用pyserialasyncio。如果你接手并恢复开发怎么办?