From 16de411b2dde35ebcbb439d187011151cf7492d4 Mon Sep 17 00:00:00 2001 From: NeoTheFox Date: Mon, 16 Mar 2015 21:19:33 +0300 Subject: [PATCH 1/2] Added warning if baudrate set failed --- mainwindow.cpp | 9 +++++++++ mainwindow.h | 1 + sender.cpp | 21 ++------------------- sender.h | 1 + 4 files changed, 13 insertions(+), 19 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index d37c306..e82470b 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -130,6 +130,7 @@ MainWindow::MainWindow(QWidget *parent) : connect(senderWorker, &Sender::dataRecieved, parserWorker, &Parser::parse, Qt::QueuedConnection); connect(senderWorker, &Sender::dataRecieved, 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 e4727ea..fd9edc3 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 442b24e..0408078 100644 --- a/sender.cpp +++ b/sender.cpp @@ -122,25 +122,8 @@ void Sender::openPort(QSerialPortInfo i) { //Moved here to be compatible with Qt 5.2.1 - switch(baudrate) - { - case 4800: - printer->setBaudRate(QSerialPort::Baud4800); - break; - - case 9600: - printer->setBaudRate(QSerialPort::Baud9600); - break; - - case 115200: - printer->setBaudRate(QSerialPort::Baud115200); - break; - - default: - printer->setBaudRate(baudrate); - break; - } - + if(!printer->setBaudRate(baudrate)) + emit baudrateSetFailed(baudrate); printer->setFlowControl(QSerialPort::HardwareControl); } } diff --git a/sender.h b/sender.h index 9170133..8baf9b8 100644 --- a/sender.h +++ b/sender.h @@ -42,6 +42,7 @@ signals: void errorRecieved(QSerialPort::SerialPortError error); void dataRecieved(QByteArray data); void reportProgress(FileProgress p); + void baudrateSetFailed(int b); public slots: void openPort(QSerialPortInfo i); From 16b3adf8dc5754c63c34294502df6f9c8ec4fb4c Mon Sep 17 00:00:00 2001 From: NeoTheFox Date: Mon, 16 Mar 2015 22:00:09 +0300 Subject: [PATCH 2/2] Set readyRecieve to true upon connection --- sender.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sender.cpp b/sender.cpp index 0408078..7e2cee5 100644 --- a/sender.cpp +++ b/sender.cpp @@ -120,12 +120,13 @@ void Sender::openPort(QSerialPortInfo i) if(!printer->isOpen() && printer->open(QIODevice::ReadWrite)) { - //Moved here to be compatible with Qt 5.2.1 if(!printer->setBaudRate(baudrate)) emit baudrateSetFailed(baudrate); printer->setFlowControl(QSerialPort::HardwareControl); } + + readyRecieve = true; } void Sender::closePort()