最在学习Qt下实现mosbus协议通信,环境为ubuntu16.04 + Qt5.6.1,Qt自带了例程。把调试程序的点滴记录下来,也希望给和我一样的小白带来帮助。
1.制作虚拟串口调试工具
在网上搜到Qt串口调试需要的工具,虚拟串口,python语言编写的,直接拿来用。
#! /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)
把上边的代码保存文件为VirtualComTest.py
在终端下执行python VirtualComTest.py效果如下图所示(虚拟串口制作完成)
此时/dev/pts/21 /dev/pts/22两个口即为连接状态
2.打开例程并调试
Qt5.6.1中搜索到modbus例程
Slave例程执行后的效果(在Port后输入 /dev/pts/21 然后点connect)
可以连接上。
Master例程执行后的效果,连接同上,Prot口输入/dev/pts/22 此时两个程序可以通信。
程序代码还没有仔细看。