Инициализация:
NmeaSerial::NmeaSerial(const QString & portName)
{
this->NMEASerialport = new QextSerialPort(portName,QextSerialPort::EventDriven);
NMEASerialport->setBaudRate(BAUD38400);
NMEASerialport->setFlowControl(FLOW_OFF);
NMEASerialport->setParity(PAR_NONE);
NMEASerialport->setDataBits(DATA_8);
NMEASerialport->setStopBits(STOP_2);
if (NMEASerialport->open(QIODevice::ReadOnly) == true) {
connect(NMEASerialport, SIGNAL(readyRead()), this, SLOT(onNmeaDataRead()));
connect(NMEASerialport, SIGNAL(dsrChanged(bool)), this, SLOT(onNmeaDsrChanged(bool)));
if (!(NMEASerialport->lineStatus() & LS_DSR))
qDebug() << "warning: device is not turned on";
qDebug() << "listening for data on" << NMEASerialport->portName();
}
else {
qDebug() << "device failed to open:" << NMEASerialport->errorString();
}
}
Читаю так:
void NmeaSerial::onNmeaDataRead()
{
QString tmpdata= QString::fromLatin1(NMEASerialport->readLine(999));
QStringList tmpdatalist = tmpdata.split("/n");
qDebug() << "Byte:" <<tmpdatalist;
}
Как победить недуг?
Есть идея использовать getChar, но это как то муторно...