-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathqduino.cpp
More file actions
95 lines (76 loc) · 2.44 KB
/
Copy pathqduino.cpp
File metadata and controls
95 lines (76 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include "qduino.h"
#include "ui_qduino.h"
Qduino::Qduino(QWidget *parent) :
QDialog(parent),
ui(new Ui::Qduino)
{
ui->setupUi(this);
arduino = new QSerialPort(this);
baudRateList << "1200" << "2400" << "4800" << "9600" << "19200" << "38400" << "57600" << "115200";
ports = QSerialPortInfo::availablePorts();
QListIterator <QSerialPortInfo> iter(ports);
QListIterator <QString> baudIter(baudRateList);
while (iter.hasNext()){
ui->comportBox->addItem(iter.next().portName());
}
while (baudIter.hasNext()){
ui->baudrateBox->addItem(baudIter.next());
}
ui->baudrateBox->setCurrentText("9600");
connect(ui->comportBox, SIGNAL(currentTextChanged(QString)), this, SLOT(setPortName()));
connect(ui->baudrateBox, SIGNAL(currentTextChanged(QString)),this, SLOT(setBaudRate()));
connect(ui->connectButton, SIGNAL(clicked()), this, SLOT(connectArduino()));
arduino->setPortName(currentPort);
}
Qduino::~Qduino()
{
delete ui;
}
void Qduino::setPortName()
{
currentPort = ui->comportBox->currentText();
arduino->setPortName(currentPort);
}
void Qduino::setBaudRate()
{
baudRate = (ui->baudrateBox->currentText()).toInt();
//Debugging Purpose
//QMessageBox::information(this, "Hello", ui->baudrateBox->currentText());
}
void Qduino::sendText()
{
if (ui->textArea->text() == NULL) QMessageBox::information(this, "Empty Text Box", "Add some text then press button");
if (!arduino->isOpen()) QMessageBox::information(this, "Connection Error", "The port is closed! Try again");
else {
text = ui->textArea->text().toLatin1();
arduino->write(text);
}
}
void Qduino::connectArduino()
{
arduino->close();
if (arduino->open(QIODevice::ReadWrite)){
arduino->setBaudRate(baudRate);
// 8bit mode
arduino->setDataBits(QSerialPort::Data8);
arduino->setParity(QSerialPort::NoParity);
arduino->setStopBits(QSerialPort::OneStop);
// Skipping hw/sw control
arduino->setFlowControl(QSerialPort::NoFlowControl);
QMessageBox::information(this, "Connection Successful", "Successfully connected to " + currentPort);
}
else {
QMessageBox::warning(this, "Failed", "Connection Failed");
}
}
void Qduino::on_pushButton_clicked()
{
sendText();
}
void Qduino::on_pushButton_2_clicked()
{
if (arduino->isOpen()){
arduino->write("c");
ui->textArea->clear();
}
}