0,0 → 1,90 |
#include "IOWidget.h" |
|
IOWidget::IOWidget(QWidget *parent) : QWidget(parent) |
{ |
// Serial data UI |
textData = 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 transmit |
lastTransmit = 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); |
} |