最在学习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  此时两个程序可以通信。

 

程序代码还没有仔细看。




Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐