Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
356 Kevin 1
#include "SerialIOWidget.h"
2
 
3
SerialIOWidget::SerialIOWidget(QWidget *parent) : QWidget(parent)
4
{
5
    // Serial data UI
6
    textSerialData = new QTextEdit();
7
    textSerialData->setCurrentFont(QFont("Consolas", 8));
8
    textSerialData->append("Waiting for serial connection...");
9
    textSerialData->setMinimumSize(400, 100);
10
    textSerialData->setReadOnly(true);
11
    textSerialTransmit = new QLineEdit();
12
    textSerialTransmit->setEnabled(false);
13
    textSerialTransmit->setFont(QFont("Consolas", 8));
14
    btnSerialTransmit = new QPushButton("&Send");
15
    btnSerialTransmit->setEnabled(false);
16
    btnSerialClear = new QPushButton("Clear");
17
 
18
    QHBoxLayout *serialTransmitLayout = new QHBoxLayout();
19
    serialTransmitLayout->addWidget(textSerialTransmit);
20
    serialTransmitLayout->addWidget(btnSerialTransmit);
21
    serialTransmitLayout->addWidget(btnSerialClear);
22
    QVBoxLayout *serialDataLayout = new QVBoxLayout();
23
    serialDataLayout->addWidget(textSerialData);
24
    serialDataLayout->addLayout(serialTransmitLayout);
25
    setLayout(serialDataLayout);
26
 
27
    connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_PrepareTransmit()));
28
    connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked()));
29
    connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn()));
30
 
31
    Serial_DisableTransmit();
32
}
33
 
34
SerialIOWidget::~SerialIOWidget()
35
{
36
 
37
}
38
 
39
void SerialIOWidget::Serial_PrepareTransmit(QByteArray data)
40
{
41
    QString str;
42
    if (data.isEmpty()) {
43
        str = textSerialTransmit->text();
44
        textSerialTransmit->setText("");
45
    } else {
46
        str = QString(data);
47
    }
48
 
49
    emit Serial_TransmitByteArray(str.toUtf8());
50
    textSerialData->setTextColor(Qt::darkBlue);
51
 
52
    QStringList cmds = str.split('\n');
53
    for (int i = 0; i < cmds.size(); i++) {
54
        textSerialData->append("TX:  " + cmds[i]);
55
    }
56
}
57
 
58
void SerialIOWidget::Serial_ReceivedByte(char byte)
59
{
60
    textSerialData->setTextColor(Qt::darkRed);
61
    textSerialData->append("RX:  " + QString(byte));
62
}
63
 
64
void SerialIOWidget::Serial_ClearBtn()
65
{
66
    textSerialData->clear();
67
}
68
 
69
void SerialIOWidget::Serial_EnableTransmit()
70
{
71
    textSerialTransmit->setEnabled(true);
72
    btnSerialTransmit->setEnabled(true);
73
}
74
 
75
void SerialIOWidget::Serial_DisableTransmit()
76
{
77
    textSerialTransmit->setEnabled(false);
78
    btnSerialTransmit->setEnabled(false);
79
}