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.
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Recup_GPGGA.tar.gz
Partager