重定向接口的输出?

重定向接口的输出?

我正在将 AT 命令回显到调制解调器接口 ( /dev/ttyUSB3),并且该命令成功运行。

例如,以下命令有效并且输出为OK

echo -e "ATZ\r" > /dev/ttyUSB3

我可以通过另一个处于cat /dev/ttyUSB3活动状态的终端来看到这一点。

如何不使用cat(例如使用一个命令发送命令并获取输出),而是将输出重定向OK到变量或文件,以便我可以处理从调制解调器返回的数据?

答案1

您应该像使用普通文件一样使用串行设备。唯一的区别是它需要一些 ioctl() 来进行速度和控制线设置。

所以不要使用os.system("echo... butf = open('/dev/ttyUSB3', 'rw')和 thenf.write()f.read()

理论上,您可以用来ioctl()设置速度等,但在那个阶段,使用 pySerial 比自己进行所有参数编组更容易。ser = serial.Serial(port='/dev/ttyUSB3', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)ser.write()ser.read()

请注意,您应该使用 udev 为串行端口设置唯一的名称,而不是硬编码 /dev/ttyUSB3。以下是如何做到这一点单个 USB/RS-232 适配器以下是如何做到这一点多端口 USB/RS-232 适配器

答案2

read modem_output < /dev/ttyUSB3

相关内容