Quantcast
Channel: QtWebEngine
Viewing all articles
Browse latest Browse all 13965

QSerialPort open

$
0
0
#include <QtSerialPort/QSerialPort>   #include <QApplication> #include <QtCore/QTime> #include <QtCore/QTextStream>     int main(int argc, char *argv[]) { //    QApplication app(argc, argv);       QTextStream cout(stdout);     QTextStream cin(stdin);       QSerialPort serial;     QString portName = "ttyUSB0";     serial.setPortName(portName);       if (!serial.open(QIODevice::ReadWrite)) {         cout << QObject::tr("Failed to open port %1, error: %2")                 .arg(portName)                 .arg(serial.errorString()) << endl;         return 1;     }       if (!serial.setBaudRate(QSerialPort::Baud115200)) {         cout << QObject::tr("Can't set baud rate 9600 baud to port %1, error code %2")                    .arg(portName).arg(serial.error());         return 1;     }       if (!serial.setDataBits(QSerialPort::Data8)) {         cout << QObject::tr("Can't set 8 data bits to port %1, error code %2")                    .arg(portName).arg(serial.error());         return 1;     }       if (!serial.setParity(QSerialPort::NoParity)) {         cout << QObject::tr("Can't set no parity to port %1, error code %2")                    .arg(portName).arg(serial.error());         return 1;     }       if (!serial.setStopBits(QSerialPort::OneStop)) {         cout << QObject::tr("Can't set 1 stop bit to port %1, error code %2")                    .arg(portName).arg(serial.error());         return 1;     }       if (!serial.setFlowControl(QSerialPort::NoFlowControl)) {         cout << QObject::tr("Can't set no flow control to port %1, error code %2")                    .arg(portName).arg(serial.error());         return 1;     }         QByteArray requestData("ls");     requestData.append(QLatin1String("\x0A"));       // write request     serial.write(requestData);     if (serial.waitForBytesWritten(5000)) {         //! [8] //! [10]         // read response         if (serial.waitForReadyRead(5000)) {             QByteArray responseData = serial.readAll();             while (serial.waitForReadyRead(10))                 responseData += serial.readAll();               QString response(responseData);             //! [12]             cout << response << endl;             //! [10] //! [11] //! [12]         } else {             cout << QObject::tr("Wait read response timeout %1")                          .arg(QTime::currentTime().toString());         }         //! [9] //! [11]     } else {         cout << QObject::tr("Wait write request timeout %1")                      .arg(QTime::currentTime().toString());     }       return 0; } When i run the program, it appears like this: QApplication::qAppName: Please instantiate the QApplication object first How can i do ?

Viewing all articles
Browse latest Browse all 13965

Trending Articles