summaryrefslogtreecommitdiffstats
path: root/workspace/LogReceiver/logreceiver.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'workspace/LogReceiver/logreceiver.cpp')
-rw-r--r--workspace/LogReceiver/logreceiver.cpp83
1 files changed, 54 insertions, 29 deletions
diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp
index 6988463..29ea8d8 100644
--- a/workspace/LogReceiver/logreceiver.cpp
+++ b/workspace/LogReceiver/logreceiver.cpp
@@ -1,5 +1,6 @@
#include <QtGui>
#include <QtNetwork>
+#include <QMap>
#include <stdio.h>
#include <string.h>
@@ -13,7 +14,7 @@
LogReceiver::LogReceiver(QWidget *parent) :
QDialog(parent) {
- ui.setupUi(this);
+ //ui.setupUi(this);
statusLabel = new QLabel;
quitButton = new QPushButton(tr("Quit"));
@@ -51,32 +52,65 @@ LogReceiver::~LogReceiver() {
}
- void LogReceiver::handleNewConnection()
- {
- qDebug() << "New Connection arrived";
+void LogReceiver::handleNewConnection() {
+ qDebug() << "New Connection arrived";
- clientSocket = server->nextPendingConnection();
- connect(clientSocket, SIGNAL(disconnected()),
- clientSocket, SLOT(deleteLater()));
- connect(clientSocket, SIGNAL(readyRead()), this, SLOT(handleNewInput()));
- }
+ QLocalSocket * client = server ->nextPendingConnection();
+ clients.insert(client, client);
+ connect(client, SIGNAL(disconnected()), client, SLOT(deleteLater()));
+ connect(client, SIGNAL(readyRead()), this, SLOT(handleNewInput()));
+}
+
+void LogReceiver::handleNewInput() {
+
+ QObject* sender = const_cast<QObject*> (QObject::sender());
+ QLocalSocket* socket = static_cast<QLocalSocket*> (sender);
+
+ QLocalSocket * client = clients.value(socket);
+
+ QByteArray data = client->readAll();
+ QString logMsg(data);
+ QString s_state = logMsg.section(";", 0, 0);
+ QString s_subState = logMsg.section(";", 1, 1);
+ QString msg = logMsg.section(";", 2, 2);
+
+ qDebug() << logMsg;
- void LogReceiver::handleNewInput() {
+ qDebug() << msg;
- QByteArray data = clientSocket->readAll();
- char * cdata = new char[data.size() +1];
- qDebug() << data.size();
- qDebug() << strlen(cdata);
- strcpy(cdata, data.data());
- qDebug() << strlen(cdata);
- qDebug() << cdata;
- int st, sst;
- char str[40];
- sscanf(cdata, "%d;%d;%s",&st,&sst,str);
+ int st = s_state.toInt();
+ int sst = s_subState.toInt();
switch (st) {
case STAT_OK:
qDebug() << "received stat_ok";
+ switch (sst) {
+ case DHCP_DISCOVER:
+ break;
+ case DHCP_OFFER:
+
+ break;
+ case DHCP_REQUEST:
+
+ break;
+ case DHCP_DECLINE:
+
+ break;
+ case DHCP_ACK:
+
+ break;
+ case DHCP_NAK:
+
+ break;
+ case DHCP_RELEASE:
+
+ break;
+ case DHCP_INFORM:
+
+ break;
+ default:
+ break;
+ }
break;
case STAT_ERROR:
qDebug() << "received stat_error";
@@ -85,15 +119,6 @@ LogReceiver::~LogReceiver() {
qDebug() << "undefined status";
}
- qDebug() << st;
- QString logMsg(data);
-
- /**
- * verarbeite den string
- */
-
- qDebug() << logMsg;
-
statusLabel->setText(logMsg);
}