QtSerialPort - I can't see what I send
-
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(); }
hopefully posting in right category :)
-
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(); }
hopefully posting in right category :)
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 openAt end it says device not open. But I wrote command and also opened it in Hercules
-
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(); }
hopefully posting in right category :)
@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 showQSerialPort::SerialPortErrorvalue. This is quite basic coding architecture. -
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(); }
hopefully posting in right category :)
@Sajjad-Ali said in QtSerialPort - I can't see what I send:
serial.write("Hello, world"); serial.close();here