ich programmier grad zum ersten mal mit QextSerialPort und hab da so meine Probleme. Ich bin ziemlich sicher dass das senden von einem ASCII String schon funktioniert. Nur beim Empfangen vom port hab ich noch meine Probleme.
Ich möchte einfach Daten empfangen bloss wann weis ich wann daten kommen?
Code: Alles auswählen
#include "mainform.h"
#include <qextserialport.h>
mainform::mainform(QWidget *parent)
: QMainWindow(parent), port(NULL)
{
setupUi(this);
port = new QextSerialPort("COM1");
port->setBaudRate(BAUD9600);
port->setFlowControl(FLOW_OFF);
port->setParity(PAR_NONE);
port->setDataBits(DATA_8);
port->setStopBits(STOP_1);
connect(sendPushButton, SIGNAL(clicked()), this, SLOT(send_cmd()));
connect(port, SIGNAL(readyRead()), this, SLOT(receiveMsg()));
openPort();
}
mainform::~mainform()
{
}
void mainform::send_cmd()
{
QString test = QString("message \x0D\x0A");
incomingTextEdit->insertPlainText(test);
port->write(test.toAscii(),test.length());
}
void mainform::receiveMsg()
{
cmdLineEdit->setText("incoming msg");
char buff[1024];
int numBytes;
numBytes = port->bytesAvailable();
if(numBytes > 0)
{
if(numBytes > 1024) numBytes = 1024;
int i = port->read(buff, numBytes);
buff[i] = '\0';
QString msg = buff;
incomingTextEdit->insertPlainText(msg);
}
}
void mainform::closePort()
{
port->close();
qDebug("is open: %d", port->isOpen());
}
void mainform::openPort()
{
port->open(QIODevice::ReadWrite);
qDebug("is open: %d", port->isOpen());
}
Weiss jemand Rat?