Changeset - 71f772af835d
[Not reviewed]
default
0 2 0
Hasan Yavuz Ă–ZDERYA - 10 years ago 2015-04-04 11:43:40
hy@ozderya.net
implemented stop bits and flow control selection buttons
2 files changed with 46 insertions and 0 deletions:
0 comments (0 inline, 0 general)
mainwindow.cpp
Show inline comments
 
@@ -75,6 +75,26 @@ MainWindow::MainWindow(QWidget *parent) 
 
                     SELECT<int>::OVERLOAD_OF(&QButtonGroup::buttonClicked),
 
                     this, &MainWindow::selectDataBits);
 

	
 
    // setup stop bits selection buttons
 
    stopBitsButtons.addButton(ui->rb1StopBit, (int) QSerialPort::OneStop);
 
    stopBitsButtons.addButton(ui->rb2StopBit, (int) QSerialPort::TwoStop);
 

	
 
    QObject::connect(&stopBitsButtons,
 
                     SELECT<int>::OVERLOAD_OF(&QButtonGroup::buttonClicked),
 
                     this, &MainWindow::selectStopBits);
 

	
 
    // setup flow control selection buttons
 
    flowControlButtons.addButton(ui->rbNoFlowControl,
 
                                 (int) QSerialPort::NoFlowControl);
 
    flowControlButtons.addButton(ui->rbHardwareControl,
 
                                 (int) QSerialPort::HardwareControl);
 
    flowControlButtons.addButton(ui->rbSoftwareControl,
 
                                 (int) QSerialPort::SoftwareControl);
 

	
 
    QObject::connect(&flowControlButtons,
 
                     SELECT<int>::OVERLOAD_OF(&QButtonGroup::buttonClicked),
 
                     this, &MainWindow::selectFlowControl);
 

	
 
    // init port signals
 
    QObject::connect(&(this->serialPort), SIGNAL(error(QSerialPort::SerialPortError)),
 
                     this, SLOT(onPortError(QSerialPort::SerialPortError)));
 
@@ -243,6 +263,28 @@ void MainWindow::selectDataBits(int data
 
    }
 
}
 

	
 
void MainWindow::selectStopBits(int stopBits)
 
{
 
    if (serialPort.isOpen())
 
    {
 
        if(!serialPort.setStopBits((QSerialPort::StopBits) stopBits))
 
        {
 
            qDebug() << "Set stop bits failed: " << serialPort.error();
 
        }
 
    }
 
}
 

	
 
void MainWindow::selectFlowControl(int flowControl)
 
{
 
    if (serialPort.isOpen())
 
    {
 
        if(!serialPort.setFlowControl((QSerialPort::FlowControl) flowControl))
 
        {
 
            qDebug() << "Set flow control failed: " << serialPort.error();
 
        }
 
    }
 
}
 

	
 
void MainWindow::onPortToggled(bool open)
 
{
 
    ui->pbOpenPort->setChecked(open);
mainwindow.h
Show inline comments
 
@@ -36,6 +36,8 @@ private:
 
    QButtonGroup numberFormatButtons;
 
    QButtonGroup parityButtons;
 
    QButtonGroup dataBitsButtons;
 
    QButtonGroup stopBitsButtons;
 
    QButtonGroup flowControlButtons;
 

	
 
    QSerialPort serialPort;
 

	
 
@@ -61,6 +63,8 @@ private slots:
 
    void selectBaudRate(QString baudRate);
 
    void selectParity(int parity); // parity must be one of QSerialPort::Parity
 
    void selectDataBits(int dataBits); // bits must be one of QSerialPort::DataBits
 
    void selectStopBits(int stopBits); // stopBits must be one of QSerialPort::StopBits
 
    void selectFlowControl(int flowControl); // flowControl must be one of QSerialPort::FlowControl
 

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