四月 18, 2012

linux下的虚拟串口程序

Written by
今日编写了一个串口通讯程序,但是本机只有一个串口,无法验证程序的正确性,
于是想到在linux下面增加一对虚拟串口,找了半天,没有简便的解决方法,都是涉及驱动
小弟我不懂,只好继续找,最后找到一个用python语言写的一个简易程序,能够实现虚拟串口通讯
下面是源代码:
[code lang=”cpp”]
#! /usr/bin/env python

#coding=utf-8

import pty
import os
import select

def mkpty():
#
master1, slave = pty.openpty()
slaveName1 = os.ttyname(slave)
master2, slave = pty.openpty()
slaveName2 = os.ttyname(slave)
print ‘\nslave device names: ‘, slaveName1, slaveName2
return master1, master2

if __name__ == "__main__":

master1, master2 = mkpty()
while True:
rl, wl, el = select.select([master1,master2], [], [], 1)
for master in rl:
data = os.read(master, 128)
print "read %d data." % len(data)
if master==master1:
os.write(master2, data)
else:
os.write(master1, data)
[/code]

保存为VirtualComTest.py
在命令行中输入 python VirtualComTest.py &
然后会返回虚拟串口的设备地址

 

在终端里运行“python VirtualComTest.py &”,这样就可以生成一个基于pty(伪终端)的虚拟端口对,两个设备名会显示在终端里。然后就可以利用这两个设备名在本机上进行虚拟串口之类的调试~
使用完后用ps查看这个python进程的pid号,然后kill掉即可~

 

原文地址:http://fayaa.com/code/view/8500/

Category : Linux/Unixshell

Tags :

发表评论

电子邮件地址不会被公开。

Proudly powered by WordPress and Sweet Tech Theme