Grundlegende Kommunikation mit QSerialPort
Ich versuche rig einige Grundlagen der seriellen Kommunikation in QT
Ich bin immer der port COM19 von QSerialPortInfo, und ich sprechen erfolgreich an den port an, über den Arduino. Allerdings kann ich nicht alles wieder über QT.
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QTextStream>
#include <QFile>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
foreach(const QSerialPortInfo &info, QSerialPortInfo::availablePorts()){
qDebug() << "Name :" << info.portName();
qDebug() << "Description :" << info.description();
qDebug() << "Manufactuer :" << info.manufacturer();
QSerialPort serial;
serial.setPort(info);
if(serial.open(QIODevice::ReadWrite))
qDebug() << serial.errorString();
serial.write("M114 \n");
qDebug() << serial.readAll();
serial.close();
//Now we need to send and receive commands
serial.setPortName("COM19");
serial.setBaudRate(QSerialPort::Baud57600);
serial.setDataBits(QSerialPort::Data8);
serial.setParity(QSerialPort::NoParity);
serial.setStopBits(QSerialPort::OneStop);
serial.setFlowControl(QSerialPort::NoFlowControl);
if(serial.open(QIODevice::ReadWrite)){
qDebug() << "opened";
}else{
qDebug() << "Not opened";
}
qDebug() << serial.errorString();
serial.write("M114 \n");
qDebug() << serial.readAll();
serial.close();
}
MainWindow w;
w.show();
return a.exec();
}
Wie Sie sehen können, versuche ich, eine einfache Verbindung entlang der Linien von der Dokumentation, und eine, wo ich schreiben, alle die baud-rate Informationen. Sie werfen zwei verschiedene Fehler.
Wie gesagt, ich bin einer Verbindung über arduino zu diesem selben port und mit Erfolg. Irgendwelche Ideen, was falsch?
Name : "COM19"
Description : "USB Serial (Communication Class, Abstract Control Model)"
Manufactuer : "PJRC.COM, LLC."
"Unknown error"
""
opened
"The handle is invalid."
""
Irgendwelche Ideen, was ich falsch mache?
Meine Idee ist das senden von Befehlen an das Gerät und Lesen Sie Sie zurück zu der Konsole.
Du musst angemeldet sein, um einen Kommentar abzugeben.
der code sieht ein bisschen verwirren. Öffnen Sie alle-port zur Verfügung, und Sie versuchen, etwas Falsches zu tun.
HINWEIS: verwenden Sie eine GUI-Anwendung wie eine shell-Anwendung. Ist es falsch.
Versuchen:
Beginnend mit dem zehnten port, sein name wird \\.\COM10
Können Sie zuweisen, den Anschluss auf eine andere Nummer im Geräte-Manager