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控件上显示:

foreach (const QSerialPortInfo &qspinfo, QSerialPortInfo::availablePorts())
    {
        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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用jquery写一个属于自己的音乐播放器

看到一个用css3实现的CD的动画&#xff0c;演示在这儿http://codepen.io/_kieran/pen/QNRmep 突然那我就想说给自己做一个音乐播放器吧&#xff0c;说做就做。演示在https://echolsx.github.io/music/ Github传送门&#xff1a;https://github.com/EchoLsx/music 主要代码&…

四年一闰 随笔

今天日子比较特殊&#xff0c;碰到闰年的2月29日。好久没有记录随笔了&#xff0c;今天随便记上几笔吧 1、上家公司居然没帮我交社保&#xff0c;一整年了&#xff0c;发工资时还照扣社保的钱。。。现在说会补差额给我&#xff0c;算下来一年XXXX&#xff0c;也只是个数字&…

Qt 串口类QSerialPort 使用笔记

Qt 串口类QSerialPort 使用笔记虽然现在大多数的家用PC机上已经不提供RS232接口了。但是由于RS232串口操作简单、通讯可靠&#xff0c;在工业领域中仍然有大量的应用。Qt以前的版本中&#xff0c;没有提供官方的对RS232串口的支持&#xff0c;编写串口程序很不方便。现在好了&a…

什么是H标签?H1,H2,H3标签?以及和strong标签使用的方法及重要性

大家都知道&#xff0c;seo的一个很重要的一点就是要把网站做的条理清晰&#xff0c;让搜索引擎很容易的读明白&#xff0c;这个条理清晰不仅体现在网站的物理路径&#xff0c;url等地 方。在<h1><h2><h3>等方面也是这样。并不是<h1>对于关键字排名有帮…

OC语言中的便利初始化函数和便利构造器

便利遍历初始化函数与便利构造器&#xff08;以Student类为例&#xff09;&#xff1b; main函数 Student.h&#xff08;声明&#xff09; 。。。。。。。。。。。。。。。。。。。 Student.m&#xff08;实现&#xff09; 。。。。。。。。。。。。。。。。。 转载于:https://…

MySQL 性能监控 4 大指标

【编者按】本文作者为 John Matson&#xff0c;主要介绍 mysql 性能监控应该关注的 4 大指标。 文章系国内 ITOM 管理平台 OneAPM 编译呈现。 MySQL 是什么&#xff1f; MySQL 是现而今最流行的开源关系型数据库服务器。由 Oracle 所有&#xff0c;MySQL 提供了可以免费下载的社…

【深度相机系列四】深度相机原理揭秘--结构光(iPhone X 齐刘海原理)

from&#xff1a;https://blog.csdn.net/electech6/article/details/78707839导读 结构光法&#xff1a;为解决双目匹配问题而生 深度图效果&#xff1a;结构光vs.双目 投射图案的编码方式直接编码时分复用编码空分复用编码 Kinect1原理 iPhone X原深感相机是缩小版的更强大的K…

iOS开发中对于一些常用的相对路径(持续更新)

1.iOS开发的证书的描述文件放置地点 ~/Library/MobileDevice/Provisioning Profiles 2.$(SRCROOT)代表的是这个项目文件夹所在的位置 $(PROJECT_DIR) 表示的包含可执行文件的哪一个文件夹 3.对于pod导入的第三方库&#xff0c;引用不自动补全问题。选择target -> BuildSet…

Android倒计时工具类

为什么80%的码农都做不了架构师&#xff1f;>>> 原文地址:http://my.oschina.net/reone/blog/710003 多谢touch_ping 的回应. 原来api有这个类 android.os.CountDownTimer , 具体实现很下面的差不多. import android.content.Context; import android.os.Handler…

深度相机原理揭秘--双目立体视觉

欢迎关注计算机视觉life&#xff01;导读 为什么非得用双目相机才能得到深度&#xff1f; 双目立体视觉深度相机的工作流程 双目立体视觉深度相机详细工作原理理想双目相机成像模型极线约束图像矫正技术基于滑动窗口的图像匹配基于能量优化的图像匹配 双目立体视觉深度相机的优…

微信扫码支付模式一和模式二的区别

http://www.baidu.com/link?urlAj_xhOM5Q6rpZXkTMBPq4o0UbCO4eLq0esX8B3K2v06bkRS8F8lC4k06rv-3uZARLLTEKJHMhwzI_cdcJiHfqK&wd&eqid904bc71f000181740000000356d7d9bf https://www.zhihu.com/question/35818812/answer/66086727 知乎页面访问存在502 Bad Gateway问题…

双目视觉几何框架详解(玉米专栏8篇汇总)

一、图像坐标&#xff1a;我想和世界坐标谈谈(A) 玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题。希望这样的方式让大家以一个轻松的心态阅读玉米的《计算机视觉学习笔记》双目视觉数学架构系列博客。这个系列博客旨在捋顺一下已标定的双目视觉中的数学主线。数…

(原)Ubuntu14中安装GraphicsMagick

转载请注明出处&#xff1a; http://www.cnblogs.com/darkknightzh/p/5661439.html 参考网址&#xff1a; http://comments.gmane.org/gmane.comp.video.graphicsmagick.core/514 http://www.graphicsmagick.org/INSTALL-unix.html https://github.com/clementfarabet/graphics…

js全局函数

1.parseInt(String,radix):返回转换成整数的值。 注意&#xff1a;当参数radix的值为0&#xff0c;或者没有设置这个参数&#xff0c;parseInt()会根据string来判断数字的基数。 当忽略radix&#xff0c;JavaScript默认数字的基数规则为&#xff1a; 1.如果string以0x开头&…

android之自定义广播

布局文件 点击按钮发送广播 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"vertical" android:layout_width"match_parent&qu…

世界坐标系和相机坐标系,图像坐标系的关系

from&#xff1a;https://blog.csdn.net/waeceo/article/details/50580607一、四个坐标系简介和转换相机模型为以后一切标定算法的关键&#xff0c;只有这边有相当透彻的理解&#xff0c;对以后的标定算法才能有更好的理解。本人研究了好长时间&#xff0c;几乎每天都重复看几遍…

PythonOCC 3D图形库学习—创建立方体模型

Open CASCADE&#xff08;简称OCC&#xff09;平台是是一个开源的C类库&#xff0c;OCC主要用于开发二维和三维几何建模应用程序&#xff0c;包括通用的或专业的计算机辅助设计CAD系统、制造或分析领域的应用程序、仿真应用程序或图形演示工具。 PythonOCC是对Open CASCADE的封…

Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的,可以做为参考基准,其它测试都要向它看齐,参照...

2019独角兽企业重金招聘Python工程师标准>>> Struts2、SpringMVC、Servlet(Jsp)性能对比 测试 。 Servlet的性能应该是最好的&#xff0c;可以做为参考基准&#xff0c;其它测试都要向它看齐&#xff0c;参照它。 做为一个程序员&#xff0c;对于各个框架的性能要有…

深度相机(三)--三种方案对比

from&#xff1a;https://blog.csdn.net/app_12062011/article/details/52511701RGBD方案对比&#xff1a;关键技术规格&#xff1a; 1.检测范围&#xff1b; 2.检测精度&#xff1b; 3.检测角度&#xff1b; 4.帧率。 5.模块大小 6.功耗 目前主流的深度摄像头方案在检测距离上…

Activity隐式启动IntentFilter

时间&#xff1a;2016年3月4日09:54:02IntentFilter过滤信息&#xff1a;action、category、dataaction&#xff1a;1.Intent中的action必须能够和过滤条件中的action匹配&#xff0c;过滤条件中可以有多个action。2.Intent中如果设置多个action则过滤条件中必须至少有同样数量…