summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas2011-07-11 16:51:30 +0200
committerNiklas2011-07-11 16:51:30 +0200
commitfdae19c238de3a66c3aeaca45ce2e96ceda7cbf2 (patch)
tree22252d5050b8a1cab99f5571ef8b0a73bb94fa01
parentadded the two tryout with a qt LogReceiver and a c code client (diff)
downloadfbgui-fdae19c238de3a66c3aeaca45ce2e96ceda7cbf2.tar.gz
fbgui-fdae19c238de3a66c3aeaca45ce2e96ceda7cbf2.tar.xz
fbgui-fdae19c238de3a66c3aeaca45ce2e96ceda7cbf2.zip
updated the LogReceiver and LogWriter. we are now able to send and receive Status SubStatus and msg messages.
-rwxr-xr-xworkspace/LogReceiver/LogReceiverbin30954 -> 35241 bytes
-rw-r--r--workspace/LogReceiver/LogReceiver.pro17
-rw-r--r--workspace/LogReceiver/logreceiver.cpp29
-rw-r--r--workspace/LogReceiver/logreceiver.ui99
-rwxr-xr-xworkspace/LogWriter/LogWriterbin30747 -> 35093 bytes
-rw-r--r--workspace/LogWriter/LogWriter.pro17
-rw-r--r--workspace/LogWriter/logwriter.cpp33
-rw-r--r--workspace/LogWriter/logwriter.h3
-rw-r--r--workspace/networkDiscovery/dhcpcd/logger.c59
-rw-r--r--workspace/networkDiscovery/networkdiscovery.cpp8
-rw-r--r--workspace/networkDiscovery/networkdiscovery.h3
11 files changed, 205 insertions, 63 deletions
diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver
index 16bcf4b..0a4b640 100755
--- a/workspace/LogReceiver/LogReceiver
+++ b/workspace/LogReceiver/LogReceiver
Binary files differ
diff --git a/workspace/LogReceiver/LogReceiver.pro b/workspace/LogReceiver/LogReceiver.pro
index 3a2d3f9..1be2ccd 100644
--- a/workspace/LogReceiver/LogReceiver.pro
+++ b/workspace/LogReceiver/LogReceiver.pro
@@ -1,10 +1,11 @@
TEMPLATE = app
-TARGET = LogReceiver
-
-QT += core gui network
-
-HEADERS += logreceiver.h
-SOURCES += main.cpp \
+TARGET = LogReceiver
+QT += core \
+ gui \
+ network
+HEADERS += status.h \
+ logreceiver.h
+SOURCES += main.cpp \
logreceiver.cpp
-FORMS += logreceiver.ui
-RESOURCES +=
+FORMS += logreceiver.ui
+RESOURCES +=
diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp
index 9bca304..6988463 100644
--- a/workspace/LogReceiver/logreceiver.cpp
+++ b/workspace/LogReceiver/logreceiver.cpp
@@ -1,11 +1,14 @@
#include <QtGui>
#include <QtNetwork>
+ #include <stdio.h>
+ #include <string.h>
#include <stdlib.h>
#include "logreceiver.h"
#include <qlocalserver.h>
#include <qlocalsocket.h>
+ #include "status.h"
LogReceiver::LogReceiver(QWidget *parent) :
@@ -61,8 +64,34 @@ LogReceiver::~LogReceiver() {
void LogReceiver::handleNewInput() {
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);
+
+ switch (st) {
+ case STAT_OK:
+ qDebug() << "received stat_ok";
+ break;
+ case STAT_ERROR:
+ qDebug() << "received stat_error";
+ break;
+ default:
+ qDebug() << "undefined status";
+ }
+ qDebug() << st;
QString logMsg(data);
+
+ /**
+ * verarbeite den string
+ */
+
qDebug() << logMsg;
statusLabel->setText(logMsg);
diff --git a/workspace/LogReceiver/logreceiver.ui b/workspace/LogReceiver/logreceiver.ui
index 9143194..500f418 100644
--- a/workspace/LogReceiver/logreceiver.ui
+++ b/workspace/LogReceiver/logreceiver.ui
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>LogReceiverClass</class>
- <widget class="QWidget" name="LogReceiverClass" >
- <property name="geometry" >
+ <widget class="QWidget" name="LogReceiverClass">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -9,11 +10,99 @@
<height>300</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>LogReceiver</string>
</property>
+ <widget class="QLabel" name="label">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>131</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>NetworkDiscovery</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_2">
+ <property name="geometry">
+ <rect>
+ <x>30</x>
+ <y>60</y>
+ <width>151</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>verfügbare Interfaces</string>
+ </property>
+ </widget>
+ <widget class="QListView" name="listView_2">
+ <property name="geometry">
+ <rect>
+ <x>40</x>
+ <y>190</y>
+ <width>311</width>
+ <height>81</height>
+ </rect>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_3">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>150</y>
+ <width>71</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>StatusLog</string>
+ </property>
+ </widget>
+ <widget class="Line" name="line">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>140</y>
+ <width>371</width>
+ <height>16</height>
+ </rect>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_4">
+ <property name="geometry">
+ <rect>
+ <x>40</x>
+ <y>90</y>
+ <width>67</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>i_Name</string>
+ </property>
+ </widget>
+ <widget class="QLabel" name="label_5">
+ <property name="geometry">
+ <rect>
+ <x>230</x>
+ <y>90</y>
+ <width>67</width>
+ <height>17</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>status</string>
+ </property>
+ </widget>
</widget>
- <layoutdefault spacing="6" margin="11" />
+ <layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
diff --git a/workspace/LogWriter/LogWriter b/workspace/LogWriter/LogWriter
index bfcb726..54d4ab8 100755
--- a/workspace/LogWriter/LogWriter
+++ b/workspace/LogWriter/LogWriter
Binary files differ
diff --git a/workspace/LogWriter/LogWriter.pro b/workspace/LogWriter/LogWriter.pro
index 112fd84..ba5df47 100644
--- a/workspace/LogWriter/LogWriter.pro
+++ b/workspace/LogWriter/LogWriter.pro
@@ -1,10 +1,11 @@
TEMPLATE = app
-TARGET = LogWriter
-
-QT += core gui network
-
-HEADERS += logwriter.h
-SOURCES += main.cpp \
+TARGET = LogWriter
+QT += core \
+ gui \
+ network
+HEADERS += status.h \
+ logwriter.h
+SOURCES += main.cpp \
logwriter.cpp
-FORMS += logwriter.ui
-RESOURCES +=
+FORMS += logwriter.ui
+RESOURCES +=
diff --git a/workspace/LogWriter/logwriter.cpp b/workspace/LogWriter/logwriter.cpp
index 53a4023..94155ed 100644
--- a/workspace/LogWriter/logwriter.cpp
+++ b/workspace/LogWriter/logwriter.cpp
@@ -9,6 +9,7 @@
#include <QtNetwork>
#include "logwriter.h"
+#include "status.h"
LogWriter::LogWriter(QWidget *parent) :
QDialog(parent) {
@@ -86,12 +87,34 @@ void LogWriter::enableWriteButton() {
}
void LogWriter::writeToLogReceiver() {
+ writeToLogReceiver(STAT_OK,DISCOVER);
+}
+
+void LogWriter::writeToLogReceiver(int stat, int sub_stat) {
+ char * st = (char *) malloc(sizeof(int)*4+1);
+ char * sst = (char *) malloc(sizeof(int)*4+1);
+ sprintf(st,"%d", stat);
+ sprintf(sst,"%d",sub_stat);
+ char * msg = "msg test";
+ int msize = strlen(st) + strlen(sst) + strlen(msg) + 3;
+ char * m = (char *) malloc(msize);
+ strcpy(m, "");
+ strcat(m, st);
+ strcat(m, ";");
+ strcat(m, sst);
+ strcat(m, ";");
+ strcat(m, msg);
//char buffer[256];
- char *b = "test";
- qDebug() << strlen(b);
- int n = ::write(sockfd,b,strlen(b));
- if (n < 0)
- qDebug() <<"ERROR writing to socket";
+ //char *b = "test";
+ qDebug() << strlen(m);
+ qDebug() << m;
+ int n = ::write(sockfd, m, strlen(m));
+ if (n < 0)
+ qDebug() << "ERROR writing to socket";
+
+ free(st);
+ free(sst);
+ free(m);
}
diff --git a/workspace/LogWriter/logwriter.h b/workspace/LogWriter/logwriter.h
index 1646433..a4ddea3 100644
--- a/workspace/LogWriter/logwriter.h
+++ b/workspace/LogWriter/logwriter.h
@@ -4,6 +4,7 @@
#include <QtGui/QDialog>
#include <qlocalsocket.h>
#include "ui_logwriter.h"
+#include "status.h"
class QDialogButtonBox;
class QLabel;
@@ -26,6 +27,8 @@ private slots:
void writeToLogReceiver();
private:
+ // enum STATUS stat, enum SUBSTATUS sub_stat
+ void writeToLogReceiver(int stat, int sub_stat);
Ui::LogWriterClass ui;
QLabel *hostLabel;
QLineEdit *hostLineEdit;
diff --git a/workspace/networkDiscovery/dhcpcd/logger.c b/workspace/networkDiscovery/dhcpcd/logger.c
index a68fe65..ec10bb9 100644
--- a/workspace/networkDiscovery/dhcpcd/logger.c
+++ b/workspace/networkDiscovery/dhcpcd/logger.c
@@ -27,7 +27,7 @@
#define SYSLOG_NAMES
-#define COM_CH "./com_ch"
+#define COM_CH "/var/tmp/com.socket"
#include <sys/types.h>
#include <sys/socket.h>
@@ -44,7 +44,7 @@
#include "logger.h"
/*sockets for the logger and the qt-reader */
-int s, ns;
+int sockfd, ns;
static int loglevel = LOG_WARNING;
static char logprefix[12] = {0};
@@ -126,46 +126,33 @@ void logger (int level, const char *fmt, ...)
va_end (p);
}
-void initQtLoggerSocket ()
-{
- /*variables for the communication over sockets with Qt*/
- int fromlen;
- struct sockaddr_un soaddr, faddr;
- int slen;
-
- if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
- perror("server: socket");
- exit(1);
- }
-
- soaddr.sun_family = AF_UNIX;
- strcpy(soaddr.sun_path, COM_CH);
- unlink(COM_CH);
- slen = strlen(soaddr.sun_path) + sizeof(soaddr.sun_family);
- if (bind(s, (struct sockaddr *) &soaddr, slen) < 0) {
- perror("server: bind");
- exit(1);
- }
-
- if (listen(s, 5) < 0) {
- perror("server: listen");
- exit(1);
- }
-
- if ((ns = accept(s, &faddr, &fromlen)) < 0) {
- perror("server: accept");
- exit(1);
- }
+void initQtLoggerSocket() {
+ /**
+ * new code. seems to be right.
+ */
+ struct sockaddr_un serv_addr;
+ sockfd = socket(AF_UNIX, SOCK_STREAM, 0);
+ if (sockfd < 0)
+ fprintf(stdout,"ERROR opening socket");
+ serv_addr.sun_family = AF_UNIX;
+ strcpy(serv_addr.sun_path, "/var/tmp/qt_c_socket_test");
+
+ if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
+ fprintf(stdout,"ERROR connecting");
}
void closeQtLoggerSocket (){
close(s);
}
-void sendToQt (char *msg) {
- if(send(ns,msg, strlen(msg),0) < 0)
- {
- fprintf(stdout,"logger: failed to send message: %s", msg);
+void sendToQt(char *msg) {
+ if (send(ns, msg, strlen(msg), 0) < 0) {
+ fprintf(stdout, "logger: failed to send message: %s", msg);
}
+ //char buffer[256];
+ char *b = "test";
+ int n = write(sockfd, b, strlen(b));
+ if (n < 0)
+ fprintf(stdout, "ERROR writing to socket");
}
diff --git a/workspace/networkDiscovery/networkdiscovery.cpp b/workspace/networkDiscovery/networkdiscovery.cpp
index cf4f354..e308de4 100644
--- a/workspace/networkDiscovery/networkdiscovery.cpp
+++ b/workspace/networkDiscovery/networkdiscovery.cpp
@@ -88,9 +88,15 @@ void NetworkDiscovery::listenToLogger()
{
skt = new QLocalSocket(this);
-// connect(socket, SIGNAL(readyRead()), this, )
+ connect(skt, SIGNAL(readyRead()), this, SLOT(handleLoggedMessage()));
connect(skt, SIGNAL(error(QLocalSocket::LocalSocketError)),
this, SLOT(displayError(QLocalSocket::LocalSocketError)));
+ skt->connectToServer(COM_CH);
+}
+
+void NetworkDiscovery::handleLoggedMessage()
+{
+
}
void NetworkDiscovery::displayError(QLocalSocket::LocalSocketError socketError)
diff --git a/workspace/networkDiscovery/networkdiscovery.h b/workspace/networkDiscovery/networkdiscovery.h
index 8001bdf..fef0999 100644
--- a/workspace/networkDiscovery/networkdiscovery.h
+++ b/workspace/networkDiscovery/networkdiscovery.h
@@ -7,6 +7,8 @@
#include <qlocalsocket.h>
#include "ui_networkdiscovery.h"
+#define COM_CH "/var/tmp/com.socket"
+
class NetworkDiscovery : public QWidget
{
Q_OBJECT
@@ -16,6 +18,7 @@ public:
~NetworkDiscovery();
public slots:
+ void handleLoggedMessage();
void displayError(QLocalSocket::LocalSocketError socketError);
private: