Changeset - 4d74a5d375ab
[Not reviewed]
default
0 2 0
Hasan Yavuz Ă–ZDERYA - 10 years ago 2015-04-04 09:31:54
hy@ozderya.net
implemented serial port parity selection
2 files changed with 34 insertions and 0 deletions:
0 comments (0 inline, 0 general)
mainwindow.cpp
Show inline comments
 
@@ -56,6 +56,25 @@ MainWindow::MainWindow(QWidget *parent) 
 
    QObject::connect(&numberFormatButtons, SIGNAL(buttonToggled(int, bool)),
 
                     this, SLOT(onNumberFormatButtonToggled(int, bool)));
 

	
 
    // setup parity selection buttons
 
    selectParityMapper.setMapping(ui->rbNoParity, (int) QSerialPort::NoParity);
 
    selectParityMapper.setMapping(ui->rbEvenParity, (int) QSerialPort::EvenParity);
 
    selectParityMapper.setMapping(ui->rbOddParity, (int) QSerialPort::OddParity);
 

	
 
    QObject::connect(ui->rbNoParity, &QPushButton::clicked,
 
                     &selectParityMapper,
 
                     SELECT<>::OVERLOAD_OF(&QSignalMapper::map));
 
    QObject::connect(ui->rbEvenParity, &QPushButton::clicked,
 
                     &selectParityMapper,
 
                     SELECT<>::OVERLOAD_OF(&QSignalMapper::map));
 
    QObject::connect(ui->rbOddParity, &QPushButton::clicked,
 
                     &selectParityMapper,
 
                     SELECT<>::OVERLOAD_OF(&QSignalMapper::map));
 

	
 
    QObject::connect(&selectParityMapper,
 
                     SELECT<int>::OVERLOAD_OF(&QSignalMapper::mapped),
 
                     this, &MainWindow::selectParity);
 

	
 
    // init port signals
 
    QObject::connect(&(this->serialPort), SIGNAL(error(QSerialPort::SerialPortError)),
 
                     this, SLOT(onPortError(QSerialPort::SerialPortError)));
 
@@ -202,6 +221,17 @@ void MainWindow::selectBaudRate(QString 
 
    }
 
}
 

	
 
void MainWindow::selectParity(int parity)
 
{
 
    if (serialPort.isOpen())
 
    {
 
        if(!serialPort.setParity((QSerialPort::Parity) parity))
 
        {
 
            qDebug() << "Set parity failed: " << serialPort.error();
 
        }
 
    }
 
}
 

	
 
void MainWindow::onPortToggled(bool open)
 
{
 
    ui->pbOpenPort->setChecked(open);
mainwindow.h
Show inline comments
 
@@ -6,6 +6,7 @@
 
#include <QString>
 
#include <QVector>
 
#include <QSerialPort>
 
#include <QSignalMapper>
 
#include <qwt_plot_curve.h>
 

	
 
namespace Ui {
 
@@ -49,6 +50,8 @@ private:
 
    // note that serialPort should already have enough bytes present
 
    template<typename T> double readSampleAs();
 

	
 
    QSignalMapper selectParityMapper;
 

	
 
private slots:
 
    void loadPortList();
 
    void loadBaudRateList();
 
@@ -56,6 +59,7 @@ private slots:
 
    void selectPort(QString portName);
 
    void onPortToggled(bool open);
 
    void selectBaudRate(QString baudRate);
 
    void selectParity(int parity); // parity must be one of QSerialPort::Parity
 

	
 
    void onDataReady();
 
    void onPortError(QSerialPort::SerialPortError error);
0 comments (0 inline, 0 general)