最近同事因爲調試一款軟件,須要發送數據到串口,遠端的PC機具有接入串口的硬件設備,而本機不具有接入串口的硬件設備,不方便調試。因而想找一個這樣的軟件,把本地的串口數據經過TCP/IP鏈接到遠端的PC機上,再發送到遠端PC上的串口。相似於本地串口<--->TCP/IP<--->遠端串口。python
因而打算用python寫一個本地串口經過TCP/IP映射到遠端串口的程序。一開始就遇到一個問題:如何用python截取本地串口的數據呢?想象着就像accessport同樣,能夠進行串口數據流的獲取,可是技術有限,實現不了。後面有了一個很好的解決方法:先用虛擬串口軟件,虛擬兩個互連的串口,而後軟件從其中一個虛擬串口獲取數據,調試的軟件發送數據到與之配對的虛擬串口,就能夠把這個問題解決了。因而變成調試軟件使用虛擬串口1<--->虛擬串口2(與虛擬串口1配對)<--->TCP/IP<--->遠端串口(實際存在的串口)。 服務器
實際上這樣的軟件還能夠用於一些硬件設備,鏈接於一臺電腦的串口,而後經過這樣的工具,就能夠被其餘pc機(經過虛擬串口)使用。在測試,調試都能更加方便.socket
實現的時候仍是使用wxglade和python配合,使用到的模塊有socket,Queue,serial,thread。本機測試截圖:工具
從com6虛擬口接受數據發送到遠端的服務器,而後服務器再發送給com1,com1返回數據再發送到本地,本地的client端在發送到com6上面.測試