最近同事因为调试一款软件,须要发送数据到串口,远端的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上面.测试