重定向介面的輸出?

重定向介面的輸出?

我正在將 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

相關內容