QT串口编程的相关类(QSerialPortInfo)
QT Serial Port相关的类只有两个QSerialPortInfo(#include<QSerialPortInfo>) 和QserialPort(#include<QSerialPort>)
先来介绍QSerialPortInfo
1:QSerialPortInfo(#include<QSerialPortInfo>)
该类是一个串口的辅助类类,提供主要是提供系统已经存在串口的信息。
该类中的静态函数(QList<QSerialPortInfo> availablePorts()后面详细介绍)生成了一个QSerialPortInfo对象的QList。
在该QList中的每个QSerialPortInfo对象分别对应于各个可用端口的信息(主要包括端口号(com),系统的位置,以及串口类型,厂商等信息)
可以调用静态该函数来获取系统的每一个可用端口信息QSerialPortInfo成员信息可以被调用于使用在QSerialPort设置串口。
跨平台是QT的优势,该类支持几乎所有的主流平台,其QT WIKI截图如下:
下面来详细介绍QSerialPortInfo的成员以及功能
其成员public函数分为几类
1:构造函数
QSerialPortInfo()
QSerialPortInfo(const QSerialPort & port)
QSerialPortInfo(const QString & name)
QSerialPortInfo(const QSerialPortInfo & other)
以上四个构造函数是在定义该类的对象的时候接受不同的参数创建对象。
2:析构函数
~QSerialPortInfo()
3:端口信息函数
该类函数主要是返回该对象所对应的端口信息。
QString description() const 该函数返回的是一个QString数据类型,表示对象所对应的端口类型,例如是标准的通信端口,还是USB转串口等
bool hasProductIdentifier() const 判断该端口是否有有效的的16位产品编码,有的话返true否则返回false
bool hasVendorIdentifier() const 判断该端口是否有有效的16位产品供应商的编码,有的话返true否则返回false
boolisBusy() const 判断该端口是否被被占用,有的话返true否则返回false
boolisNull() const 判断该对象是否有一个确定的对应关联端口,如果是有的话返true否则返回false
QStringmanufacturer() const 返回生产厂商的信息
QStringportName() const 返回对象对应的端口号类型,端口号类型用QString数据类型表示,若是没有有效厂家信息,返回的是空QString
quint16productIdentifier() const 返回端口的16位序列号,若是没有,返回的是0
QStringserialNumber() const 返回用QSrting表示的的序列号 是在5.3以后的版本才有的
void swap(QSerialPortInfo & other) 该对象与 other引用所指向的对象互换相关信息,该函数的运行非常快,而且不会失败。
QString systemLocation() const 返回串口系统的位置
quint16 vendorIdentifier() const返回该端口是否有有效的16位产品供应商的编码,若是没有则返回0
4:static函数
static函数为类的全部服务而不是为某一个类的具体对象服务。static成员函数与静态数据成员一样,都是类的内部实现,属于类定义的一部分。
QList<QSerialPortInfo>availablePorts() 该静态函数返回的是QSerialPortInfo对象的QList,该QList中的QSerialPortInfo对象对应于该系统的可用的端口。
调用该函数可以返回可用的端口
例如,该例子将每一个可用的端口的端口名打印出来,在comboBox控件上显示:
{
ui->comboBox->addItem(qspinfo.portName());
}
QList<qint32> standardBaudRates() 该函数返回的是当前串口标准的可用的波特率
其他函数:
QSerialPortInfo &operator=(const QSerialPortInfo & other)
如运算符重载函数等
实例:
在mainwindows上从comboBox显示可用端口号以及textEdit上显示端口号的具体信息
我的试验环境实在笔记本上用的是两个USB转串口设备,设备在设备管理器的显示信息如图:
新建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());
}
}
然后运行代码会得到如截图结果
源码连接为http://download.csdn.net/detail/mcu_tian/8426653
QT串口编程的相关类(QSerialPortInfo)相关推荐
- QT开发(五十)——QT串口编程基础
QT开发(五十)--QT串口编程基础 一.QtSerialPort简介 1.串口通信基础 目前使用最广泛的串口为DB9接口,适用于较近距离的通信.一般小于10米.DB9接口有9个针脚. 串口通信的主要 ...
- # 串口编程(SerialPort类)
串口编程(SerialPort类) 转自https://www.cnblogs.com/xinai/ 近期由于项目中用到串口编程,而以前有从未使用过,查阅相关资料,先将串口编程整个过程整理如下,以备不 ...
- Hello Qt(四十六)——QT串口编程基础
一.QtSerialPort简介 1.串口通信基础 目前使用最广泛的串口为DB9接口,适用于较近距离的通信.一般小于10米.DB9接口有9个针脚. 串口通信的主要参数如下: A.波特率:衡量通信速度的 ...
- 串口编程(SerialPort类)
近期由于项目中用到串口编程,而以前有从未使用过,查阅相关资料,先将串口编程整个过程整理如下,以备不时之需. SerialPort类简述 此类位于System.IO.Ports命名空间下.用于控制串行端 ...
- 【Qt串口调试助手】1.1 - Qt5编写串口调试助手,Qt串口编程
这章来学习串口数据流操作.仿照已有成品制作一个用Qt开发的串口调试助手. 介于篇幅有限,本篇只介绍一个最简单的能收发的串口调试助手的制作.后续篇幅会陆续对剩余代码进行讲解,并添加各种功能,对显示.操作 ...
- Linux下Qt使用QAudio相关类进行音频采集,使用Windows下的Matlab软件播放
Qt集成的QAudio相关类可以很方便的进行音频采集,主要涉及到以下几个类: #include <QAudioInput> #include <QAudioDeviceInfo> ...
- 【转】[Qt教程] Qt串口通信全新专题
版权声明 该文章原创于Qter开源社区(www.qter.org),转载请注明出处! 软件:QCom跨平台串口调试助手! 更新提示 这次源码更新,与前面"串口通信专题"主要有下面两 ...
- linux实验串行端口程序设计,Linux下串口编程心得(转)
最近一段时间,需要完成项目中关于Linux下使用串口的一个部分,现在开帖记录过程点滴. 项目的要求是这样的,Qt应用程序主要完成数据采集和发送功能,一开始在google中海搜关键字"Qt串口 ...
- 深入浅出Qt数据库编程:从基本操作到高级技巧
深入浅出Qt数据库编程:从基本操作到高级技巧 (Demystifying Qt Database Programming: From Basic Operations to Advanced Tech ...
最新文章
- Linux设备文件简介。
- 在项目中使用JMail发送邮件
- ASP.NET页面刷新的几种实现方法
- 网站搭建从零开始(七) WordPress站点的完善
- HDOJ1014 Uniform Generator
- 谁说菜鸟不会数据分析--读书笔记
- 12.混淆——采样低频信号,采样高频信号_3
- python能做页面加载动画吗_HTML+CSS实现页面加载(loading)动画效果
- python如何读取tfrecord_tensorflow将图片保存为tfrecord和tfrecord的读取方式
- 现有php环境下安装memcached并测试(centos6.4系统64位)
- Scala下载及IDEA安装Scala插件(保姆级教程超详细)
- table实现radio单选效果
- 别踩白块游戏java项目总结_学习小游戏别踩白块总结
- 如何判断一个数是否素数
- MATLAB:巴特沃斯低通滤波器过滤信号
- Oracle12C--触发器(52)
- WPS—JS宏笔记记录
- 【xcode】Xcode常用快捷键与技巧
- 【转载】男性穿衣常识
- 思科计算机网络设计局域网,CISCO局域网设计(毕业设计)_图文.doc
热门文章
- 狗窝里的小日子- 3 ...
- 关于hexo与github使用过程中的问题与笔记
- latex 幻灯片演示模板
- 【转】 JMeter学习(二十四)linux启动jmeter,执行./jmeter.sh报错解决方法
- 【转】error while loading shared libraries: xxx.so.x 错误的原因和解决办法
- 设计模式之Builder (创建者模式)的一些个人理解(转)
- + 网页制作效果常用代码
- 如何阅读3,500万个博客?
- Sublime Text3中文环境设置
- 使用iconv-lite解决node当中不支持GBK编码的问题