成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux 虛擬串口及 Qt 串口通信實例

移動開發
Linux 虛擬串口及 Qt 串口通信實例是本文所要介紹的內容,在實現過程中,打開了兩個偽終端,然后讀兩個口子的數據,如果是從1號口來的,就往2號口寫入數據,從2號口來的就寫到1號口。

Linux下的虛擬終端

由于手上沒有可以測試的串口設備,因此發了點時間找了一個Linux下的虛擬串口工具:http://fayaa.com/code/view/8500/ ,這個工具打開了兩個偽終端,然后讀兩個口子的數據,如果是從1號口來的,就往2號口寫入數據,從2號口來的就寫到1號口。

經過我的修改后變成了這個樣子:

  1. #! /usr/bin/env python  
  2.  
  3. #coding=utf-8  
  4.  
  5. import pty  
  6. import os  
  7. import select  
  8.  
  9. def mkpty():  
  10.     #  
  11.     master1, slave = pty.openpty()  
  12.     slaveName1 = os.ttyname(slave)  
  13.     master2, slave = pty.openpty()  
  14.     slaveName2 = os.ttyname(slave)  
  15.     print '\nslave device names: ', slaveName1, slaveName2  
  16.     return master1, master2  
  17.  
  18.  
  19. if __name__ == "__main__":  
  20.  
  21.     master1, master2 = mkpty()  
  22.     while True:          
  23.         rl, wl, el = select.select([master1,master2], [], [], 1)  
  24.         for master in rl:  
  25.             data = os.read(master, 128)  
  26.             if master==master1:  
  27.                 print "read %d data:" % len(data)  
  28.                 print data  
  29.                 #os.write(master2, data)  
  30.             else:  
  31.                 print "to write %d data:" % len(data)  
  32.                 print data.strip()  
  33.                 os.write(master1, data.strip()) 

改變后 我們讓1號口為讀入口(串口設備讀入數據的口子),2號口為寫出口(串口向外面寫數據),將其保存為com.py

  1. #python com.py  
  2. slave device names:  /dev/pts/1 /dev/pts/2 

意思是pts/1為1號口 pts/2為2號口

另建一個終端 #cd /dev/pts/

  1. #echo 456 > 2 

就會向2號口寫數據,如果我們沒有其他程序讀串口的數據的話,那么就會出現4行數:

  1. to write 5 data:  
  2. 456  
  3. read 3 data:  
  4. 456 

那么我們只要用程序讀/dev/pts/1就可以模擬串口通信了

Qt下的串口通訊

Qt沒有自帶串口模塊,只有第三方庫 http://wenku.baidu.com/view/55849f4ffe4733687e21aa99.html,這篇文章介紹了簡單的Qt串口通信

學著他的例子也做了一個程序,核心代碼:

  1. MainWindow::MainWindow(QWidget *parent) :  
  2.     QMainWindow(parent),  
  3.     ui(new Ui::MainWindow)  
  4. {  
  5.     ui->setupUi(this);  
  6.     com = new QextSerialPort("/dev/pts/1", QextSerialPort::Polling);  
  7.     com->open(QextSerialPort::ReadWrite);  
  8.     com->setBaudRate(BAUD9600);  
  9.     com->setDataBits(DATA_8);  
  10.     com->setParity(PAR_NONE);  
  11.     com->setStopBits(STOP_1);  
  12.     com->setFlowControl(FLOW_OFF);  
  13.     com->setTimeout(10);  
  14.     QTimer *timer = new QTimer(this);  
  15.     connect(timer, SIGNAL(timeout()), this, SLOT(readCOM()));  
  16.     timer->start(20);  
  17. }  
  18. void MainWindow::readCOM()  
  19. {  
  20.     if (com->bytesAvailable() > 1)  
  21.         ui->showText->insertPlainText(com->readAll());  
  22. }  
  23. void MainWindow::on_btnSend_clicked()  
  24. {  
  25.     com->write(ui->edit->text().toAscii().data());  

運行結果:Qt串口寫數據

收到數據:

Linux 虛擬串口及 Qt 串口通信實例

串口Qt寫數據(下面那個終端控制)

Linux 虛擬串口及 Qt 串口通信實例

注意:1號口和2號口的方向問題很難分清楚,暫時這樣理解了沒必要深究 windows下的虛擬串口工具為VSPM,是Telnet管理的,建議先研究這個。

小結:Linux 虛擬串口 Qt 串口通信實例的內容介紹完了,希望本文對你 有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-06-22 17:36:50

QT Linux 串口

2011-06-13 17:46:07

Qt 串口通信

2011-06-27 11:08:37

Qt 串口 通信

2011-06-29 14:23:08

Qt 串口

2011-06-29 14:42:06

Qt 串口

2011-06-29 14:32:25

Qt 串口

2011-06-29 14:06:15

Qt 串口

2011-06-29 13:50:15

Qt 串口

2024-12-24 07:38:44

C#串口通信

2011-07-01 13:03:32

QT 線程 串口

2024-06-03 10:11:13

2009-10-21 13:02:20

linux串口操作函數操作系統

2023-11-15 13:55:32

2011-07-11 14:12:19

Java串口通信

2010-01-05 17:39:10

.NET Framew

2009-08-25 17:24:55

C#串口通信程序

2011-07-11 14:19:54

JAVA串口通信

2021-01-18 05:30:22

串口通信Qt

2021-05-29 16:12:00

通信協議設備

2025-06-16 07:30:00

WinForm串口通信開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久亚洲 | 日韩电影中文字幕在线观看 | 日韩欧美不卡 | 91精品久久久久久久久 | 在线观看av免费 | 欧美性一区二区三区 | 国产伊人精品 | 一级毛片免费 | 一区二区三区在线免费观看 | 欧美日韩一卡 | 盗摄精品av一区二区三区 | 日本午夜精品一区二区三区 | 亚洲视频自拍 | 一区二区三区国产好 | 日本天堂视频在线观看 | www.一区二区三区 | 伊人欧美视频 | av激情在线| 超碰在线久 | 国产四虎 | 91高清视频在线观看 | 男女久久久 | 久久久久久成人 | 奇米影视在线 | 一级日批片 | 精品欧美一区二区三区精品久久 | 九一视频在线观看 | www精品美女久久久tv | 日本免费一区二区三区 | 国产精品视频偷伦精品视频 | 久草精品视频 | 玖玖国产| av片在线观看网站 | 免费黄色av网站 | 午夜精品一区二区三区在线视 | 亚洲精品乱码久久久久久久久 | 久久精品国产亚洲a | 国产特级毛片aaaaaa | 91在线免费视频 | 午夜精品影院 | 日日综合 |