Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. QtSerialPort - I can't see what I send
Qt 6.11 is out! See what's new in the release blog

QtSerialPort - I can't see what I send

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
4 Posts 3 Posters 622 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Sajjad Ali
    wrote on last edited by
    #1

    I have "Hercules Simulator" I send data from my Qt Creator, but don't see anything on Hercules.

    What I am doing wrong? pls help

    #include <QApplication>
    #include <QQmlApplicationEngine>
    #include <QtSerialPort/QSerialPort>
    #include <QtSerialPort/QSerialPortInfo>
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        const auto serialPortInfos = QSerialPortInfo::availablePorts();
        for (const QSerialPortInfo &portInfo : serialPortInfos) {
            qDebug() << "\n"
                     << "Port:" << portInfo.portName() << "\n"
                     << "Location:" << portInfo.systemLocation() << "\n"
                     << "Description:" << portInfo.description() << "\n"
                     << "Manufacturer:" << portInfo.manufacturer() << "\n"
                     << "Serial number:" << portInfo.serialNumber() << "\n"
                     << "Vendor Identifier:"
                     << (portInfo.hasVendorIdentifier()
                             ? QByteArray::number(portInfo.vendorIdentifier(), 16)
                             : QByteArray()) << "\n"
                     << "Product Identifier:"
                     << (portInfo.hasProductIdentifier()
                             ? QByteArray::number(portInfo.productIdentifier(), 16)
                             : QByteArray());
        }
    
        QSerialPort serial;
        serial.setPortName("COM1");
        serial.setBaudRate(QSerialPort::Baud9600);
        serial.setDataBits(QSerialPort::Data8);
        serial.setParity(QSerialPort::NoParity);
        serial.setStopBits(QSerialPort::OneStop);
        serial.setFlowControl(QSerialPort::NoFlowControl);
        serial.open(QIODevice::ReadWrite);
        serial.write("Hello, world");
        serial.close();
    
    
        QQmlApplicationEngine engine;
        const QUrl url(u"qrc:/SerialPort/main.qml"_qs);
        QObject::connect(
            &engine,
            &QQmlApplicationEngine::objectCreated,
            &app,
            [url](QObject *obj, const QUrl &objUrl) {
                if (!obj && url == objUrl)
                    QCoreApplication::exit(-1);
            },
            Qt::QueuedConnection);
        engine.load(url);
    
        return app.exec();
    }
    
    

    cff6a533-7b56-473d-a7b1-ace4fb5e7cd7-image.png

    hopefully posting in right category :)

    S JonBJ K 3 Replies Last reply
    0
    • S Sajjad Ali

      I have "Hercules Simulator" I send data from my Qt Creator, but don't see anything on Hercules.

      What I am doing wrong? pls help

      #include <QApplication>
      #include <QQmlApplicationEngine>
      #include <QtSerialPort/QSerialPort>
      #include <QtSerialPort/QSerialPortInfo>
      
      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
          const auto serialPortInfos = QSerialPortInfo::availablePorts();
          for (const QSerialPortInfo &portInfo : serialPortInfos) {
              qDebug() << "\n"
                       << "Port:" << portInfo.portName() << "\n"
                       << "Location:" << portInfo.systemLocation() << "\n"
                       << "Description:" << portInfo.description() << "\n"
                       << "Manufacturer:" << portInfo.manufacturer() << "\n"
                       << "Serial number:" << portInfo.serialNumber() << "\n"
                       << "Vendor Identifier:"
                       << (portInfo.hasVendorIdentifier()
                               ? QByteArray::number(portInfo.vendorIdentifier(), 16)
                               : QByteArray()) << "\n"
                       << "Product Identifier:"
                       << (portInfo.hasProductIdentifier()
                               ? QByteArray::number(portInfo.productIdentifier(), 16)
                               : QByteArray());
          }
      
          QSerialPort serial;
          serial.setPortName("COM1");
          serial.setBaudRate(QSerialPort::Baud9600);
          serial.setDataBits(QSerialPort::Data8);
          serial.setParity(QSerialPort::NoParity);
          serial.setStopBits(QSerialPort::OneStop);
          serial.setFlowControl(QSerialPort::NoFlowControl);
          serial.open(QIODevice::ReadWrite);
          serial.write("Hello, world");
          serial.close();
      
      
          QQmlApplicationEngine engine;
          const QUrl url(u"qrc:/SerialPort/main.qml"_qs);
          QObject::connect(
              &engine,
              &QQmlApplicationEngine::objectCreated,
              &app,
              [url](QObject *obj, const QUrl &objUrl) {
                  if (!obj && url == objUrl)
                      QCoreApplication::exit(-1);
              },
              Qt::QueuedConnection);
          engine.load(url);
      
          return app.exec();
      }
      
      

      cff6a533-7b56-473d-a7b1-ace4fb5e7cd7-image.png

      hopefully posting in right category :)

      S Offline
      S Offline
      Sajjad Ali
      wrote on last edited by
      #2

      These are my ports

       Port: "COM2" 
       Location: "\\\\.\\COM2" 
       Description: "Virtual Serial Port 9 (Electronic Team)" 
       Manufacturer: "Electronic Team" 
       Serial number: "" 
       Vendor Identifier: "" 
       Product Identifier: ""
      
       Port: "COM3" 
       Location: "\\\\.\\COM3" 
       Description: "Virtual Serial Port 9 (Electronic Team)" 
       Manufacturer: "Electronic Team" 
       Serial number: "" 
       Vendor Identifier: "" 
       Product Identifier: ""
      
       Port: "COM1" 
       Location: "\\\\.\\COM1" 
       Description: "Communications Port" 
       Manufacturer: "(Standard port types)" 
       Serial number: "" 
       Vendor Identifier: "" 
       Product Identifier: ""
      QIODevice::write (QSerialPort): device not open
      

      At end it says device not open. But I wrote command and also opened it in Hercules

      1 Reply Last reply
      0
      • S Sajjad Ali

        I have "Hercules Simulator" I send data from my Qt Creator, but don't see anything on Hercules.

        What I am doing wrong? pls help

        #include <QApplication>
        #include <QQmlApplicationEngine>
        #include <QtSerialPort/QSerialPort>
        #include <QtSerialPort/QSerialPortInfo>
        
        int main(int argc, char *argv[])
        {
            QApplication app(argc, argv);
            const auto serialPortInfos = QSerialPortInfo::availablePorts();
            for (const QSerialPortInfo &portInfo : serialPortInfos) {
                qDebug() << "\n"
                         << "Port:" << portInfo.portName() << "\n"
                         << "Location:" << portInfo.systemLocation() << "\n"
                         << "Description:" << portInfo.description() << "\n"
                         << "Manufacturer:" << portInfo.manufacturer() << "\n"
                         << "Serial number:" << portInfo.serialNumber() << "\n"
                         << "Vendor Identifier:"
                         << (portInfo.hasVendorIdentifier()
                                 ? QByteArray::number(portInfo.vendorIdentifier(), 16)
                                 : QByteArray()) << "\n"
                         << "Product Identifier:"
                         << (portInfo.hasProductIdentifier()
                                 ? QByteArray::number(portInfo.productIdentifier(), 16)
                                 : QByteArray());
            }
        
            QSerialPort serial;
            serial.setPortName("COM1");
            serial.setBaudRate(QSerialPort::Baud9600);
            serial.setDataBits(QSerialPort::Data8);
            serial.setParity(QSerialPort::NoParity);
            serial.setStopBits(QSerialPort::OneStop);
            serial.setFlowControl(QSerialPort::NoFlowControl);
            serial.open(QIODevice::ReadWrite);
            serial.write("Hello, world");
            serial.close();
        
        
            QQmlApplicationEngine engine;
            const QUrl url(u"qrc:/SerialPort/main.qml"_qs);
            QObject::connect(
                &engine,
                &QQmlApplicationEngine::objectCreated,
                &app,
                [url](QObject *obj, const QUrl &objUrl) {
                    if (!obj && url == objUrl)
                        QCoreApplication::exit(-1);
                },
                Qt::QueuedConnection);
            engine.load(url);
        
            return app.exec();
        }
        
        

        cff6a533-7b56-473d-a7b1-ace4fb5e7cd7-image.png

        hopefully posting in right category :)

        JonBJ Offline
        JonBJ Offline
        JonB
        wrote on last edited by
        #3

        @Sajjad-Ali said in QtSerialPort - I can't see what I send:

        serial.open(QIODevice::ReadWrite);

        open() returns a result for a reason, can you please check the result in your code! Assuming it fails, can you show QSerialPort::SerialPortError value. This is quite basic coding architecture.

        1 Reply Last reply
        1
        • S Sajjad Ali

          I have "Hercules Simulator" I send data from my Qt Creator, but don't see anything on Hercules.

          What I am doing wrong? pls help

          #include <QApplication>
          #include <QQmlApplicationEngine>
          #include <QtSerialPort/QSerialPort>
          #include <QtSerialPort/QSerialPortInfo>
          
          int main(int argc, char *argv[])
          {
              QApplication app(argc, argv);
              const auto serialPortInfos = QSerialPortInfo::availablePorts();
              for (const QSerialPortInfo &portInfo : serialPortInfos) {
                  qDebug() << "\n"
                           << "Port:" << portInfo.portName() << "\n"
                           << "Location:" << portInfo.systemLocation() << "\n"
                           << "Description:" << portInfo.description() << "\n"
                           << "Manufacturer:" << portInfo.manufacturer() << "\n"
                           << "Serial number:" << portInfo.serialNumber() << "\n"
                           << "Vendor Identifier:"
                           << (portInfo.hasVendorIdentifier()
                                   ? QByteArray::number(portInfo.vendorIdentifier(), 16)
                                   : QByteArray()) << "\n"
                           << "Product Identifier:"
                           << (portInfo.hasProductIdentifier()
                                   ? QByteArray::number(portInfo.productIdentifier(), 16)
                                   : QByteArray());
              }
          
              QSerialPort serial;
              serial.setPortName("COM1");
              serial.setBaudRate(QSerialPort::Baud9600);
              serial.setDataBits(QSerialPort::Data8);
              serial.setParity(QSerialPort::NoParity);
              serial.setStopBits(QSerialPort::OneStop);
              serial.setFlowControl(QSerialPort::NoFlowControl);
              serial.open(QIODevice::ReadWrite);
              serial.write("Hello, world");
              serial.close();
          
          
              QQmlApplicationEngine engine;
              const QUrl url(u"qrc:/SerialPort/main.qml"_qs);
              QObject::connect(
                  &engine,
                  &QQmlApplicationEngine::objectCreated,
                  &app,
                  [url](QObject *obj, const QUrl &objUrl) {
                      if (!obj && url == objUrl)
                          QCoreApplication::exit(-1);
                  },
                  Qt::QueuedConnection);
              engine.load(url);
          
              return app.exec();
          }
          
          

          cff6a533-7b56-473d-a7b1-ace4fb5e7cd7-image.png

          hopefully posting in right category :)

          K Offline
          K Offline
          kuzulis
          Qt Champions 2020
          wrote on last edited by
          #4

          @Sajjad-Ali said in QtSerialPort - I can't see what I send:

          serial.write("Hello, world");
          serial.close();
          

          here

          1 Reply Last reply
          0

          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • Users
          • Groups
          • Search
          • Get Qt Extensions
          • Unsolved