QT串口编程的相关类(QSerialPortInfo)
QT Serial Port相關(guān)的類只有兩個(gè)QSerialPortInfo(#include<QSerialPortInfo>) 和QserialPort(#include<QSerialPort>)
先來介紹QSerialPortInfo
1:QSerialPortInfo(#include<QSerialPortInfo>)?
該類是一個(gè)串口的輔助類類,提供主要是提供系統(tǒng)已經(jīng)存在串口的信息。
該類中的靜態(tài)函數(shù)(QList<QSerialPortInfo> availablePorts()后面詳細(xì)介紹)生成了一個(gè)QSerialPortInfo對(duì)象的QList。
在該QList中的每個(gè)QSerialPortInfo對(duì)象分別對(duì)應(yīng)于各個(gè)可用端口的信息(主要包括端口號(hào)(com),系統(tǒng)的位置,以及串口類型,廠商等信息)
可以調(diào)用靜態(tài)該函數(shù)來獲取系統(tǒng)的每一個(gè)可用端口信息QSerialPortInfo成員信息可以被調(diào)用于使用在QSerialPort設(shè)置串口。
跨平臺(tái)是QT的優(yōu)勢(shì),該類支持幾乎所有的主流平臺(tái),其QT WIKI截圖如下:
下面來詳細(xì)介紹QSerialPortInfo的成員以及功能
其成員public函數(shù)分為幾類
1:構(gòu)造函數(shù)
QSerialPortInfo()
QSerialPortInfo(const QSerialPort & port)
QSerialPortInfo(const QString & name)
QSerialPortInfo(const QSerialPortInfo & other)
以上四個(gè)構(gòu)造函數(shù)是在定義該類的對(duì)象的時(shí)候接受不同的參數(shù)創(chuàng)建對(duì)象。
2:析構(gòu)函數(shù)
~QSerialPortInfo() ?
3:端口信息函數(shù)
該類函數(shù)主要是返回該對(duì)象所對(duì)應(yīng)的端口信息。
QString description() const ? ?該函數(shù)返回的是一個(gè)QString數(shù)據(jù)類型,表示對(duì)象所對(duì)應(yīng)的端口類型,例如是標(biāo)準(zhǔn)的通信端口,還是USB轉(zhuǎn)串口等
bool hasProductIdentifier() const 判斷該端口是否有有效的的16位產(chǎn)品編碼,有的話返true否則返回false
bool hasVendorIdentifier() const 判斷該端口是否有有效的16位產(chǎn)品供應(yīng)商的編碼,有的話返true否則返回false
boolisBusy() const ? 判斷該端口是否被被占用,有的話返true否則返回false
boolisNull() const ?判斷該對(duì)象是否有一個(gè)確定的對(duì)應(yīng)關(guān)聯(lián)端口,如果是有的話返true否則返回false
QStringmanufacturer() const ?返回生產(chǎn)廠商的信息
QStringportName() const ? 返回對(duì)象對(duì)應(yīng)的端口號(hào)類型,端口號(hào)類型用QString數(shù)據(jù)類型表示,若是沒有有效廠家信息,返回的是空QString
quint16productIdentifier() const ?返回端口的16位序列號(hào),若是沒有,返回的是0
QStringserialNumber() const ?返回用QSrting表示的的序列號(hào) ?是在5.3以后的版本才有的
void swap(QSerialPortInfo & other) 該對(duì)象與 other引用所指向的對(duì)象互換相關(guān)信息,該函數(shù)的運(yùn)行非常快,而且不會(huì)失敗。
QString systemLocation() const ?返回串口系統(tǒng)的位置
quint16 vendorIdentifier() const返回該端口是否有有效的16位產(chǎn)品供應(yīng)商的編碼,若是沒有則返回0
4:static函數(shù)
static函數(shù)為類的全部服務(wù)而不是為某一個(gè)類的具體對(duì)象服務(wù)。static成員函數(shù)與靜態(tài)數(shù)據(jù)成員一樣,都是類的內(nèi)部實(shí)現(xiàn),屬于類定義的一部分。
QList<QSerialPortInfo>availablePorts() ? ?該靜態(tài)函數(shù)返回的是QSerialPortInfo對(duì)象的QList,該QList中的QSerialPortInfo對(duì)象對(duì)應(yīng)于該系統(tǒng)的可用的端口。
調(diào)用該函數(shù)可以返回可用的端口
例如,該例子將每一個(gè)可用的端口的端口名打印出來,在comboBox控件上顯示:
foreach?(const?QSerialPortInfo?&qspinfo,?QSerialPortInfo::availablePorts())????{
? ? ? ? ui->comboBox->addItem(qspinfo.portName());
? ? } ?? QList<qint32> standardBaudRates() ?該函數(shù)返回的是當(dāng)前串口標(biāo)準(zhǔn)的可用的波特率
其他函數(shù):
QSerialPortInfo &operator=(const QSerialPortInfo & other)
如運(yùn)算符重載函數(shù)等
實(shí)例:
在mainwindows上從comboBox顯示可用端口號(hào)以及textEdit上顯示端口號(hào)的具體信息
我的試驗(yàn)環(huán)境實(shí)在筆記本上用的是兩個(gè)USB轉(zhuǎn)串口設(shè)備,設(shè)備在設(shè)備管理器的顯示信息如圖:
新建qtwidget工程 選擇mainwindow為主窗口
在mainwindow.cpp中添加如下代碼
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); foreach (const QSerialPortInfo &qspinfo, QSerialPortInfo::availablePorts()) { ui->comboBox->addItem(qspinfo.portName()); ui->textEdit->append("portname " + qspinfo.portName()); ui->textEdit->append("description: " + qspinfo.description()); ui->textEdit->append("manufacture "+ qspinfo.manufacturer()); ui->textEdit->append("serialnumber "+ qspinfo.serialNumber()); ui->textEdit->append("systemlocation "+qspinfo.serialNumber()); } } 然后運(yùn)行代碼會(huì)得到如截圖結(jié)果源碼連接為http://download.csdn.net/detail/mcu_tian/8426653
總結(jié)
以上是生活随笔為你收集整理的QT串口编程的相关类(QSerialPortInfo)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kjb文件 解析_微信安装包解析异常
- 下一篇: c++ int *p = new int