欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【Qt5.8】Qt5.8中串口信息类QSerialPortInfo

发布时间:2024/4/21 61 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【Qt5.8】Qt5.8中串口信息类QSerialPortInfo 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。