2013-03-19 114 views
1

我有一個庫(PyModbus)我想使用它需要一個tty設備,因爲它將與使用串行連接的設備進行通信。但是,我要與之交談的設備將落後於支持串行over tcp的調制解調器(該設備插入調制解調器的com端口)。從串口通過TCP連接創建一個假TTY設備

沒有調制解調器,它將是微不足道的。我會連接一個USB串行電纜到設備,另一端連接到電腦。在調制解調器中,服務器必須連接到調制解調器上的tcp端口,並通過該端口來提取串行數據。調制解調器將收到的數據傳遞給連接到com端口的設備。

在Linux中,什麼是從「serial over TCP連接」創建假tty用於暫時使用然後被銷燬的最佳方式。這將定期發生,並且在任何給定時間,單個linux服務器可能有10〜500個這樣的模擬設備打開。

+0

使用socat我沒有給你一個完整的答案,但是從標準庫中的'pty'模塊可能會開始尋找一個好地方。它可以讓你設置一個僞tty設備,你可以從一個標準的文件描述符中提供。 – 2013-03-19 09:22:45

+0

PyModbus不支持使用TCP? – JeffS 2013-03-19 13:36:35

+0

@JeffS PyModbus可以,但TCP modbus與協議級別的串行modbus不同。所以從tcp modbus開始並將其吐出到串口設備上並不適用。但是,看起來您可以強制TCP modbus使用RTU(二進制串行modbus)幀。這可能會起作用。 – michael 2013-03-19 17:07:33

回答

1

如果我不明白,你需要做這樣的連接:

[pyModbus < - (假的串) - >進程] < - (TCP/IP) - > [調制解調器< - (串行) - >設備]

我建議這個

+0

你能否建議如何使用socat將進程的標準輸出重定向到虛擬串行設備? – fakedrake 2015-04-18 14:22:20