La libreria e' valida sia per Qt4 che Qt5
Una volta scaricato il pacchetto si entra nella directory e si digita
qmake
make
make install
a questo punto si puo' creare un nuovo progetto Qt4
la prima cosa da modificare e' il file .pro aggiungendo la serialport
--------------------------------
QT += core gui
CONFIG += serialport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = seri
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui--------------------------------
dopo di cio' si modifica il file header aggiungendo l'include all'header della libreria, uno slot privato per la funzione di lettura della porta ed una nuova variabile che identifica la porta seriale
--------------------------------
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtSerialPort/QSerialPort>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void readData();
private:
Ui::MainWindow *ui;
QSerialPort *serial;
};
#endif // MAINWINDOW_H
--------------------------------
il programma vero e proprio puo' essere cosi' scritto
In questo caso viene letta la porta /dev/ttyUSB0 con parametri 2400 8N1
--------------------------------
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSerialPort/QSerialPort>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
serial = new QSerialPort(this);
serial->setPortName("/dev/ttyUSB0");
if (serial->open((QIODevice::ReadWrite)))
{
serial->setBaudRate(QSerialPort::Baud2400);
serial->setDataBits(QSerialPort::Data8);
serial->setParity(QSerialPort::NoParity);
serial->setStopBits(QSerialPort::OneStop);
}
connect(serial,SIGNAL(readyRead()),this,SLOT(readData()));
}
void MainWindow::readData()
{
QByteArray data = serial->readAll();
qDebug() << data;
}
MainWindow::~MainWindow()
{
delete ui;
}--------------------------------
non riesco ad installare, mi ritorna invariabilmente: in file included from example/serialport/terminal/main.cpp:45:0:examples/serialport/terminal/mainwindow.h:50:37: fatal error: QtSerialPort/QSerialport: file or directory non esistente. compilation terminated
RispondiEliminail pacchetto QtSerial non e' compreso nell'installazione standard di Qt. E' stata compilata la libreria che si trova citata al link presente nel post http://qt-project.org/wiki/QtSerialPort ?? L'esempio riportato e' per Qt 4.x, per caso lei sta usando Qt 5??
Elimina