1 pièce(s) jointe(s)
Lecture d'une trame NMEA : données incomplètes
Bonjour,
Actuellement en train de travailler sur mon projet de BTS, j'ai besoin de récupérer des trames NMEA via un port série. Mon programme semble ne pas afficher d'erreur lorsque je le compile, mais je n'arrive visiblement pas à récupérer les trames souhaitées.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #include <QApplication>
#include <QCoreApplication>
#include <QDebug>
#include <QIODevice>
#include <QObject>
#include <QSerialPort>
#include <qSerialPort.h>
#include <QString>
#define PORT "/dev/ttyUSB0"
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
const char *data;
QApplication app(argc, argv);
QSerialPort *port = new QSerialPort();
QString trame;
port->setPortName(PORT);
if(!port->open(QIODevice::ReadOnly)){
cout << "Le port série refuse de s'ouvrir." << endl;
perror("open");
return 0;
} else {
port->setBaudRate(QSerialPort::Baud4800);
port->setDataBits(QSerialPort::Data8);
port->setStopBits(QSerialPort::OneStop);
port->setParity(QSerialPort::NoParity);
port->setFlowControl(QSerialPort::NoFlowControl);
cout << "Data : " << endl;
trame = QString::fromLatin1(port->readAll());
qDebug() << trame << endl;
if(trame.contains("$GPGGA")){
data = trame.toUtf8().constData();
cout << data << endl;
}
return 0;
}
} |
Quelqu'un aurait-il une solution à me proposer ? Je précise que je travaille en C++ sous Qt Creator 3.0.1 basé sur Qt 5.2.1 et sur Ubuntu. Merci à tous ceux qui prendront la peine de m'aider...
Pièce jointe 205844