Blame | Last modification | View Log | Download | RSS feed
#include "IOWidget.h"IOWidget::IOWidget(QWidget *parent) : QWidget(parent){// Serial data UItextData = new QTextEdit();textData->setCurrentFont(QFont("Consolas", 8));textData->append("Waiting for serial connection...");textData->setMinimumSize(400, 100);textData->setReadOnly(true);textTransmit = new QLineEdit();textTransmit->setEnabled(false);textTransmit->setFont(QFont("Consolas", 8));btnTransmit = new QPushButton("&Send");btnTransmit->setEnabled(false);btnClear = new QPushButton("Clear");QHBoxLayout *transmitLayout = new QHBoxLayout();transmitLayout->addWidget(textTransmit);transmitLayout->addWidget(btnTransmit);transmitLayout->addWidget(btnClear);QVBoxLayout *dataLayout = new QVBoxLayout();dataLayout->addWidget(textData);dataLayout->addLayout(transmitLayout);setLayout(dataLayout);connect(btnTransmit, SIGNAL(clicked()), this, SLOT(PreprocessTransmit()));connect(textTransmit, SIGNAL(returnPressed()), btnTransmit, SIGNAL(clicked()));connect(btnClear, SIGNAL(clicked()), this, SLOT(ClearBtn()));DisableTransmit();lastTransmit = true;}IOWidget::~IOWidget(){}void IOWidget::PreprocessTransmit(QByteArray data){QString str;if (data.isEmpty()) {str = textTransmit->text();textTransmit->setText("");} else {str = QString(data);}emit TransmitByteArray(str.toUtf8());textData->setTextColor(Qt::darkBlue);QStringList cmds = str.split('\n');for (int i = 0; i < cmds.size(); i++) {textData->append("TX: " + cmds[i]);}// Save a flag indicating last activity was a transmitlastTransmit = true;}void IOWidget::ProcessReceivedByte(QByteArray data){textData->setTextColor(Qt::darkRed);data.replace("\n", "\nRX: ");if (lastTransmit) {textData->insertPlainText("\nRX: " + QString(data));} else {textData->insertPlainText(QString(data));}textData->moveCursor(QTextCursor::End);lastTransmit = false;}void IOWidget::ClearBtn(){textData->clear();}void IOWidget::EnableTransmit(){textTransmit->setEnabled(true);btnTransmit->setEnabled(true);}void IOWidget::DisableTransmit(){textTransmit->setEnabled(false);btnTransmit->setEnabled(false);}