diff --git a/mainwindow.cpp b/mainwindow.cpp --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -65,6 +65,16 @@ MainWindow::MainWindow(QWidget *parent) SELECT::OVERLOAD_OF(&QButtonGroup::buttonClicked), this, &MainWindow::selectParity); + // setup data bits selection buttons + dataBitsButtons.addButton(ui->rb8Bits, (int) QSerialPort::Data8); + dataBitsButtons.addButton(ui->rb7Bits, (int) QSerialPort::Data7); + dataBitsButtons.addButton(ui->rb6Bits, (int) QSerialPort::Data6); + dataBitsButtons.addButton(ui->rb5Bits, (int) QSerialPort::Data5); + + QObject::connect(&dataBitsButtons, + SELECT::OVERLOAD_OF(&QButtonGroup::buttonClicked), + this, &MainWindow::selectDataBits); + // init port signals QObject::connect(&(this->serialPort), SIGNAL(error(QSerialPort::SerialPortError)), this, SLOT(onPortError(QSerialPort::SerialPortError))); @@ -222,6 +232,18 @@ void MainWindow::selectParity(int parity } } +void MainWindow::selectDataBits(int dataBits) +{ + qDebug() << dataBits; + if (serialPort.isOpen()) + { + if(!serialPort.setDataBits((QSerialPort::DataBits) dataBits)) + { + qDebug() << "Set data bits failed: " << serialPort.error(); + } + } +} + void MainWindow::onPortToggled(bool open) { ui->pbOpenPort->setChecked(open);