diff options
| author | Niklas | 2011-07-11 16:51:30 +0200 |
|---|---|---|
| committer | Niklas | 2011-07-11 16:51:30 +0200 |
| commit | fdae19c238de3a66c3aeaca45ce2e96ceda7cbf2 (patch) | |
| tree | 22252d5050b8a1cab99f5571ef8b0a73bb94fa01 | |
| parent | added the two tryout with a qt LogReceiver and a c code client (diff) | |
| download | fbgui-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-x | workspace/LogReceiver/LogReceiver | bin | 30954 -> 35241 bytes | |||
| -rw-r--r-- | workspace/LogReceiver/LogReceiver.pro | 17 | ||||
| -rw-r--r-- | workspace/LogReceiver/logreceiver.cpp | 29 | ||||
| -rw-r--r-- | workspace/LogReceiver/logreceiver.ui | 99 | ||||
| -rwxr-xr-x | workspace/LogWriter/LogWriter | bin | 30747 -> 35093 bytes | |||
| -rw-r--r-- | workspace/LogWriter/LogWriter.pro | 17 | ||||
| -rw-r--r-- | workspace/LogWriter/logwriter.cpp | 33 | ||||
| -rw-r--r-- | workspace/LogWriter/logwriter.h | 3 | ||||
| -rw-r--r-- | workspace/networkDiscovery/dhcpcd/logger.c | 59 | ||||
| -rw-r--r-- | workspace/networkDiscovery/networkdiscovery.cpp | 8 | ||||
| -rw-r--r-- | workspace/networkDiscovery/networkdiscovery.h | 3 |
11 files changed, 205 insertions, 63 deletions
diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver Binary files differindex 16bcf4b..0a4b640 100755 --- a/workspace/LogReceiver/LogReceiver +++ b/workspace/LogReceiver/LogReceiver 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 Binary files differindex bfcb726..54d4ab8 100755 --- a/workspace/LogWriter/LogWriter +++ b/workspace/LogWriter/LogWriter 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: |
