• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: 其他
  • 标签: Qt5  串口  控制台  

资源简介

使用Qt5自带的QSerialPort和QSerialPortInfo写的控制台程序,可读取串口数据。环境:win7 64位系统,Qt版本:qt-opensource-windows-x86-mingw482_opengl-5.3.0

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

QT_USE_NAMESPACE
int main(int argc char *argv[])
{
    QCoreApplication (argc argv);
    QTextStream standardOutput(stdout);
    QSerialPort serialPort;
    QList serialPortInfoList = QSerialPortInfo::availablePorts();

    /*standardOutput << Qobject::tr(“Total number of ports available: “) << serialPortInfoList.count() << endl;
    const QString blankString = Qobject::tr(“N/A“);
    QString description;
    QString manufacturer;
    QString serialNumber;*/
    foreach (const QSerialPortInfo &serialPortInfo serialPortInfoList) {
        /*description = serialPortInfo.description();
        manufacturer = serialPortInfo.manufacturer();
        serialNumber = serialPortInfo.serialNumber();*/
        serialPort.setBaudRate(QSerialPort::Baud115200);
        serialPort.setPortName(serialPortInfo.portName());
        standardOutput << 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*/
            << Qobject::tr(“Baud Rate: %1“).arg(serialPort.baudRate()) << endl;
    }
    if (!serialPort.open(QIODevice::ReadWrite))
    {
        standardOutput << Qobject::tr(“Failed to open port %1 error: %2“).arg(serialPort.portName()).arg(serialPort.error()) << endl;
        return 1;
    }

    QByteArray readData = serialPort.readAll();
    while (serialPort.waitForReadyRead(1000))
        readData.append(serialPort.readAll());
    if (serialPort.error() == QSerialPort::ReadError)
    {
        standardOutput << Qobject::tr(“Failed to read from port %1 error: %2“).arg(serialPort.portName()).arg(serialPort.errorString()) << endl;
        return 1;
    }
    else if (serialPort.error() == QSerialPort::TimeoutError && readData.isEmpty())
    {
        standardOutput << Qobject::tr(“No data was currently available for reading from port %1“).arg(serialPort.portName()) << endl;
        return 0;
    }
    else
    {
    standardOutput << Qobject::t

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3363  2014-07-04 13:47  Sreader\main.cpp

     文件        469  2014-07-02 16:09  Sreader\Sreader.pro

     文件      18211  2014-07-04 13:47  Sreader\Sreader.pro.user

     目录          0  2014-07-04 13:47  Sreader

----------- ---------  ---------- -----  ----

                22043                    4


评论

共有 条评论