diff --git a/mainwindow.cpp b/mainwindow.cpp index c5f4205..e6d3505 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -130,6 +130,7 @@ MainWindow::MainWindow(QWidget *parent) : connect(senderWorker, &Sender::dataReceived, parserWorker, &Parser::parse, Qt::QueuedConnection); connect(senderWorker, &Sender::dataReceived, this, &MainWindow::readSerial, Qt::QueuedConnection); connect(senderWorker, &Sender::reportProgress, this, &MainWindow::updateFileProgress); + connect(senderWorker, &Sender::baudrateSetFailed, this, &MainWindow::baudrateSetFailed); connect(this, &MainWindow::setFile, senderWorker, &Sender::setFile); connect(this, &MainWindow::startPrinting, senderWorker, &Sender::startPrinting); connect(this, &MainWindow::stopPrinting, senderWorker, &Sender::stopPrinting); @@ -860,6 +861,14 @@ void MainWindow::updateFileProgress(FileProgress p) ui->progressBar->setValue(((float)p.P/p.T) * 100); } +void MainWindow::baudrateSetFailed(int b) +{ + ErrorWindow errorwindow(this, QString("Baudrate set failed:\n" + + QString::number(b) + + " baud")); + errorwindow.show(); +} + //Needed for keypress handling bool MainWindow::eventFilter(QObject *obj, QEvent *event) { diff --git a/mainwindow.h b/mainwindow.h index 43e56d0..270628f 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -98,6 +98,7 @@ private slots: void parseFile(QString filename); void recentClicked(); void updateFileProgress(FileProgress); + void baudrateSetFailed(int b); void xplus(); void yplus(); diff --git a/sender.cpp b/sender.cpp index 1d2dfac..4d54461 100644 --- a/sender.cpp +++ b/sender.cpp @@ -120,7 +120,6 @@ void Sender::openPort(QSerialPortInfo i) if(!printer->isOpen() && printer->open(QIODevice::ReadWrite)) { - //Moved here to be compatible with Qt 5.2.1 switch(baudrate) { @@ -153,8 +152,12 @@ void Sender::openPort(QSerialPortInfo i) break; } + if(!printer->setBaudRate(baudrate)) + emit baudrateSetFailed(baudrate); printer->setFlowControl(QSerialPort::HardwareControl); } + + readyRecieve = true; } void Sender::closePort() diff --git a/sender.h b/sender.h index ce601ea..434db54 100644 --- a/sender.h +++ b/sender.h @@ -42,6 +42,7 @@ signals: void errorReceived(QSerialPort::SerialPortError error); void dataReceived(QByteArray data); void reportProgress(FileProgress p); + void baudrateSetFailed(int b); public slots: void openPort(QSerialPortInfo i);