-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
121 lines (96 loc) · 3.66 KB
/
mainwindow.cpp
File metadata and controls
121 lines (96 loc) · 3.66 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
const static QUrl server(QLatin1String("http://localhost:3000"));
const static QString servicePath(QLatin1String("/service"));
const static QString versionPath(QLatin1String("/service/version"));
const static QString portsPath(QLatin1String("/service/interfaces"));
const static QString contentTypeJson(QLatin1String("application/json"));
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
m_nam(new QNetworkAccessManager(this))
{
ui->setupUi(this);
connect(ui->getPB, &QPushButton::clicked, this, &MainWindow::getPorts);
connect(ui->uuidCB, &QComboBox::currentTextChanged, this, &MainWindow::getPort);
connect(ui->getVersionPb, &QPushButton::clicked,this,&MainWindow::getVersion);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::getPorts()
{
while (ui->uuidCB->count() > 0) {
ui->uuidCB->removeItem(0);
}
QUrl url = server;
url.setPath(portsPath);
QNetworkRequest request(url);
QNetworkReply *reply = m_nam->get(request);
ui->textBrowser->append("Sent get request " + url.toString());
connect(reply, &QNetworkReply::finished, this, [this, reply] () {
ui->textBrowser->append("Answer recieved");
reply->deleteLater();
const QJsonDocument doc = QJsonDocument::fromJson(reply->readAll());
const QJsonArray array = doc.array();
ui->textBrowser->append("{");
for (const QJsonValue &value : array) {
ui->textBrowser->append("\t"+value.toString());
ui->uuidCB->addItem(value.toString());
}
ui->textBrowser->append("}");
});
}
void MainWindow::getPort()
{
const QString uuid = ui->uuidCB->currentText();
if (uuid.isEmpty()) {
return;
}
QUrl url = server;
url.setPath(portsPath + QLatin1Char('/') + uuid);
QNetworkRequest request(url);
QNetworkReply *reply = m_nam->get(request);
ui->textBrowser->append("Sent get request " + url.toString());
ui->textEdit->clear();
connect(reply, &QNetworkReply::finished, this, [this, reply] () {
ui->textBrowser->append("Answer recieved");
reply->deleteLater();
const QJsonDocument doc = QJsonDocument::fromJson(reply->readAll());
const QJsonObject obj = doc.object();
ui->textEdit->append(obj.value(QLatin1String("name")).toString());
ui->textEdit->append(obj.value(QLatin1String("hw_addr")).toString());
ui->textBrowser->append("{");
ui->textBrowser->append("\t"+obj.value(QLatin1String("name")).toString());
ui->textBrowser->append("\t"+obj.value(QLatin1String("hw_addr")).toString());
ui->textBrowser->append("}");
});
}
void MainWindow::getVersion()
{
QUrl url = server;
url.setPath(versionPath);
QNetworkRequest request(url);
QNetworkReply *reply = m_nam->get(request);
connect(reply, &QNetworkReply::finished, this, [this, reply] () {
ui->textBrowser->append("Answer recieved");
reply->deleteLater();
const QJsonDocument doc = QJsonDocument::fromJson(reply->readAll());
const QJsonObject obj = doc.object();
ui->textBrowser->append("{");
for(QString key: obj.keys()){
ui->textBrowser->append("\t"+key);
}
ui->textBrowser->append("}");
// ui->textEdit->append("ver " + obj.value(QLatin1String("ver")).toInt());
ui->apiVersionLabel->setText(QString::number(obj.value(QLatin1String("ver")).toInt()));
});
}