Skip to content

Commit

Permalink
Wykresy są teraz aktualizowane dynamicznie on real-time
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacobs147 committed Sep 16, 2021
1 parent a7793ea commit 0da2a52
Show file tree
Hide file tree
Showing 7 changed files with 187 additions and 91 deletions.
160 changes: 108 additions & 52 deletions Server/Server.pro.user

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Server/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ void MainWindow::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
//<QTcpSocket*,Resources> resourcesSocketMap
foreach (QTcpSocket* sock, resourcesSocketMap.keys())
if (QString::fromStdString(resourcesSocketMap.value(sock)->getHostName()) == item->text() ){
SelectedClient* c = new SelectedClient(resourcesSocketMap.value(sock));
SelectedClient* c = new SelectedClient(this, resourcesSocketMap.value(sock));
c->show();
}
}
Expand Down
6 changes: 3 additions & 3 deletions Server/resources.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
void Resources::updateLists()
{
cpuLoadList.push_front(cpuLoad);
cpuLoadList.pop_back();
cpuLoadList.pop_back();
diskFreeSpacePercentageList.push_front(diskFreeSpacePercentage);
diskFreeSpacePercentageList.pop_back();
diskFreeSpacePercentageList.pop_back();
memoryLoadList.push_front(memoryLoad);
memoryLoadList.pop_back();
memoryLoadList.pop_back();
}

Resources::Resources()
Expand Down
97 changes: 65 additions & 32 deletions Server/selectedclient.cpp
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#include "mainwindow.h"
#include "selectedclient.h"
#include "ui_selectedclient.h"

Expand All @@ -8,53 +9,85 @@ SelectedClient::SelectedClient(QWidget *parent) :
ui->setupUi(this);
}

SelectedClient::SelectedClient(Resources* r) : QDialog(nullptr),
SelectedClient::SelectedClient(MainWindow* mainWindow, Resources* r) : QDialog(nullptr),
ui(new Ui::SelectedClient)
{
resources = r;
ui->setupUi(this);
charts[0]->setTitle("Cpu load");
charts[1]->setTitle("Free disk space");
charts[2]->setTitle("Free memory");

refreshView();
QObject::connect(mainWindow, &MainWindow::newMessage, this, &SelectedClient::refreshView);
}

SelectedClient::~SelectedClient()
{
delete ui;
}

void SelectedClient::refreshView() {

ui->labelHost->setText(QString::fromStdString(resources->getHostName()));
ui->labelUser->setText(QString::fromStdString(resources->getUserName()));
ui->labelCpuLoad->setText(QString::number(resources->getCpuLoad()) + "%");
ui->labelDisk->setText(QString::number(resources->getDiskFreeSpacePercentage())+ "%");
ui->labelMemory->setText(QString::number(resources->getTotalMemory()));
ui->labelUsedMemory->setText(QString::number(1.0*resources->getMemoryLoad()/resources->getTotalMemory()) + "%");
int iter = 1;
for (float cpuLoad : resources->getCpuLoadList()){
lineSeries[0]->append(iter, cpuLoad);
iter++;
}
iter = 1;
for (float diskSpace : resources->getDiskFreeSpacePercentageList()){
lineSeries[1]->append(iter, diskSpace);
iter++;
}
iter = 1;
for (float memoryLoad : resources->getMemoryLoadListReference()){
lineSeries[2]->append(iter, 1.0 * memoryLoad/resources->getTotalMemory());
iter++;
ui->labelUsedMemory->setText(QString::number(100.0*resources->getMemoryLoad()/resources->getTotalMemory()) + "%");

refreshFloatChart(ui->graphicsView_chart0, lineSeries[0], charts[0], resources->getCpuLoadList());
refreshFloatChart(ui->graphicsView_chart1, lineSeries[1], charts[1], resources->getDiskFreeSpacePercentageList());
refreshMemoryChart(ui->graphicsView_chart2, lineSeries[2], charts[2], resources->getMemoryLoadListReference());
}

void SelectedClient::refreshFloatChart(QChartView* chartView, QLineSeries* lineSeries, QChart* chart, std::list<float> dataList) {

// QValueAxis *percentageAxisY = new QValueAxis();
// percentageAxisY->setRange(0,100);
// chart->setAxisY(percentageAxisY);

lineSeries->clear();
int iter = 30;
for (float data : dataList){
lineSeries->append(iter, data);
iter--;
}
charts[0]->setTitle("Cpu load");
charts[1]->setTitle("Free disk space");
charts[2]->setTitle("Free memory");
for (int i = 0; i < 3; i++) {
charts[i]->addSeries(lineSeries[i]);
charts[i]->legend()->hide();
charts[i]->createDefaultAxes();

refreshChart(chartView, chart, lineSeries);
}


void SelectedClient::refreshMemoryChart(QChartView* chartView, QLineSeries* lineSeries, QChart* chart, std::list<unsigned long long> dataList) {

// QValueAxis *memoryAxisY = new QValueAxis();
// memoryAxisY->setRange(0, resources->getTotalMemory());

// chart->setAxisY(memoryAxisY);


lineSeries->clear();
int iter = 30;
for (unsigned long long data : dataList){
lineSeries->append(iter, 100.0 * data/resources->getTotalMemory());
iter--;
}
ui->graphicsView_chart0->setChart(charts[0]);
ui->graphicsView_chart1->setChart(charts[1]);
ui->graphicsView_chart2->setChart(charts[2]);
ui->graphicsView_chart0->setRenderHint(QPainter::Antialiasing);
ui->graphicsView_chart1->setRenderHint(QPainter::Antialiasing);
ui->graphicsView_chart2->setRenderHint(QPainter::Antialiasing);

refreshChart(chartView, chart, lineSeries);
}

SelectedClient::~SelectedClient()
{
delete ui;
void SelectedClient::refreshChart(QChartView* chartView, QChart* chart, QLineSeries* lineSeries) {

chart->addSeries(lineSeries);
chart->legend()->hide();
chart->createDefaultAxes();

chartView->setChart(chart);
chartView->setRenderHint(QPainter::Antialiasing);

}


void SelectedClient::on_pushButtonProcesses_clicked()
{
//<QTcpSocket*,Resources> resourcesSocketMap
Expand Down
8 changes: 7 additions & 1 deletion Server/selectedclient.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#ifndef SELECTEDCLIENT_H
#define SELECTEDCLIENT_H

#include <QChartView>
#include <QDialog>
#include "mainwindow.h"
#include "resources.h"
#include "runningprocesses.h"
#include <QtCharts/QLineSeries>
Expand All @@ -17,7 +19,7 @@ class SelectedClient : public QDialog

public:
explicit SelectedClient(QWidget *parent = nullptr);
SelectedClient(Resources* r);
SelectedClient(MainWindow* mainWindow, Resources* r);
~SelectedClient();

private slots:
Expand All @@ -28,6 +30,10 @@ private slots:
Resources* resources;
QLineSeries *lineSeries[3] = {new QLineSeries, new QLineSeries, new QLineSeries};
QChart *charts[3] = {new QChart(), new QChart(), new QChart()};
void refreshView();
void refreshFloatChart(QChartView* chartView,QLineSeries* lineSeries, QChart* chart, std::list<float> dataList);
void refreshMemoryChart(QChartView* chartView, QLineSeries *lineSeries, QChart *chart, std::list<unsigned long long> dataList);
void refreshChart(QChartView *chartView, QChart *chart, QLineSeries *lineSeries);
};

#endif // SELECTEDCLIENT_H
2 changes: 1 addition & 1 deletion sources/ResourceSerializer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ void ResourceSerializer::updateResources()
{
resources["hostName"] = getHostName();
resources["userName"] = getUserName();
resources["cpuLoad"] = GetCPULoad();
resources["cpuLoad"] = GetCPULoad() * 100;
resources["totalMemory"] = getTotalPhysicalMemory();
resources["memoryLoad"] = getPhysicalMemoryLoad();
resources["diskFreeSpacePercentage"] = getDiskFreeSpacePercentage();
Expand Down
3 changes: 2 additions & 1 deletion sources/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ int main(){

std::string ipAddress;
std::string port;
const DWORD FREQUENCY = 1000;

WSADATA wsaData;
SOCKET ConnectSocket = INVALID_SOCKET;
Expand Down Expand Up @@ -111,7 +112,7 @@ int main(){
printf("Connection closed\n");
else
printf("send failed with error: %d\n", WSAGetLastError());
Sleep(10000);
Sleep(FREQUENCY);
} while (iResult > 0);


Expand Down

0 comments on commit 0da2a52

Please sign in to comment.