Blame | Last modification | View Log | RSS feed
#include "SerialIOWidget.h"
SerialIOWidget::SerialIOWidget(QWidget *parent) : QWidget(parent)
{
// Serial data UI
textSerialData = new QTextEdit();
textSerialData->setCurrentFont(QFont("Consolas", 8));
textSerialData->append("Waiting for serial connection...");
textSerialData->setMinimumSize(400, 100);
textSerialData->setReadOnly(true);
textSerialTransmit = new QLineEdit();
textSerialTransmit->setEnabled(false);
textSerialTransmit->setFont(QFont("Consolas", 8));
btnSerialTransmit = new QPushButton("&Send");
btnSerialTransmit->setEnabled(false);
btnSerialClear = new QPushButton("Clear");
QHBoxLayout *serialTransmitLayout = new QHBoxLayout();
serialTransmitLayout->addWidget(textSerialTransmit);
serialTransmitLayout->addWidget(btnSerialTransmit);
serialTransmitLayout->addWidget(btnSerialClear);
QVBoxLayout *serialDataLayout = new QVBoxLayout();
serialDataLayout->addWidget(textSerialData);
serialDataLayout->addLayout(serialTransmitLayout);
setLayout(serialDataLayout);
connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_PrepareTransmit()));
connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked()));
connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn()));
Serial_DisableTransmit();
}
SerialIOWidget::~SerialIOWidget()
{
}
void SerialIOWidget::Serial_PrepareTransmit(QByteArray data)
{
QString str;
if (data.isEmpty()) {
str = textSerialTransmit->text();
textSerialTransmit->setText("");
} else {
str = QString(data);
}
emit Serial_TransmitByteArray(str.toUtf8());
textSerialData->setTextColor(Qt::darkBlue);
QStringList cmds = str.split('\n');
for (int i = 0; i < cmds.size(); i++) {
textSerialData->append("TX: " + cmds[i]);
}
}
void SerialIOWidget::Serial_ReceivedByte(char byte)
{
textSerialData->setTextColor(Qt::darkRed);
textSerialData->append("RX: " + QString(byte));
}
void SerialIOWidget::Serial_ClearBtn()
{
textSerialData->clear();
}
void SerialIOWidget::Serial_EnableTransmit()
{
textSerialTransmit->setEnabled(true);
btnSerialTransmit->setEnabled(true);
}
void SerialIOWidget::Serial_DisableTransmit()
{
textSerialTransmit->setEnabled(false);
btnSerialTransmit->setEnabled(false);
}