00. 目录

  • 00. 目录
  • 01. QSerialPortInfo简介
  • 02. QSerialPortInfo类成员函数
  • 03. 程序示例一
  • 04. 程序示例二

01. QSerialPortInfo简介

QSerialPortInfo类提供已存在串口设备的信息。使用QSerialPortInfo类的静态成员函数生成QSerialPortInfo对象的链表。链表中的每个QSerialPortInfo对象代表一个串口,每个串口可以使用端口名、系统定位、描述、制造商查询。QSerialPortInfo类对象也可以用做QSerialPort类的setPort()成员函数的参数。

02. QSerialPortInfo类成员函数

//构造函数
QSerialPortInfo()
QSerialPortInfo(const QSerialPort &port)
QSerialPortInfo(const QString &name)
QSerialPortInfo(const QSerialPortInfo &other)//析构函数
~QSerialPortInfo()//返回当前系统可用串口的链表
[static] QList<QSerialPortInfo> QSerialPortInfo::availablePorts()//如果串口可用,返回串口的描述信息
QString QSerialPortInfo::description() const//如果有一个合法的16位生产码,返回true
bool QSerialPortInfo::hasProductIdentifier() const//如果有一个合法的16位制造商编码,返回true
bool QSerialPortInfo::hasVendorIdentifier() const//如果串口当前正忙,返回true
bool QSerialPortInfo::isBusy() const//如果串口可用,返回串口的制造商的名字
QString QSerialPortInfo::manufacturer() const//返回串口的名字
QString QSerialPortInfo::portName() const//如果串口可用,返回串口的16位的生产编码
quint16 QSerialPortInfo::productIdentifier() const//如果串口可用,返回串口的序列号
QString QSerialPortInfo::serialNumber() const//返回目标平台支持的可用的标准波特率的链表
[static] QList<qint32> QSerialPortInfo::standardBaudRates()//使用other交换QSerialPortInfo对象
void QSerialPortInfo::swap(QSerialPortInfo &other)//返回串口的系统位置
QString QSerialPortInfo::systemLocation() const//如果串口可用,返回16位的制造商编码
quint16 QSerialPortInfo::vendorIdentifier() const

03. 程序示例一

#include "widget.h"
#include <QDebug>
#include <QList>
#include <QtSerialPort/QSerialPortInfo>Widget::Widget(QWidget *parent): QWidget(parent)
{//获取当前系统下所有可以用的串口QList<QSerialPortInfo> serialPortInfo = QSerialPortInfo::availablePorts();qDebug() << "串口的个数: " << serialPortInfo.count();//显示目标串口支持的波特率列表QList<qint32> baudRates = QSerialPortInfo::standardBaudRates();qDebug() << baudRates;qDebug() << "串口的描述:" << serialPortInfo.at(0).description();qDebug() << "hasProductIdentifier(): " << serialPortInfo.at(0).hasProductIdentifier();qDebug() << "hasVendorIdentifier(): " << serialPortInfo.at(0).hasVendorIdentifier();qDebug() << "isBusy: " << serialPortInfo.at(0).isBusy();qDebug() << "manufacturer: " << serialPortInfo.at(0).manufacturer();qDebug() << "portName: " << serialPortInfo.at(0).portName();qDebug() << "productIdentifier: " << serialPortInfo.at(0).productIdentifier();qDebug() << "serialNumber: " << serialPortInfo.at(0).serialNumber();qDebug() << "vendorIdentifier: " << serialPortInfo.at(0).vendorIdentifier();qDebug() << "systemLocation: " << serialPortInfo.at(0).systemLocation();}Widget::~Widget()
{}

运行结果:

04. 程序示例二

int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QTextStream out(stdout);const auto serialPortInfos = QSerialPortInfo::availablePorts();out << QObject::tr("Total number of ports available: ") << serialPortInfos.count() << endl;const QString blankString = QObject::tr("N/A");QString description;QString manufacturer;QString serialNumber;for (const QSerialPortInfo &serialPortInfo : serialPortInfos) {description = serialPortInfo.description();manufacturer = serialPortInfo.manufacturer();serialNumber = serialPortInfo.serialNumber();out << endl<< QObject::tr("Port: ") << serialPortInfo.portName() << endl<< QObject::tr("Location: ") << serialPortInfo.systemLocation() << endl<< QObject::tr("Description: ") << (!description.isEmpty() ? description : blankString) << endl<< QObject::tr("Manufacturer: ") << (!manufacturer.isEmpty() ? manufacturer : blankString) << endl<< QObject::tr("Serial number: ") << (!serialNumber.isEmpty() ? serialNumber : blankString) << endl<< QObject::tr("Vendor Identifier: ") << (serialPortInfo.hasVendorIdentifier() ? QByteArray::number(serialPortInfo.vendorIdentifier(), 16) : blankString) << endl<< QObject::tr("Product Identifier: ") << (serialPortInfo.hasProductIdentifier() ? QByteArray::number(serialPortInfo.productIdentifier(), 16) : blankString) << endl<< QObject::tr("Busy: ") << (serialPortInfo.isBusy() ? QObject::tr("Yes") : QObject::tr("No")) << endl;}return 0;
}

运行结果:

【Qt5.8】Qt5.8中串口信息类QSerialPortInfo相关推荐

  1. 【Qt5.8】Qt5.8中串口类QSerialPort

    00. 目录 00. 目录 01. 串口通信基础 02. QtSerialPort模块简介 03. QSerialPort简介 04. QSerialPort类成员函数 05. 参考示例(简单的串口示 ...

  2. 在C#中使用SerialPort类实现串口通信

    在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等.本文章将本人在学习过程中从网络上搜集到的相关信息写出来供大家参考. 下面主要介绍该类的主要属性(表1) ...

  3. 在C#中使用SerialPort类实现串口通信 遇到多线程问题

    在C#中使用SerialPort类实现串口通信 遇到多线程问题 在C#中使用SerialPort类实现串口通信. 2009年11月01日 星期日 10:03 在.NET work 2.0中提供了Ser ...

  4. matlab中的方波信号图片_电气信息类专业课程之matlab系统仿真 第十章 DBPSK调制解调器(9)...

    继续展示程序!好东西总是慢慢的吃才有味道!当然对于本科阶段的学习而言,本章知识的难度已经不算小了. 函数化编程的概念应该刻在脑子里! 误码性能的展示!!! 工程经验:看误码率就能大概知晓程序是否有问题 ...

  5. Qt串口通信类Posix_QextserialPort中flush()函数修正

    开发环境:Ubuntu10.04 + Qt4.6.2 网上找的串口通信类.开发过程中调用flush函数不起作用,缓冲区还是不能被清空,导致接收很多以前的数据. 修改如下: void Posix_Qex ...

  6. 在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable。

      在一个电子商务网站应用中,涉及的实体信息类有很多,比如用户类User和用户地址类Address; 而每一个实体类的对象信息要存储到相应的数据库表中,如userTable和addressTable. ...

  7. scanner 获取控制台信息_关于java.util.scanner:如何使用Java中的Scanner类从控制台读取输入?...

    如何使用Scanner类从控制台读取输入? 像这样: System.out.println("Enter your username:"); Scanner = input(); ...

  8. Failed to introspect Class [com.controller.HardWareController] from ClassLoa在ssm中读取串口信息

    标题:Failed to introspect Class [com.controller.HardWareController] from ClassLoa在ssm中读取串口信息 之前使用java程 ...

  9. ASP.NET中使用Cache类来缓存页面的信息

    场景 ASP.NET中新建Web网站并部署到IIS上(详细图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/107199 ...

最新文章

  1. 【C语言】三种不同方法实现简易整型计算器 (三个方法递增优化)
  2. 更好的内存管理-jemalloc (redis 默认使用的)
  3. vue-cli3 一直运行 /sockjs-node/info?t= 解决方案
  4. java object monitor_Java-线程状态、ObjectMonitor
  5. python ctypes库5_如何传递一个字符串数组
  6. LeetCode 673. 最长递增子序列的个数(DP)
  7. ERROR: Cannot uninstall ‘PyYAML‘. 安装 fvcore
  8. 机械制造工艺基础_机械制造工艺基础知识,錾削与锯削加工工艺
  9. thinkphp框架学习笔记(1)
  10. 那些让你爱不释手的 Spring 代码技巧
  11. Win10系统怎么看隐藏文件夹
  12. 分享12款 JavaScript 表格控件(DataGrid)
  13. 如何在Ubuntu 18.04上安装Elasticsearch Logstash Kibana(Elastic Stack)
  14. 远程协同网络架构photon cloud
  15. python大数据培训好不好
  16. What Music简单的全网音乐播放器
  17. Oracle多表关联查询
  18. (一)基于Multisim的超外差接收系统:本地振荡器的设计
  19. logisim数据选择器_【Logisim实验】构建立即数-随机存储器-寄存器的传送
  20. java 设置excel颜色_Java 为 Excel 中的行设置交替背景色

热门文章

  1. scrum 12.2
  2. 公用表表达式(CTE)WITH:树型查询、更新
  3. Excel鲜为人知的35招秘技
  4. 计算机系统win7安装教程,惠普EliteDesk 705 G3电脑安装win7系统方法
  5. vscode markdown插件_如何用Markdown写公众号
  6. Java黑皮书课后题第5章:5.10(找出能被5和6整除的数)编写程序,显示从100到1000之间所有能被5和6整除的数,每行显示10个。数字之间用一个空格字符隔开
  7. ASP.Net_配置文件
  8. 试着理解cookie和session
  9. 015:字符串:格式化
  10. Python之迭代器